0
---
- 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}}'
変数ファイル:./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テンプレートに見られるように、with_item
の辞書変数(ab351E)は1つしか使用できません。
with_item
の下の演奏帳で参照されている辞書変数(ab351E & ab361E)を両方使用できるように、私のJinja2テンプレートを編集するにはどうすればよいですか?
私の目標は、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