ansible ipv4辅助IP筛选

ansible ipv4辅助IP筛选,ansible,jinja2,Ansible,Jinja2,我有一个jinja模板,需要用服务器的辅助ip填充该模板 我试着运行下面的程序,它为我提供了比我需要的多一点的东西 tasks: - name: debug2 debug: msg={{ ansible_enp0s8_iface1.ipv4_secondaries }} 结果 ok: [localhost] => { "msg": [ { "address": "172.16.2.20", "broadcast": "172.16.

我有一个jinja模板,需要用服务器的辅助ip填充该模板

我试着运行下面的程序,它为我提供了比我需要的多一点的东西

 tasks:
  - name: debug2
    debug: msg={{ ansible_enp0s8_iface1.ipv4_secondaries }}
结果

ok: [localhost] => {
"msg": [
    {
        "address": "172.16.2.20", 
        "broadcast": "172.16.2.255", 
        "netmask": "255.255.255.0", 
        "network": "172.16.2.0"
    }
]
}
但是当我运行以下命令时

tasks:
  - name: debug2
    debug: msg={{ ansible_enp0s8_iface1.ipv4_secondaries.address }}
我得到以下致命错误,表明“地址”未定义。我不知道为什么会发生这种情况,因为它与主界面完美配合

fatal: [localhost]: FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: 'list object' has no attribute 'address'\n\nThe error appears to have been in '/root/test.yml': line 15, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n    #debug: msg={{ ansible_enp0s8_iface1.ipv4_secondaries.address }}\n  - name: debug1\n    ^ here\n"}

请注意,
ipv4\u secondaries
显示在方括号中,这样您就知道它是一个列表

因此,您应该从列表中选择一个元素,例如:

ansible_enp0s8_iface1.ipv4_secondaries[0].address

请注意,
ipv4\u secondaries
显示在方括号中,这样您就知道它是一个列表

因此,您应该从列表中选择一个元素,例如:

ansible_enp0s8_iface1.ipv4_secondaries[0].address

非常感谢。正是我想要的。我会记下元素提示。谢谢。正是我想要的。我将记下元素提示。