Ответ 1
Попробуйте:
У меня есть похожая проблема, я использовал для запуска моей playbook с -k -k (заглавными буквами). Playbook предложит ввести пароль.
ansible-playbook mail.yml -k -K
Надеюсь, это поможет!
Ansible запрашивает пароль sudo из следующего кода, пытается создать нового пользователя postgres.
Сообщение об ошибке:
fatal: [xxx.xxx.xxx.xxx] => Missing sudo password
main.yml
- name: 'Provision a PostgreSQL server'
hosts: "dbservers"
sudo: yes
sudo_user: postgres
roles:
- postgres
create_db.yml
- name: Make sure the PostgreSQL users are present
postgresql_user: name=rails password=secret role_attr_flags=CREATEDB,NOSUPERUSER
sudo_user: postgres
sudo: yes
Удаленный_пользователь, который использовал для входа на этот компьютер, является пользователем не -root, у него нет пароля, и он может войти только с помощью ключа auth.
Для пользователя postgres эта учетная запись также не имеет пароля, поскольку база данных была только что установлена.
Поскольку я вошел в систему как не -root пользователь, конечно, он будет запрашивать пароль при переходе на postgress учетную запись для создания пользователя базы данных. Но пароль не понадобится, если вы переключитесь на postgres из учетной записи root. Итак, мне интересно, есть ли способ переключиться на root, а затем переключиться на пользователя postgres.
Примечание: учетная запись root не имеет открытого ключа, пароля и не может войти через SSH.
Попробуйте:
У меня есть похожая проблема, я использовал для запуска моей playbook с -k -k (заглавными буквами). Playbook предложит ввести пароль.
ansible-playbook mail.yml -k -K
Надеюсь, это поможет!
Вам нужно будет изменить файл /etc/sudoers
, чтобы разрешить пользователю, с которым вы подключаетесь к удаленному серверу, переключиться на другого пользователя без подсказки пароля.
Добавьте файл в каталог /etc/sudoers.d
на целевой машине с именем postgres со следующим содержимым:
postgres ALL=(ALL) NOPASSWD:ALL
Это гарантирует, что пользователь postgres (если вы используете его как пользователя sudo) не будет запрашивать пароль при попытке выполнить команды sudo.
Если вы используете другого пользователя для подключения к целевому компьютеру, вам нужно будет изменить это выше, чтобы вместо этого разрешить NOPASSWD этому пользователю.
Подробнее см. здесь.
Вам не нужно указывать sudo_user, если ssh_user, который вы используете для соединения, принадлежит группе sudoers, должен только сказать sudo_pass.
Это может произойти из интерфейса Ansible Tower, если вы выберете опцию "Включить повышение привилегий".