У меня есть структура каталогов, в которой я храню свои пьесы следующим образом:
/home/monk/
|_____Ansible_work
|_____[ansible.cfg]
|_____[playbook_dir_1]
| |_______playbook_1.yml
|_____[playbook_dir_2]
| |_______playbook_2.yml
|_____[playbook_dir_3]
| |_______playbook_3.yml
|_____[playbook_dir_4]
| |_______playbook_4.yml
|_____[inventory]
|___[inventory_1]
|___[inventory_2]
В настоящее время я выполняю свои пьесы, как показано ниже: ansible_work
dir:
ansible-playbook -i inventory/inventory_1 playbook_dir_1/playbook_1.yml
или
ansible-playbook -i inventory/inventory_1 playbook_dir_1/playbook_2.yml
или
ansible-playbook -i inventory/inventory_2 playbook_dir_1/playbook_1.yml
Каждая книга воспроизведения должна ссылаться на некоторые переменные, заданные в ansible.cfg, например log_path
, role_path
и т. Д. Все работает нормально.
Теперь мне сказали, что я должен сделать конфигурацию достаточно гибкой, чтобы эти пьесы могли быть выполнены из любого места, когда дан полный путь инвентаря и книжки. (что кажется справедливым требованием)
Но так как мои списки воспроизведения ссылаются на локальную копию ansible.cfg, набор содержимого в этом локальном ansible.cfg не будет установлен, если я вызову executin из любой точки, кроме /home/monk/ansible_work/
dir.
По умолчанию приоритет поиска Ansible.cfg следующий:
* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory) <--------------I am currently using this
* .ansible.cfg (in the home directory) <--------------Cannot use this as multiple users will be running the PB
* /etc/ansible/ansible.cfg <--------------Cannot set this as , we do not have admin rights.
Вопрос:
Как сделать playbooks независимыми от ansible.cfg и при этом настроить конфигурацию, например DEFAULT_LOG_PATH
, DEFAULT_ROLES_PATH
и т. Д.?
ИЛИ
Как сделать playbook исполняемым из любого каталога, но при этом он продолжает поиск созданного пользователем ansible.cfg
? которого нет в трех местах по умолчанию.