Скажем, я хотел, чтобы некоторые переменные передавались из командной строки в playbook, а затем в другой (включенный) playbook, каков самый чистый способ сделать это?
Думаю, я бы пошел вот так?
[me@my_box]$ ansible-playbook -i foo -e "server_farm=qa2" playbooks/main_pb.yaml
Теперь предположим, что в моем основном сценарии я хотел передать переменную server_farm во включенную книгу воспроизведения, я бы пошел так?
---
# playbook: main_pb.yaml
[some stuff]
tasks:
- include subtasks/init_services.yaml {{ server_farm }}
А как насчет использования этой переменной в init_services.yaml? Я бы хотел:
---
# playbook: init_services.yaml
[some stuff]
- name: start some_service
[some start service stuff]
when: server_farm == "qa2"
Я правильно понял? Если да, то это самый чистый способ сделать это?
- Джефф (как вы уже догадались, я нахожусь на первых ногах с Ansible; там много потенциала)
Получил ответ, перечитывая документ Ansible:
Поскольку мои начальные переменные передаются в командной строке (параметр -e), эти переменные являются глобальными по своему охвату, и поэтому их не нужно передавать из playbook в playbook.