![](/img/trans.png)
[英]How do I capture the IP address of a CLI-started EC2 instance for subsequent use?
[英]How do I use the external IP of an ec2 instance in an ansible template?
我正在配置rackspace/digitalocean/aws/google cloud中的节点,需要在ansible模板中访问ec2实例的外部IP。
我想在主机文件中定义我的机器,如下所示:
taps_1 ansible_host=54.123.456.789 dc=aws-richmond provider=aws
然后在一个模板中(就像一个用于 iptables 的模板):
-A FWR -ieth0 -p tcp -s {{ hostvars[host].ansible_host }} --dport 80 -j ACCEPT
但该值不存在:/如果我使用ansible_fqdn
或IP设在ansible_default_ipv4
我只得到了内部IP(如172.31.50.181
)
我们一直这样定义我们的基础设施:
54.123.456.789 name=taps_1 dc=aws-richmond provider=aws
并通过执行hostvars[host].inventory_name
,但我不想这样做。
想法?
在 Ansible 1.9 中,您可以使用ansible_ssh_host
变量,而在 Ansible 2.0 中,您可以使用ansible_host
在您的模板中,您只需要使用此变量来获取主机的公共 IP,它将从您的清单文件中获取:
例如:Ansible 1.9
{{ ansible_ssh_host }}
或 Ansible 2.0
{{ ansible_host }}
希望它会帮助你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.