我的调试输出低于此,我需要设置变量并通过命令循环
调试输出:
ok: [leafsw] => {
"msg": [
{
"cl_list": "AWSCL",
"delete": [
{
"list": "11111:10000",
"seq": 1
},
{
"list": "22222:10000",
"seq": 2
}
],
"name": "AWSCL",
"permit": [
"11111:10000",
"22222:10000"
]
},
{
"cl_list": "NORM_CL",
"name": "NORM_CL",
"permit": [
"33333:10000",
"44444:10000"
]
}
]
}
我需要获取cl_list
然后下一个任务是使用" with_items"运行其他命令。
第一:如何获取字典值cl_list
第二:添加到变量,以便我可以使用它循环。
我试过了:
- name: Get CL Name
debug: var="{{ item }}"
with_items: "{{ getclname.cl_list }}"
不起作用,我也尝试过:
- name: Get CL Name
debug: var="{{ item.cl_list }}"
with_items: "{{ getclname }}"
我想要什么: 变量= [' AWSCL',' NORM_CL']以便我可以在with_items循环中使用它
有什么想法吗?
答案 0 :(得分:2)
- name: get the cl_list from the variable
debug:
var: item.cl_list
with_items:
- "{{ my_var }}"
结果:
TASK [get the cl_list from the variable] ****************************************************************************************************************************************************************************
ok: [localhost] => (item=None) => {
"item.cl_list": "AWSCL"
}
ok: [localhost] => (item=None) => {
"item.cl_list": "NORM_CL"
}
PLAY RECAP
准备逐项处理。
第二种方式:
你可以这样做,让他们进入列表变量:
- name: get the cl_list from the variable
debug:
var: my_var | map(attribute="cl_list") | list
结果:
TASK [get the cl_list from the variable] ****************************************************************************************************************************************************************************
ok: [localhost] => {
"my_var | map(attribute=\"cl_list\") | list": [
"AWSCL",
"NORM_CL"
]
}