Как установить параметры / переменные глобально для всех хостов в пьесе Ansible?

На данный момент у меня есть playbook выглядит

- hosts: hws
  gather_facts: no
  vars_files:
    - variables.yml
  roles:
    - role: hypervisor

- hosts: vms
  gather_facts: no
  vars_files:
    - variables.yml
  roles:
    - role: web-server

и это выглядит некрасиво. Как установить

  gather_facts: no
  vars_files:
    - variables.yml

глобально для каждого хоста во всем файле?

1 ответ

Решение

Вы можете использовать разборчивый макет каталога для группировки переменных на основе групп узлов или хостов.

ansible.cfg
hosts
group_vars/
    hws.yml   #variables for hws hosts
    vms.yml   #variables for vms hosts
    all  #here you can put variables commont to both hws + vms
roles/
    hypervisor
    web-server
playbook.yml

Таким образом, вам не нужно включать переменный файл в вашу книгу.

Вы также можете прочитать здесь дополнительную информацию о структуре каталога ANSIBLE: http://docs.ansible.com/ansible/playbooks_best_practices.html

А вот насчет приоритета переменной: http://docs.ansible.com/ansible/playbooks_variables.html

Удачи!

Другие вопросы по тегам