繁体   English   中英

如何在 ansible 模板中使用 ec2 实例的外部 IP?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM