我有一个由AWS CloudFormation生成的堆栈,其中包含一个EC2实例(运行Ubuntu 14.04)和一个RDS(数据库)实例。 他们都在一个VPC内,其中包括一个木偶大师(不是云形成堆栈的一部分):
----------------- VPC -------------------- +-----+ +-----+ +---------------+ | EC2 | <---> | RDS | | Puppet master | +-----+ +-----+ +---------------+
我想伪装EC2节点,为Web服务器和包括数据库连接信息的应用程序编写一个configuration,其中一部分是RDS实例的内部主机名。
问题是,如果需要知道RDS节点的内部主机名,我该如何让puppetmaster为应用程序configuration编译模板。
我对这些技术大部分都是新手,特别是CloudFormation和Puppet。 到目前为止,我已经想到了一些解决scheme,但想要一些指导,并想知道我是否错过了一些东西。
如果您可以创build将打印名称的脚本(可能通过调用AWS CLI),则可以使用generate函数在Puppet清单和模板中使用该名称。
你可以在你的site.pp文件中添加这个调用。
$rds_internal_name = generate('/usr/local/sbin/get-rds-internal-name')