linux – 如何使用ansible找到第二个NIC的名称?

我正在将一个带Ansible的东西部署到 Linux主机上,我需要它只能侦听主机上的第二个NIC.

查看可用的事实,我可以看到ansible_interfaces列出了我的所有NIC,例如

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

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

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

这个用例是我想在模板中执行以下操作:

Listen {{ ansible_second_nic.ipv4.address }}

我工作的每台机器可能有不同的NIC名称,所以我不能在我的角色中硬编码.从历史上看,我只假设eth1,但这不再安全.

解决方法

取ansible_interfaces,减去’lo’和ansible_default_ipv4.alias,取剩余列表的第一个元素:
- debug:
    msg: "{{ ansible_interfaces | difference(['lo',ansible_default_ipv4.alias]) | first }}"

相关文章

查找全部容器的日志文件 $ sudo find /var/lib/docker/conta...
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型