Skip to main content

Ошибка Ansible: Missing sudo password

image.png

Проблема

При запуске Ansible-плейбука для обновления серверов появляется ошибка:

fatal: [host-01]: FAILED! => {"msg": "Missing sudo password"}
fatal: [host-02]: FAILED! => {"msg": "Missing sudo password"}

Причина

Ansible успешно подключается к серверу по SSH с помощью приватного ключа, но при переходе на повышенные права (become: true) требует пароль для sudo. Так как пароль не указан, выполнение останавливается.

Решения

1. Запрос sudo-пароля при запуске

ansible-playbook -i inventory.ini playbooks/update.yml --ask-become-pass

2. Указание пароля в переменных (небезопасно)

Можно прописать в group_vars/имя_группы.yml:

ansible_become_pass: "пароль_пользователя"

3. Настройка NOPASSWD (лучший способ для автоматизации)

Если в sudoers прописано, что пользователь может выполнять команды без запроса пароля, Ansible не будет требовать пароль. Для этого нужно добавить правило в /etc/sudoers.d/. Подробно это описано во второй статье.