将Ansible字典传递到模板时出现问题
不知这里是否有人能帮我 我在host_vars中有一个数组,其结构是这样的,因此我希望将其传递到我的模板中将Ansible字典传递到模板时出现问题,ansible,Ansible,不知这里是否有人能帮我 我在host_vars中有一个数组,其结构是这样的,因此我希望将其传递到我的模板中 network: igb0: - address: x.x.x.x netmask: 255.255.255.0 - address: x.x.x.x netmask: 255.255.255.0 - address: x.x.x.x netmask: 255.255.255.0 我试着把它放在var
network:
igb0:
- address: x.x.x.x
netmask: 255.255.255.0
- address: x.x.x.x
netmask: 255.255.255.0
- address: x.x.x.x
netmask: 255.255.255.0
我试着把它放在vars部分,但是我不能确定它在任务的vars部分需要什么格式
vars:
network: "{{ network }}"
在模板中添加以下内容:
{% for net in network %}
{% endfor %}
导致错误:
失败!=>{“changed”:false,“msg”:“AnsibleError:在模板化“{{network}}”时发生未经处理的异常。错误为,原始消息:
提前感谢您的帮助。用于“将字典转换为适合循环的项目列表”。例如,播放
vars:
network:
igb0:
- address: x.x.x.x
netmask: 255.255.255.0
- address: y.y.y.y
netmask: 255.255.255.0
- address: z.z.z.z
netmask: 255.255.255.0
tasks:
- template:
src: test.j2
dest: test.txt
使用模板
$ cat test.j2
{% for ifc in network|dict2items %}
{{ ifc.key }}
{% for ip in ifc.value %}
{{ ip.address }} {{ ip.netmask }}
{% endfor %}
{% endfor %}
给予
用于“将字典转换为适合循环的项目列表”。例如剧本
vars:
network:
igb0:
- address: x.x.x.x
netmask: 255.255.255.0
- address: y.y.y.y
netmask: 255.255.255.0
- address: z.z.z.z
netmask: 255.255.255.0
tasks:
- template:
src: test.j2
dest: test.txt
使用模板
$ cat test.j2
{% for ifc in network|dict2items %}
{{ ifc.key }}
{% for ip in ifc.value %}
{{ ip.address }} {{ ip.netmask }}
{% endfor %}
{% endfor %}
给予