Я хотел бы запустить простой сценарий Ansible, используя структуру ролей для разных хостов с их переменными, хранящимися в разных файлах.Давайте предположим, что у нас есть host1 и host2, определенные как hosts.Например, это будет файл основных ролей (/home/dante/roles/project/main.yml):
--- #New network
- name: network
hosts: host1, host2
gather_facts: false
vars_files:
- /home/dante/roles/project/variables/network-1.yml
- /home/dante/roles/project/variables/network-2.yml
roles:
- project
Файл задач, расположенный в / home / dante / role / project / tasks/main.yml будет выглядеть так:
--- #task
- name: Create the networks
os_network:
cloud: "{{ item.cloud }}"
state: present
name: "{{ item.network }}"
with_items:
- "{{ networks }}"
tags: create_networks
1-й файл переменных:
--- # /home/dante/roles/project/variables/network-1.yml
networks:
- { cloud: tenant1, network: network-1 }
- { cloud: tenant1, network: network-2 }
2-й файл переменных:
--- # /home/dante/roles/project/variables/network-2.yml
networks:
- { cloud: tenant2, network: network-3 }
- { cloud: tenant2, network: network-4 }
Любой метод, который может создатьсеть Openstack итеративным способом и для каждого хоста?Например, для host1 => применить файлы переменных только из network-1.yml, а для host 2 => применить только переменные из network2-2.yml?