Cloudformation EC2实例在init上将外部DNS和IP添加到.conf文件

时间:2018-04-16 17:19:22

标签: amazon-web-services amazon-ec2 amazon-cloudformation

我正在创建一个云形成文件,用于设置EC2实例并在其上安装一些应用程序等。然后它还安装了用于从Web添加密码保护的squid。

我遇到的问题是在设置实例时需要使用外部ip和公共DNS地址设置配置文件。不幸的是,这些在EC2实例初始化之前不存在,并且如果我尝试在云形成脚本中的实例的userData中引用此值,则会得到循环引用错误。

有没有人知道如何在创建实例并分配公共IP和DNS地址后让cloudformation脚本更新此conf?

1 个答案:

答案 0 :(得分:1)

您可以从每个EC2实例上提供的metadata server http://169.254.169.254获取此信息。

获取公共IP使用:

curl -f http://169.254.169.254/latest/meta-data/public-ipv4

要使用公共域:

curl -f http://169.254.169.254/latest/meta-data/public-hostname

在您的userdata脚本中使用它们。