我们想为AWS中相当标准的堆栈创build一个模板。 我们需要三层。
层:弹性负载平衡器
图层:根据网站需求触发的警报创build/销毁多个networking服务器
图层:数据库服务器
第2层上的实例应该知道数据库实例的主机名。 理想情况下,我想获得数据库实例的私有IP,并通过用户数据传递给Web服务器。
Fn :: GetAtt不支持私有IP(只有公共)
我想一个替代scheme是build立堆栈,然后手动设置数据库私人IP。 它虽然使我们的设置不那么干净。 我们理想地喜欢在模板中描述的一切。 (即使这涉及通过用户数据运行脚本)
有什么build议么?
我现在这样做,为我的木偶大师添加新的节点。 例如,我在新节点的UserData部分中获取puppet主实例的私有IP:
"echo ", { "Fn::GetAtt" : [ "MasterOfPuppets", "PrivateIp" ] }, " ", { "Fn::GetAtt" : [ "MasterOfPuppets", "PrivateDnsName" ] } ," puppet >> /etc/hosts\n","\n",
请参阅CloudFormation用户指南的第119页。
或者,您可以使用实例MetaData:
curl http://169.254.169.254/latest/meta-data/local-ipv4/