从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 
Interesting Posts