我正在尝试使用EC2实例在AWS中构建一个木偶管理基础架构(非企业).使用puppetlabs-aws模块我可以通过方便的方式创建机器.接下来是在每个节点上进行本地设置,最重要的是设置唯一的主机名.我怎样才能做到这一点?
我知道的一种方法是通过user_data
参数提供脚本.这将是很好的,但为了可用,我需要能够参数化该脚本,以避免为每个代理重复一次脚本.
是否有意义?我真的很感激一种实现这一目标的便捷方式,因为我想以编程方式启动新实例.任何建议都将被考虑.
举一个我的问题的例子,考虑我的配置木偶清单的这个片段:
ec2_instance { 'backend': ensure => present, name => 'backend', region => 'us-west-2', image_id => 'ami-f0091d91', instance_type => 't2.micro', key_name => 'mykey', security_groups => ['provision-sg'], user_data => template('configure.erb'), } ec2_instance { 'webfront': ensure => present, name => 'webfront', region => 'us-west-2', image_id => 'ami-f0091d91', instance_type => 't2.micro', key_name => 'mykey', security_groups => ['provision-sg'], user_data => template('configure.erb'), }
这将确保两个实例启动并运行.请注意user_data => template('configure.erb')
引用模板脚本,该脚本在创建后在实例上执行.如果我只知道决定依据的数据,我可以在这里设置主机名(或我想要的任何东西).我可以在实例描述中添加标签,但configure.erb
据我所知,从脚本中无法读取.
无论如何,设置主机名只是我解决根本问题的想法.可能还有其他更方便的方法.我想要的只是让这两个实例代表木偶大师的不同节点类型的方法.