如何使用ansiblefind第二个NIC的名称?

我将Ansible部署到Linux主机,我只需要在主机上的第二个NIC上监听。

看看可用的事实,我可以看到ansible_interfaces列出我所有的网卡,例如

"ansible_interfaces": [ "lo", "ens9f0", "ens9f1" ] 

我知道这不是真的,所以我可以打折。 通过查看ansible_default_ipv4.alias,我可以看到我的主要是ens9f0。

在一个剧本/剧本中,我怎么才能算出ens9f1是次要的呢?

这个用例就是我想在模板中做如下的事情:

 Listen {{ ansible_second_nic.ipv4.address }} 

我工作的每台机器可能有不同的网卡名称,所以我无法在我的angular色中对这些网卡进行硬编码。 从历史上看,我只是假设eth1,但这不再安全。

采取ansible_interfaces ,减去'lo'ansible_default_ipv4.alias ,采取其余列表的第一个元素:

 - debug: msg: "{{ ansible_interfaces | difference(['lo',ansible_default_ipv4.alias]) | first }}"