所以我试图从Ansible寄存器输出中获取特定的行/行。但是由于我的输出是安静的嵌套,所以我似乎无法获得所需的正确值。
Playbook如下,
---
- name: Get some piece of information
*some Ansible module*:
epg_info: First_EPG
state: query
register: epg_info
- debug:
var: epg_info
...
因此,您看到我使用Ansible提供的网络模块来查询“ First_EPG”的信息并将其注册在epg_info中。接下来,我对其进行调试,这是我得到的内容,
ok: [... . ... . ... . ...] => {
"epg_info": {
"changed": false,
"msg": "All items completed",
"results": [
{
"_ansible_ignore_errors": null,
"changed": false,
"current": [
{
"fvAEPg": {
"attributes": {
"annotation": "",
"dn": "THIS IS THE LINE I WANT TO HAVE",
"exceptionTag": "",
"extMngdBy": "",
},
}
}
}
}
}
不要介意“ {}”的数量,因为该列表要长得多,我只是为了便于使用而将其范围缩小了。
如您所见,列表是安静的嵌套,并且我想要的唯一一行是“ dn”,并将此值存储在另一个列表中。
关于我如何只能获得那条线的任何想法?
答案 0 :(得分:0)
您可以使用索引来获取该值:
- name: fetch value
debug:
msg: "{{ epg_info['results'][0]['current'][0]['fvAEPg']['attributes']['dn'] }}"