Сгенерировать переменную роли 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 }}
Другие вопросы по тегам