我想将ansible_default_ipv4更改为指向eth1而不是eth0。我可以在剧本中或通过--extra-vars选项吗?
答案 0 :(得分:15)
ansible uses command ip -4 route get 8.8.8.8
获取默认的ipv4接口。您可以change your ip/routing tables将eth1
作为默认路由,然后将其返回。
或者您可以使用 custom fact。
PS:使用set_fact
来覆盖 ansible_default_ipv4
这个事实,但由于缓存,范围等原因,它有自己的陷阱......
答案 1 :(得分:0)
ip -4 route get 8.8.8.8
无法在我的服务器上运行。
我创造了这项工作。
- name: find default ipv4... this is a bit of a hack.
shell: ifconfig $(route | grep default | awk '{print $(NF)}') | grep 'inet' | awk '{ print $2}'
register: ipv4_address
现在我可以在任何需要的地方使用ipv4_address
!