本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
OpsWorks 为 Puppet Enterprise 自动添加节点
重要
该 AWS OpsWorks for Puppet Enterprise 服务于 2024 年 3 月 31 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre
本主题介绍如何将亚马逊弹性计算云 (Amazon EC2) 节点自动添加到 for Puppet Enterp OpsWorks rise 服务器中。在为 Puppet Master 添加要管理的节点中,您学会了如何使用 associate-node
命令,一次向您的 Puppet Enterprise 服务器中添加一个节点。本主题中的代码显示如何使用无人参与的方法自动添加节点。对于如何在无人参与的情况下 (或自动) 将新的节点关联起来,我们推荐的方法是配置 Amazon EC2 用户数据。默认情况下, OpsWorks 适用于 Puppet Enterprise 的服务器已经puppet-agent
有关如何取消关联节点的信息,请参阅取消节点与 for Puppet OpsWorks 企业服务器的关联本指南和 disassociate-node
for Puppet Enterprise API 文档。 OpsWorks
第 1 步:创建一个 IAM 角色,以用作您的实例配置文件
创建一个 AWS Identity and Access Management (IAM) 角色用作您的 EC2 实例配置文件,并将以下策略附加到该 IAM 角色。该策略准许 opsworks-cm
API 在节点注册期间与 EC2 实例通信。有关实例配置文件的更多信息,请参阅 Amazon EC2 文档中的使用实例配置文件。有关如何创建 IAM 角色的信息,请参阅 Amazon EC2 文档中的在控制台中创建 IAM 角色。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "opsworks-cm:AssociateNode", "opsworks-cm:DescribeNodeAssociationStatus", "opsworks-cm:DescribeServers", "ec2:DescribeTags" ], "Resource": "*", "Effect": "Allow" } ] }
AWS OpsWorks 提供了一个 AWS CloudFormation 模板,您可以使用该模板通过上述策略声明创建 IAM 角色。以下 AWS CLI 命令使用此模板为您创建实例配置文件角色。如果您想在默认区域中创建新 AWS CloudFormation 堆栈,则可以省略该--region
参数。
aws cloudformation --region
region ID
create-stack --stack-namemyPuppetinstanceprofile
--template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/owpe/opsworks-cm-nodes-roles.yaml --capabilities CAPABILITY_IAM
第 2 步:使用自动化关联脚本创建实例
要创建 EC2 实例,您可以将入门套件中包含的用户数据脚本复制到 EC2 实例说明userdata
部分、Amazon EC2 Auto Scaling 组启动配置或 AWS CloudFormation 模板中。仅对于运行 Ubuntu 和 Amazon Linux 操作系统的 EC2 实例支持该脚本。有关将脚本添加将到用户数据的更多信息,请参阅 Amazon EC2 文档中的启动时对您的 Linux 实例运行命令。创建新节点最简单的方法是使用 Amazon EC2 实例启动向导。此演练使用 Puppet Enterp OpsWorks rise 入门 中所述的 Apache web 服务器示例模块设置。
-
初学者工具包中的用户数据脚本运行
opsworks-cm
APIassociate-node
命令,将一个新的节点与您的 Puppet Master 相关联。在此版本中,它还会为您在节点 AWS CLI 上安装当前版本的,以防它尚未运行大多数 up-to-date 版本。将此脚本以名称userdata.sh
保存到方便的位置。默认情况下,新注册节点的名称是实例 ID。
-
按照 EC2 文档中启动实例的说明操作,修改见此处。在 EC2 实例启动向导中,选择 Amazon Linux AMI。
-
在 Configure Instance Details 页面上,选择 myPuppetinstanceprofile,将您在 第 1 步:创建一个 IAM 角色,以用作您的实例配置文件中创建的角色作为 IAM 角色。
-
在 Advanced Details 区域中,上传您在步骤 1 中创建的
userdata.sh
脚本。 -
无需在 Add Storage 页面上进行更改。转到 Add Tags。
通过将标签应用到 EC2 实例,您可以自定义
userdata.sh
的行为。对于此示例,通过添加值为apache_webserver
的标签pp_role
,将角色apache_webserver
应用到您的节点。在节点上设置
pp_role
值将设置永久存储在节点的代理证书中的数据值,为节点启用可信分类。有关更多信息,请参阅 Puppet 平台文档中的扩展请求 (永久证书数据)。 -
在配置安全组页上,选择添加规则,然后选择类型 HTTP,在此例中为 Apache Web 服务器打开端口 8080。
-
选择 Review and Launch,然后选择 Launch。新节点启动时,它会应用您在 设置初学者工具包 Apache 示例 中设置的示例模块的 Apache 配置。
-
当您打开链接到新节点的公有 DNS 的网页时,您应看到网站托管在由 Puppet 管理的 Apache Web 服务器上。