

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

# 为 Puppet Master 添加要管理的节点
<a name="opspup-addnodes"></a>

**重要**  
该 AWS OpsWorks for Puppet Enterprise 服务于 2024 年 3 月 31 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

**Topics**
+ [运行 `associateNode()` API 调用](#w2ab1b7c21c17c15)
+ [添加本地节点的注意事项](#w2ab1b7c21c17c17)
+ [更多信息](#w2ab1b7c21c17c19)

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


**预安装的操作系统代理**  

| 支持的操作系统 | 版本 | 
| --- | --- | 
| Ubuntu | 16.04、18.04、20.04 | 
| Red Hat Enterprise Linux (RHEL) | 6、7、8 | 
| Windows | 64 位版本的所有 [Puppet 支持的](https://puppet.com/docs/pe/2019.8/supported_operating_systems.html#agent-platforms) Windows 版本 | 

对于其他操作系统，您可以将 `puppet-agent` 添加到您的服务器。请注意，系统维护将删除您在启动后添加到服务器的代理。虽然大多数运行已删除代理的现有附加节点将继续签入，但运行 Debian 操作系统的节点会停止报告。我们建议您在运行操作系统的节点`puppet-agent`上手动安装，而您 OpsWorks 的 puppet Enterprise 服务器上未预装代理软件。有关如何使 `puppet-agent` 适用于面向带其他操作系统的节点的服务器的详细信息，请参阅 Puppet Enterprise 文档中的[安装代理](https://puppet.com/docs/pe/2019.8/installing_agents.html)。

有关如何通过填充 EC2 实例用户数据自动将节点与 Puppet 主节点关联的信息，请参阅。[OpsWorks 为 Puppet Enterprise 自动添加节点](opspup-unattend-assoc.md)

## 运行 `associateNode()` API 调用
<a name="w2ab1b7c21c17c15"></a>

通过安装添加节点后`puppet-agent`，节点会向 Puppet Enterprise 服务器发送证书签名请求 (CSRs)。 OpsWorks 您可以在 Puppet 控制台 CSRs 中查看；有关节点的更多信息 CSRs，请参阅 Puppet Enterprise [文档中的管理证书签名请求](https://puppet.com/docs/pe/2019.8/adding_and_removing_nodes.html#managing_CSRs)。运行 f OpsWorks or Puppet Enterprise `associateNode()` API 调用处理节点 CSRs，并将该节点与您的服务器关联。以下是如何在中使用此 API 调用关联单个节点的 AWS CLI 示例。您需要节点发送的 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 为 Puppet Enterprise 自动添加节点](opspup-unattend-assoc.md)。

## 添加本地节点的注意事项
<a name="w2ab1b7c21c17c17"></a>

在本地计算机或虚拟机`puppet-agent`上安装后，您可以使用两种方式中的任何一种将本地节点与 for Puppet Enterprise OpsWorks 主节点相关联。
+ 如果某个节点支持安装 [AWS 开发工具包](https://aws.amazon.com/tools/)、[AWS CLI](https://aws.amazon.com/cli/) 或 [AWS Tools for PowerShell](https://aws.amazon.com/powershell/) ，您可以使用推荐的方法关联节点，即运行 `associateNode()` API 调用。首次创建 Puppet Enterpr OpsWorks ise 大师版时下载的入门套件展示了如何使用标签为节点分配角色。在将节点与 Puppet Master 关联的同时，您可以通过在 CSR 中指定可信事实来应用标签。例如，入门套件中包含的演示控制存储库配置为使用标签`pp_role`为 Amazon EC2 实例分配角色。有关如何将标签作为可信事实添加至 CSR 的更多信息，请参阅 Puppet 平台文档中的[扩展请求 (永久证书数据)](https://puppet.com/docs/puppet/5.1/ssl_attributes_extensions.html#extension-requests-permanent-certificate-data))。
+ 如果该节点无法运行 AWS 管理或开发工具，你仍然可以在你的 Puppet Enterprise 主节点中注册该节点，就像向任何非托管的 Puppet Enterprise 主节点注册一样。 OpsWorks 如本主题所述，安装`puppet-agent`会向 Puppet Enterprise 主服务器发送一个 CSR。 OpsWorks 授权的 Puppet 用户可以手动签署 CSR，也可以 CSRs 通过编辑存储在 Puppet 主服务器上的`autosign.conf`文件来配置自动签名。有关配置自动签署和编辑 `autosign.conf` 的更多信息，请参阅 Puppet 平台文档中的 [SSL 配置：自动签署证书请求](https://puppet.com/docs/puppet/5.3/ssl_autosign.html)。

要将本地节点与 Puppet 主节点关联并允许 Puppet 主节点全部接受 CSRs，请在 Puppet Enterprise 控制台中执行以下操作。控制此行为的参数为 `puppet_enterprise::profile::master::allow_unauthenticated_ca`。

**重要**  
出于安全考虑，不建议让 Puppet 大师接受自签名 CSRs 或全部 CSRs 接受。默认情况下，允许未经身份验证 CSRs 会使全世界都能访问 Puppet 大师。默认情况下，将证书请求上传设置为启用会使您的 Puppet Master 易受拒绝服务 (DoS) 攻击。

1. 登录 Puppet Enterprise 控制台。

1. 依次选择 **Configure (配置)**、**Classification (分类)**、**PE Master**、**Configuration (配置)** 选项卡。

1. 在 **Classification (分类)** 选项卡上，找到类 **puppet\$1enterprise::profile::master**。

1. 将 **allow\$1unauthenticated\$1ca** 参数的值设置为 **true**。

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

## 更多信息
<a name="w2ab1b7c21c17c19"></a>

访问 Le [arn Puppet 教程网站](https://learn.puppet.com/)，详细了解如何使用 OpsWorks Puppet Enterprise 服务器和 Puppet Enterprise 控制台功能。