我玩 vagrant 来设置一些 droplets 并使用 ansible 部署我的 nodejs 服务器(我正在使用DigitalOcean
)。我的 js 代码中有一些部分需要将当前 IP设置到脚本中。问题是我无法手动设置 IP,所以我通过 vagrant 从DO
. 如何“获取”这个 IP 并在我的 Ansible 脚本中使用它?确定我可以wget http://ipinfo.io/ip -qO -
在主机本身上做一个或检查它,ip
但我想它也应该可以从 Vagrant 获取这些信息?
问问题
620 次
2 回答
3
如何“获取”这个 IP 并在我的 Ansible 脚本中使用它?
使用ipify_facts:
- name: Get my public IP
ipify_facts:
- debug: var=ipify_public_ip
于 2016-10-24T22:52:29.920 回答
1
从文档(特别是:http : //docs.ansible.com/ansible/playbooks_variables.html#information-discovered-from-systems-facts)来看,Ansible 似乎有一个包含您的网络信息的预定义变量:
"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 }}
在你的剧本中使用。
旁注,您可以使用此命令列出所有“发现”变量:
ansible hostname -m setup
于 2016-10-24T23:01:07.237 回答