我正在嘗試設置循環播放某些網站的劇本。在這些站點中,將會有路由器和交換機。通常會有1臺路由器和至少1臺交換機。現在,我只是試圖讓邏輯適用於兩個站點,每個站點都有一個路由器。我相信我需要「with_nested」,但不能拿出獲勝的代碼。這是我現在有:無法與Ansible進行嵌套循環
hosts: local
vars:
data_vlan: 10
voice_vlan: 20
sites:
- site1:
routers:
- hostname: router1
loopback0: 192.168.1.1
wan_ip: 10.0.0.2
lan_ip: 172.16.1.1
- site2:
routers:
- hostname: router1
loopback0: 192.168.2.1
wan_ip: 10.0.0.4
lan_ip: 172.16.2.1
tasks:
- name: Generate router configs
template: src=templates/router.j2 dest=scripts/{{ item [1] }}/{{ item[1] }}-{{ item[1] }}.txt
with_nested:
- "{{ sites }}"
現在我有項目[1]在DEST節第三次,但最終我想,是主機名。所以scripts/site1/site1-router1.txt等等。使用該代碼,它獲得了site1和site2的正確,但我無法弄清楚如何到達主機名變量。
我已經嘗試了多個變量下with_nested但只是無法得到它。最後的結果將是:
SITE1,路由器1
SITE1,開關1
SITE1,開關型號N
站點2,路由器1
站點2中,開關1
站點2 ,開關N
非常感謝你。我最初的結構是如何在選項3中完成它,但嘗試了很多被混蛋的東西。現在來搞清楚Jinja2的一部分。 – mikey