Playbook:анзибль - Multiple словарь Файлы
---
- hosts: switch
connection: local
gather_facts: no
tasks:
- name: GET DATA
include_vars: ./host_vars/file.yml
- name: GENERATE CONFIG
template:
src: ./templates/accessvlan.j2
dest: ./output/{{ item.switch }}.conf
with_items:
- '{{ab351E}}'
- '{{ab361E}}'
Variable файл: ./host_vars/file.yml
---
ab351E:
- { switch: ab35-1E, port: Gi1/14, vlan: 1310 }
- { switch: ab35-1E, port: Gi1/29, vlan: 1382 }
- { switch: ab35-1E, port: Gi1/15, vlan: 1310 }
ab361E:
- { switch: ab36-1E, port: Gi1/15, vlan: 1410 }
- { switch: ab36-1E, port: Gi1/26, vlan: 1482 }
- { switch: ab36-1E, port: Gi1/17, vlan: 1410 }
Jinja2 шаблона: /templates/accessvlan.j2
conf t
{% for host in ab351E %}
int {{ host.port }}
switchport access vlan {{ host.vlan }}
{% endfor %}
end
copy run start
я могу сделать выше сборник пьес работать без проблем. Однако, как видно из шаблона Jinja2, я могу использовать только одну переменную словаря (ab351E) из with_item
.
Как отредактировать шаблон Jinja2 так, чтобы я мог использовать как переменные словаря (ab351E & ab361E), упомянутые в playbook под with_item
?
Моя цель состоит в том, чтобы сгенерировать 2 конфигурационных файла: ab35-1E.conf & ab36-1E.conf.
ab35-1E.conf файл будет выглядеть следующим образом:
conf t
int G1/14
switchport access vlan 1310
int G1/29
switchport access vlan 1382
int G1/15
switchport access vlan 1310
end
copy run start