Ansible regex_findall多重集
我正在尝试使用Ansible从IOS设备收集数据,然后使用收集的数据运行任务 我正在运行一个任务来执行show running config命令,以查找具有特定描述的接口:Ansible regex_findall多重集,ansible,ansible-facts,Ansible,Ansible Facts,我正在尝试使用Ansible从IOS设备收集数据,然后使用收集的数据运行任务 我正在运行一个任务来执行show running config命令,以查找具有特定描述的接口: - name: get current running-config ios_command: host: "{{ inventory_hostname }}" commands: - show running-config | i interface|description regist
- name: get current running-config
ios_command:
host: "{{ inventory_hostname }}"
commands:
- show running-config | i interface|description
register: config
该任务的输出:
interface GigabitEthernet1/0/35
description TEST PHONE
interface GigabitEthernet1/0/36
description TEST PHONE
interface GigabitEthernet1/0/37
description *W137
interface GigabitEthernet1/0/38
description *W138
interface GigabitEthernet1/0/39
description *W139
interface GigabitEthernet1/0/40
description *W140
我希望获取所有描述以*开头的接口名称/编号。我用一个集合事实从正则表达式findall()中得到:
正则表达式工作正常,可以从两个集合中获取数据。输出如下所示:
msg": [
[
"interface GigabitEthernet1/0/37",
"W137"
],
[
"interface GigabitEthernet1/0/38",
"W138"
],
[
"interface GigabitEthernet1/0/39",
"W139"
],
[
"interface GigabitEthernet1/0/40",
"W140"
],
[
"interface GigabitEthernet1/0/41",
"W141"
],
[
"interface GigabitEthernet1/0/42",
"W142"
],
[
"interface GigabitEthernet1/0/43",
"W143"
]
]
我不知道如何获得该列表中的两项并分别使用它们。我希望使用ios_config运行一个任务,从该列表中的接口名称/编号配置接口,并使用我收集的描述
这是嵌套列表吗?我尝试了不同的变化,如:
noAuthInts.0或noAuthInts.0.0和noAuthInts.0.1,但不生成我要查找的内容
我还尝试使用with_嵌套:“{{noAuthInts}}”并对其进行迭代,但似乎没有正确循环
我怎样才能从列表中抓取这两部分并分别使用它们呢?我可以将
与\u list
一起使用,而不是与\u items一起使用或与\u nested一起使用。现在可以使用列表列表。引用了我的其他帖子:
msg": [
[
"interface GigabitEthernet1/0/37",
"W137"
],
[
"interface GigabitEthernet1/0/38",
"W138"
],
[
"interface GigabitEthernet1/0/39",
"W139"
],
[
"interface GigabitEthernet1/0/40",
"W140"
],
[
"interface GigabitEthernet1/0/41",
"W141"
],
[
"interface GigabitEthernet1/0/42",
"W142"
],
[
"interface GigabitEthernet1/0/43",
"W143"
]
]