加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-14 02:26:14 所属栏目:Linux 来源:网络整理
导读:我正在将一个带Ansible的东西部署到 Linux主机上,我需要它只能侦听主机上的第二个NIC. 查看可用的事实,我可以看到ansible_interfaces列出了我的所有NIC,例如 "ansible_interfaces": [ "lo","ens9f0","ens9f1" ] 我知道它不是,所以我可以打折.通过查看ansible
我正在将一个带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 }}"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读