【发布时间】:2017-05-15 14:53:52
【问题描述】:
我正在尝试使用我的 puppet master 配置 aws ec2 实例。我想利用 aws-sdk 提供的user_data 字段并在节点上安装 puppet-agent。现在我只能在 puppet 的帮助下创建一个实例。
ec2_instance { 'p-node':
ensure => running,
region => 'ap-southeast-1',
image_id => 'ami-25c00c46',
key_name => 'POC-KeyPair',
instance_type => 't2.micro',
security_groups => 'launch-wizard-1',
subnet => 'dashboard-pub-subnet-1',
user_data => template('agent-pe-userdata.erb'),
}
agent-pe-userdata.erb
#!/bin/bash
PE_MASTER='<%= @pe_master_hostname %>'
PE_CERTNAME=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
curl -sk https://$PE_MASTER:8140/packages/current/install.bash | /bin/bash -s agent:certname=$PE_CERTNAME
就我而言,puppet 无法找到 puppet 提供的 templatedir 选项。
#puppet apply site.pp --test --templatedir templates
Error: Could not parse application options: invalid option: --templatedir
请提出我在这里做错了什么。
提前致谢。
【问题讨论】:
-
--templatedir实际上不是puppet apply参数(docs.puppet.com/puppet/latest/reference/man/apply.html),那么您想用它做什么呢?默认模板目录是相应模块目录中的templates,看起来就像您尝试手动指定的那样。 -
@MattSchuchard 我正在尝试使用 aws 提供的示例 agent-pe-userdata.erb 在新创建的节点上设置 puppet-agent。从这里得到参考:(puppet.com/blog/…)
-
如果这不可能,请提出任何其他方法来实现这一点。我想创建一个 ec2 实例并将 puppet-agent 引导到它。
-
那篇博客文章是针对过时版本的 puppet。您应该在其 github 页面上使用该模块的最新文档:github.com/puppetlabs/puppetlabs-aws
标签: amazon-web-services amazon-ec2 puppet erb aws-sdk