
Я пытаюсь запустить Ansible playbook из cron (следовательно, взаимодействие невозможно) на группе серверов с sudo. Несколько руководств и сообщений в Интернете рекомендуют установить пароль sudo в открытом виде или настроить Ansible-Vault (который также требует файл паролей ansible-valt в открытом виде где-то, так что ничего не поделаешь). Некоторые рекомендуют установить NOPASSWD в файле sudoers для пользователя, запускающего команды sudo, чего я тоже не могу сделать. Все эти решения представляют проблемы безопасности.
Вот я и подумал, есть ли способ обойти это? Может быть, зашифровать текстовый пароль таким образом, чтобы Ansible мог его расшифровать и прочитать?
Заранее спасибо!
решение1
Ansible примет, если пароль в хешированной форме. Я создал хешированный пароль с помощью python
python -c 'import crypt; print crypt.crypt("password", "$6$random_salt")'
python3 -c 'import crypt; print(crypt.crypt("password", crypt.mksalt(crypt.METHOD_SHA512)))'
заменитьпарольс вашим паролем, вы можете вставить вывод команды выше в вашу задачу Ansible.
- name: name
become: true
task:
password: hashed password