Ano*_*ing 4 networking automation linux ansible
我正在使用 Ansible 将某些内容部署到 Linux 主机,并且我需要它仅侦听主机上的第二个 NIC。
查看可用的事实,我可以看到 ansible_interfaces 列出了我的所有网卡,例如
"ansible_interfaces": [
"lo",
"ens9f0",
"ens9f1"
]
Run Code Online (Sandbox Code Playgroud)
我知道这不是lo,所以我可以打折扣。通过查看 ansible_default_ipv4.alias,我可以看到我的主节点是 ens9f0。
在剧本/剧本中,我如何才能确定 ens9f1 是次要的?
这样做的用例是我想在模板中执行类似以下操作:
Listen {{ ansible_second_nic.ipv4.address }}
Run Code Online (Sandbox Code Playgroud)
我工作的每台机器可能有不同的 NIC 名称,因此我无法在我的角色中对它们进行硬编码。从历史上看,我只会假设 eth1,但这不再安全。
取ansible_interfaces、减去'lo'并ansible_default_ipv4.alias,取剩余列表的第一个元素:
- debug:
msg: "{{ ansible_interfaces | difference(['lo',ansible_default_ipv4.alias]) | first }}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3786 次 |
| 最近记录: |