从Vagrant获取主机IP,并将其与Ansible一起使用
我和stream浪汉一起玩游戏,设置了一些小水滴,并且使用了可靠的(我正在使用DigitalOcean
)部署我的nodejs服务器。 我有我的js代码中的一些部分,我需要将当前的IP设置到脚本中。 问题是,我不能手动设置IP,所以我通过DO
无业游民获得了一个随机IP。 我怎样才能“获得”这个IP,并在我的Ansible脚本中使用它? 当然,我只是可以做一个wget http://ipinfo.io/ip -qO -
在主机本身或与ip
检查,但我想它也应该从Vagrant获得这个信息?
从文档(特别是: http ://docs.ansible.com/ansible/playbooks_variables.html#information-discovered-from-systems-facts),Ansible似乎有一个预先定义的variables,包含您的networking信息:
"ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "REDACTED", "netmask": "255.255.255.0", "network": "REDACTED" }, "ipv6": [ { "address": "REDACTED", "prefix": "64", "scope": "link" } ], "macaddress": "REDACTED", "module": "e1000", "mtu": 1500, "type": "ether" },
我不记得哪个是DigitalOcean上的公共接口,但是你应该可以在你的手册中使用{{ ansible_eth0.ipv4.address }}
。
注意,你可以使用这个命令列出所有“发现的”variables:
ansible hostname -m setup
我怎样才能“获得”这个IP,并在我的Ansible脚本中使用它?
使用ipify_facts :
- name: Get my public IP ipify_facts: - debug: var=ipify_public_ip