Сгенерировать переменную роли ansible локально
У нас есть новая роль с открытым исходным кодом, которая автоматизирует компиляцию некоторых пользовательских образов маршрутизатора ( OpenWRT) под названием openwisp2-image-generator.
Пароль root пользователя root может быть определен в YAML playbook, но процесс для этого является громоздким.
Я хотел бы позволить пользователям определять свой пароль и соль в виде открытого текста на YAML, а затем за кулисами делать что-то вроде:
import crypt;
password = crypt.crypt('password', '$1$salt-here$')
Это значение должно храниться в переменной, чтобы я мог легко добавить его в нужные шаблоны ролей.
Могу ли я запустить этот код Python локально, а не удаленно? Какой лучший способ сделать это?
1 ответ
Есть local_action
модуль в ansible, у вас должно быть все в порядке, чтобы запустить его локально.
Пример с http://docs.ansible.com/ansible/playbooks_delegation.html
- name: take out of load balancer pool
local_action: command /usr/bin/take_out_of_pool {{ inventory_hostname }}
# ...
- name: add back to load balancer pool
local_action: command /usr/bin/add_back_to_pool {{ inventory_hostname }}