如何使用 Puppet 管理 AWS 自动缩放

如何使用 Puppet 管理 AWS 自动缩放

如何使用 Puppet 管理自动扩展实例?我想根据实例类型配置软件堆栈(例如,如果是 Web,则配置 Apache 或 Nginx;如果是应用程序,则配置 java 或 php)

答案1

这可以通过 hiera 轻松管理。在服务器的引导程序中,您可以编写一个自定义事实,hiera 将使用该事实将相关模块应用到您的服务器。在您的 cloud-init 用户数据脚本中,您可以添加类似以下内容:

echo 'role=apache_web' > /etc/facter/facts.d/role.txt

然后,您可以在 hiera 的层次结构中使用该角色。以下是 的示例部分hiera.yml

:hierarchy:
  - "nodes/%{::trusted.certname}"
  - "environment/%{::environment}"
  - "role/%{::server_role}"
  - "common"

您的 apache_web 角色的 hiera 文件将位于hieradata/role/apache_web.yaml您的控制存储库中。对于 Puppet 4,绝对路径应为/etc/puppetlabs/code/environments/$ENVIRONMENT/hieradata/role/apache_web.yaml。以下是示例:

---
classes:
  - 'apache'
  - 'myinternalmodule'

为了将所有内容联系在一起,让所有节点使用相同的 site.pp,其中包括:

hiera_include('classes')

相关内容