为 Puppet Master 添加要管理的节点 - AWS OpsWorks

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

为 Puppet Master 添加要管理的节点

重要

AWS OpsWorks for Puppet Enterprise不再接受新客户。现有客户在 2024 年 3 月 31 日之前不会受到影响,届时该服务将不可用。我们建议现有客户尽快迁移到其他解决方案。有关更多信息,请参阅 AWS OpsWorks for Puppet Enterprise 生命周期终止常见问题解答如何将 OpsWorks for Puppet Enterprise 服务器迁移到 Amazon Elastic Cloud (Amazon EC2)

添加节点的推荐方法是使用 AWS OpsWorks associateNode() API。Puppet Enterprise Master 服务器托管您用来在要管理的节点上安装 Puppet 代理软件的存储库,无论这些节点是在本地物理计算机上还是在虚拟机上。在启动过程中,一些操作系统的 Puppet 代理软件将安装到 OpsWorks for Puppet Enterprise 服务器上。下表显示了启动时可在 OpsWorks for Puppet Enterprise 服务器上使用的操作系统代理。

预安装的操作系统代理
支持的操作系统 版本
Ubuntu 16.04, 18.04, 20.04
Red Hat Enterprise Linux (RHEL) 6, 7, 8
Windows 64 位版本的所有 Puppet 支持的 Windows 版本

对于其他操作系统,您可以将 puppet-agent 添加到您的服务器。请注意,系统维护将删除您在启动后添加到服务器的代理。虽然大多数运行已删除代理的现有附加节点将继续签入,但运行 Debian 操作系统的节点会停止报告。建议您在运行操作系统的节点上手动安装 puppet-agent,未针对这些节点在 OpsWorks for Puppet Enterprise 服务器上预安装代理软件。有关如何使 puppet-agent 适用于面向带其他操作系统的节点的服务器的详细信息,请参阅 Puppet Enterprise 文档中的安装代理

有关如何通过填充 EC2 实例用户数据来自动将节点与 Puppet Master 关联的信息,请参阅自动添加节点于 OpsWorks for Puppet Enterprise

运行 associateNode() API 调用

在通过安装 puppet-agent 添加节点后,节点会将证书签名请求 (CSR) 发送到 OpsWorks for Puppet Enterprise 服务器。您可以在 Puppet console;中查看 CSR。有关节点 CSR 的更多信息,请参阅 Puppet Enterprise 文档中的管理证书签名请求。运行 OpsWorks for Puppet Enterprise associateNode() API 调用将处理节点 CSR 并将节点与服务器关联。以下示例说明如何在 AWS CLI 中使用此 API 调用以关联单个节点。您需要节点发送的 PEM 格式的 CSR;您可以从 Puppet 控制台获取它。

aws opsworks-cm associate-node --server-name "test-puppet-server" --node-name "node or instance ID" --engine-attributes "Name=PUPPET_NODE_CSR,Value='PEM_formatted_CSR_from_the_node'

有关如何使用 associateNode() 自动添加节点的更多信息,请参阅自动添加节点于 OpsWorks for Puppet Enterprise

添加本地节点的注意事项

在本地计算机或虚拟机上安装 puppet-agent 后,您可以使用两种方式之一将本地节点与您的 OpsWorks for Puppet Enterprise Master 关联。

  • 如果某个节点支持安装 AWS 开发工具包AWS CLIAWS Tools for PowerShell ,您可以使用推荐的方法关联节点,即运行 associateNode() API 调用。您首次创建 OpsWorks for Puppet Enterprise Master 时下载的初学者工具包会显示如何使用标签将角色分配到节点。在将节点与 Puppet Master 关联的同时,您可以通过在 CSR 中指定可信事实来应用标签。例如,初学者工具包中随附的演示控制存储库被配置为使用标签 pp_role 将角色分配到 Amazon EC2 实例。有关如何将标签作为可信事实添加至 CSR 的更多信息,请参阅 Puppet 平台文档中的扩展请求 (永久证书数据)

  • 如果该节点无法运行 AWS 管理或部署工具,您仍然可以按向任何非托管 Puppet Enterprise Master 注册该节点的方式向您的 OpsWorks for Puppet Enterprise Master 注册该节点。如本主题中所述,安装 puppet-agent 会向 OpsWorks for Puppet Enterprise Master 发送 CSR。授权 Puppet 用户可以手动签署 CSR,或通过编辑存储在 Puppet Master 上的 autosign.conf 文件配置 CSR 的自动签署。有关配置自动签署和编辑 autosign.conf 的更多信息,请参阅 Puppet 平台文档中的 SSL 配置:自动签署证书请求

要将本地节点与 Puppet Master 关联,并允许 Puppet Master 接受所有 CSR,请在 Puppet Enterprise 控制台中执行以下操作。控制此行为的参数为 puppet_enterprise::profile::master::allow_unauthenticated_ca

重要

出于安全考虑,建议不要启用 Puppet Master 来接受自签名 CSR 或所有 CSR。默认情况下,允许未经身份验证的 CSR 将使 Puppet Master 可供任何人访问。默认情况下,将证书请求上传设置为启用会使您的 Puppet Master 易受拒绝服务 (DoS) 攻击。

  1. 登录 Puppet Enterprise 控制台。

  2. 依次选择 Configure (配置)Classification (分类)PE MasterConfiguration (配置) 选项卡。

  3. Classification (分类) 选项卡上,找到类 puppet_enterprise::profile::master

  4. allow_unauthenticated_ca 参数的值设置为 true

  5. 保存您的更改。您的更改将在下一次运行 Puppet 时应用。您可以允许更改在 30 分钟后生效(并添加本地节点),也可以在 PE 控制台的 Run (运行) 部分中手动启动 Puppet 运行。

更多信息

访问学习 Puppet 教程网站,了解有关使用 OpsWorks for Puppet Enterprise 服务器和 Puppet Enterprise 控制台功能的更多信息。