如何在ansible中一起使用循环和with_nested
How to use loop and with_nested together in ansible
我有这样定义的变量-
vars:
values:
- key1: value1
key2:
- value1.1
- value1.2
- key1: value2
key2:
- value2.1
- value2.2
想用 key2 中的相应值迭代 key1
我是 运行 ansible 2.7.10 和 python 2.7.10。这是我根据网上找到的一些建议在我的任务中写的-
(已使用 with_subelements)
- name: test loops
debug:
msg: "This is key1: {{ item.0.key1 }}, and here is corresponding key2 element {{ item.1 }}"
with_subelements:
- values
- key2
预期输出:
This is key1: value1, and here is corresponding key2 element value1.1
This is key1: value1, and here is corresponding key2 element value1.2
This is key1: value2, and here is corresponding key2 element value2.1
This is key1: value2, and here is corresponding key2 element value2.2
执行剧本时出现错误:
致命:[本地主机]:失败! => {"msg": "subelements lookup expects a dictionary, got 'values'"}
有什么实现方法吗?
正确的语法是
with_subelements:
- "{{ values }}"
- key2
,或Migrated from with_X to loop
loop: "{{ values|subelements('key2') }}"
下图
- hosts: localhost
vars:
values:
- key1: value1
key2:
- value1.1
- value1.2
- key1: value2
key2:
- value2.1
- value2.2
tasks:
- debug:
msg: "{{ item.0.key1 }} - {{ item.1 }}"
with_subelements:
- "{{ values }}"
- key2
给出(删节):
"msg": "value1 - value1.1"
"msg": "value1 - value1.2"
"msg": "value2 - value2.1"
"msg": "value2 - value2.2"
我有这样定义的变量-
vars:
values:
- key1: value1
key2:
- value1.1
- value1.2
- key1: value2
key2:
- value2.1
- value2.2
想用 key2 中的相应值迭代 key1
我是 运行 ansible 2.7.10 和 python 2.7.10。这是我根据网上找到的一些建议在我的任务中写的-
(已使用 with_subelements)
- name: test loops
debug:
msg: "This is key1: {{ item.0.key1 }}, and here is corresponding key2 element {{ item.1 }}"
with_subelements:
- values
- key2
预期输出:
This is key1: value1, and here is corresponding key2 element value1.1
This is key1: value1, and here is corresponding key2 element value1.2
This is key1: value2, and here is corresponding key2 element value2.1
This is key1: value2, and here is corresponding key2 element value2.2
执行剧本时出现错误:
致命:[本地主机]:失败! => {"msg": "subelements lookup expects a dictionary, got 'values'"}
有什么实现方法吗?
正确的语法是
with_subelements:
- "{{ values }}"
- key2
,或Migrated from with_X to loop
loop: "{{ values|subelements('key2') }}"
下图
- hosts: localhost
vars:
values:
- key1: value1
key2:
- value1.1
- value1.2
- key1: value2
key2:
- value2.1
- value2.2
tasks:
- debug:
msg: "{{ item.0.key1 }} - {{ item.1 }}"
with_subelements:
- "{{ values }}"
- key2
给出(删节):
"msg": "value1 - value1.1"
"msg": "value1 - value1.2"
"msg": "value2 - value2.1"
"msg": "value2 - value2.2"