我将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 }}"