我正在使用Ansible在Debian系统上安装Docker。我需要在一些任务中识别ansible_default_ipv6.address。安装Docker之后,安装任务返回一个不同的“默认”( docker0接口),而不是"eth0“或"ens18”或其他什么。因此,这实际上不是Docker的问题,而是网络接口上的更改问题。如果您配置OpenVPN等,可能会发生这种情况。
我不明白,为什么ansible_default_ipv6.address会改变(可能是因为"d“比”e“早)。我希望docker0的“范围全局”比“范围全局暂定”更重要。
但我怎么才能避免这种行为呢?定义接口或IP的每个主机变量是最佳实践吗?
发布于 2019-08-20 09:39:22
你说得对,因为"d“在”e“之前:
理论上,Ansible选择具有默认网关的设备。作为“默认”接口。实际上,通常只是界面在字母表中排在第一位。
因此,在安装码头之前,eth0是默认接口,但是在安装了码头之后,就有了一个新的docker0接口(按字母顺序排序,它在eth0之前),所以Ansible现在宣布docker0为“默认”接口。
解决方案:不使用ansible_default_ipv6,而是使用接口特定事实(ansible_eth0["ipv4"]...)
https://stackoverflow.com/questions/57569802
复制相似问题