如何将 Chef Opscode 与 AWS 自动缩放结合使用
How to use Chef Opscode with AWS autoscaling
我一直面临将 Chef 与 AWS 自动缩放集成的问题。
在我的大部分搜索中,它讲述了引导一个实例,然后使用它的 AMI 以相同的方式启动其他实例。
基本问题是,Chef 会用主机名识别每个主机,在上述情况下,主机名都是相同的。但是,我希望有像角色这样的东西可以集成到 AWS 中并为我做得更好。任何 help/Ideas 将不胜感激。我只是希望有人已经做到了。
此致,
有很多选项,但一般流程如下所示:
- 使用预安装的 Chef 和您的组织验证程序密钥创建 AMI,并使用服务器 URL 集创建
client.rb
。 Packer 非常适合这个。技术上可选,您可以从用户数据脚本执行此操作,但它会在每次服务器启动时节省几秒钟。
- 将 ASG 上的
UserData
字段配置为启动 chef-client -r 'role[myrole]
其中myrole
通常基于您正在构建的 ASG 类型。这将使用验证器密钥自动注册到 Chef 服务器,并根据您提供的命令行设置 运行 列表。如果您正在使用这些功能,您可以使用类似的参数来设置环境或策略名称。
- 在该角色中包含
chef-client
cookbook/recipe 以将 Chef 作为守护程序安装在机器上并删除验证器密钥。
我一直面临将 Chef 与 AWS 自动缩放集成的问题。
在我的大部分搜索中,它讲述了引导一个实例,然后使用它的 AMI 以相同的方式启动其他实例。
基本问题是,Chef 会用主机名识别每个主机,在上述情况下,主机名都是相同的。但是,我希望有像角色这样的东西可以集成到 AWS 中并为我做得更好。任何 help/Ideas 将不胜感激。我只是希望有人已经做到了。
此致,
有很多选项,但一般流程如下所示:
- 使用预安装的 Chef 和您的组织验证程序密钥创建 AMI,并使用服务器 URL 集创建
client.rb
。 Packer 非常适合这个。技术上可选,您可以从用户数据脚本执行此操作,但它会在每次服务器启动时节省几秒钟。 - 将 ASG 上的
UserData
字段配置为启动chef-client -r 'role[myrole]
其中myrole
通常基于您正在构建的 ASG 类型。这将使用验证器密钥自动注册到 Chef 服务器,并根据您提供的命令行设置 运行 列表。如果您正在使用这些功能,您可以使用类似的参数来设置环境或策略名称。 - 在该角色中包含
chef-client
cookbook/recipe 以将 Chef 作为守护程序安装在机器上并删除验证器密钥。