У меня в файле sudoers есть
ALL ALL = (ALL) NOPASSWD: ALL
Что позволяет любому использовать sudo без ввода пароля. И я подтвердил, что могу использовать sudo без пароля, когда подключаюсь к машине по ssh.
Однако при попытке запустить на нем сценарий я получаю сообщение об ошибке «отсутствует пароль sudo».
Команда, которую я использую для запуска, это
ansible-playbook -i inventory.yaml common_install.yaml --limit vpn.lan.example.com -vvv
Я запустил ту же команду, ограничив ее другим хостом, на котором установлено то же правило sudo, и оба работают под управлением Ubuntu 20.04, и она работает на нем. Но не будет работать на этом хосте.
Почему это не работает?
решение1
Возможно, вы не заполнили каталог(и) group_vars или host_vars значениями/файлами имени пользователя и пароля.
Пример каталога group_vars:
узлы.yml
ansible_port: 22
ansible_user: username
ansible_password: password
ansible_connection: ssh
ansible_become_pass: otherPassword
Примечание: переменные в каталоге(ах) group_vars/host_vars содержат файлы столько переменныене включайте vars:
ключевое слово, иначе другие переменные будут проигнорированы.