Я пытаюсь настроить плейер, который перемещается по некоторым сайтам. Внутри сайтов будут маршрутизаторы и коммутаторы. Как правило, будет 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, но я не могу понять, как добраться до vhost хостов.
Я попытался использовать несколько переменных под with_nested, но просто не могу их получить. Окончательный результат будет:
сайт1, маршрутизатор 1
сайт1, переключатель 1
site1, переключатель г N
site2, маршрутизатор 1
сайт2, переключатель 1
site2 , переключатель N
Большое вам спасибо за это.Сначала у меня были вещи, структурированные, как у вас есть в варианте 3, но пытались так много вещей, которые он укусил. Теперь посмотрим на часть Jinja2. – mikey