#ansible
#ansible
Вопрос:
Мне интересно, возможно ли использовать такой синтаксис для запуска playbook на основе требований хоста :
-
включить: tomcat8_for_assc_team.yml когда: hostgroup: assc
-
включить: tomcat8_for_oab_team.yml когда: hostgroup: автономная адресная книга
В моих файлах инвентаризации :
[assc] vm1 vm2 и т.д.
[автономная адресная книга] vm4 vm5 и т. Д
Ответ №1:
Вы могли бы использовать волшебную переменную group_names. это описано здесь: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#accessing-information-about-other-hosts-with-magic-variables . Они говорят: group_names — это список (массив) всех групп, в которых находится текущий хост.
Итак, в вашем случае следующие две задачи выполнят эту работу.
- name: "run the playbook for assc"
include: "tomcat8_for_assc_team.yml"
when: "'assc' in group_names"
- name: "run the playbook for oab"
include: "tomcat8_for_oab_team.yml"
when: "'oab' in group_names"
Первый включенный playbook запускается, только если assc находится в gouplist текущего хоста. Второй такой же для автономной адресной книги goup.