Запустите скрипт Ansible для нескольких хостов, используя переменные из файлов var - PullRequest
0 голосов
/ 24 сентября 2018

Я хотел бы запустить простой сценарий 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?

...