OpsWorks 为 Puppet Enterprise 自动添加节点 - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

OpsWorks 为 Puppet Enterprise 自动添加节点

重要

该 AWS OpsWorks for Puppet Enterprise 服务于 2024 年 3 月 31 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre mium Su AWS pp ort 与 AWS Support 团队联系。

本主题介绍如何将亚马逊弹性计算云 (Amazon EC2) 节点自动添加到 for Puppet Enterp OpsWorks rise 服务器中。在为 Puppet Master 添加要管理的节点中,您学会了如何使用 associate-node 命令,一次向您的 Puppet Enterprise 服务器中添加一个节点。本主题中的代码显示如何使用无人参与的方法自动添加节点。对于如何在无人参与的情况下 (或自动) 将新的节点关联起来,我们推荐的方法是配置 Amazon EC2 用户数据。默认情况下, OpsWorks 适用于 Puppet Enterprise 的服务器已经puppet-agent可用于 Ubuntu、Amazon Linux 和 RHEL 节点操作系统。

有关如何取消关联节点的信息,请参阅取消节点与 for Puppet OpsWorks 企业服务器的关联本指南和 disassociate-nodefor 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-name myPuppetinstanceprofile --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 服务器示例模块设置。

  1. 初学者工具包中的用户数据脚本运行 opsworks-cm API associate-node 命令,将一个新的节点与您的 Puppet Master 相关联。在此版本中,它还会为您在节点 AWS CLI 上安装当前版本的,以防它尚未运行大多数 up-to-date 版本。将此脚本以名称 userdata.sh 保存到方便的位置。

    默认情况下,新注册节点的名称是实例 ID。

  2. 按照 EC2 文档中启动实例的说明操作,修改见此处。在 EC2 实例启动向导中,选择 Amazon Linux AMI。

  3. Configure Instance Details 页面上,选择 myPuppetinstanceprofile,将您在 第 1 步:创建一个 IAM 角色,以用作您的实例配置文件中创建的角色作为 IAM 角色。

  4. Advanced Details 区域中,上传您在步骤 1 中创建的 userdata.sh 脚本。

  5. 无需在 Add Storage 页面上进行更改。转到 Add Tags

    通过将标签应用到 EC2 实例,您可以自定义 userdata.sh 的行为。对于此示例,通过添加值为 apache_webserver 的标签 pp_role,将角色 apache_webserver 应用到您的节点。

    在节点上设置 pp_role 值将设置永久存储在节点的代理证书中的数据值,为节点启用可信分类。有关更多信息,请参阅 Puppet 平台文档中的扩展请求 (永久证书数据)

  6. 配置安全组页上,选择添加规则,然后选择类型 HTTP,在此例中为 Apache Web 服务器打开端口 8080。

  7. 选择 Review and Launch,然后选择 Launch。新节点启动时,它会应用您在 设置初学者工具包 Apache 示例 中设置的示例模块的 Apache 配置。

  8. 当您打开链接到新节点的公有 DNS 的网页时,您应看到网站托管在由 Puppet 管理的 Apache Web 服务器上。