ANSIBLE: как хранить пароли к SUDO
Допустим вам не хочется вводить каждый раз пароль к —ask-sudo-pass, то пароли можно указать в host файле. Пример: у нас есть группа узлов work и указываем переменные авторизации.
[work]
test-ubuntu.domain.local
[work:vars]
ansible_become=yes
ansible_become_method=sudo
ansible_user=user
ansible_become_pass=mypassword
Где:
ansible_become_method — метод авторизации
ansible_user=user — пользователь
ansible_become_pass — пароль
Теперь о том, если вам не хочется хранить данные в конфиге. Можно использовать хранилище. Для этого строку с паролем заменяем на:
ansible_become_pass='{{ my_cluser_sudo_pass }}'
Где {{ my_cluser_sudo_pass }} — переменная, имя можете выбрать то, которое больше нравится 🙂
Далее создадим зашифрованное хранилище, назовем его password.yml, выполнив команду:
ansible-vault create password.yml
Установите пароль, когда ansible вас попросит. После этого инструмент запустится в редакторе, который определен переменной окружения. Добавьте в файл следующее:
my_cluser_sudo_pass: мой пароль
Теперь можно всё закрыть и запустить:
ansible-playbook —ask-vault-pass —extra-vars '@passwd.yml' my_playbook.yml