Назад | Перейти на главную страницу

Передача переменных из одного включенного Ansible playbook в другой

Скажем, я хотел, чтобы некоторые переменные передавались из командной строки в 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.