问题描述
我想根据 item.name 使用正则表达式将字典合并到 device1.something.org 的结果中。
vars:
gig:
type: "1000BASE-T (1GE)"
virtual:
type: "Virtual"
- name: SETTING INT TYPE 1GE
set_fact:
interfacetype: "{{ interfacetype | default([]) | combine(gig) }}"
loop: "{{ansible_network_resources.interfaces}}"
when: item.name | regex_search('(ge-)')
- name: SETTING INT TYPE VIRTUAL
set_fact:
interfacetype: "{{ interfacetype | default([]) | combine(virtual) }}"
loop: "{{ansible_network_resources.interfaces}}"
when: item.name == "irb" or
item.name == "lo0"
我从可靠的事实中得到的信息如下,使用瞻博网络 junipernetworks.junos.junos_facts
ok: [device1.something.org] => {
"ansible_network_resources.interfaces": [
{
"enabled": true,"mtu": 9216,"name": "ge-0/0/0"
},{
"enabled": false,"name": "ge-0/0/1"
},"name": "ge-0/0/2"
},"name": "ge-0/0/3"
},"name": "ge-0/0/4"
},{
"description": "agaga2","enabled": true,"name": "et-0/1/0"
},"name": "et-0/1/1"
},{
"enabled": true,"name": "xe-0/2/0"
},"name": "xe-0/2/1"
},"name": "xe-0/2/2"
},{
"description": "blabla1","name": "xe-0/2/3"
},"name": "irb"
},"name": "lo0"
}
]
我想得到这样的东西,根据 item.name 我可以创建另一个字典列表,但在这种情况下使用 item.type。
"ansible_network_resources.interfaces": [
{
type: "1000BASE-T (1GE)"
"enabled": true,{
type: "1000BASE-T (1GE)"
"enabled": false,{
type: "1000BASE-T (1GE)"
"enabled": false,{
type: "Virtual"
"enabled": true,"name": "lo0"
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)