

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

# Puppet Enterp OpsWorks rise 入门
<a name="gettingstarted-opspup"></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 支持 团队联系。

OpsWorks for Puppet Enterprise 允许你在中运行 [Puppet Enter](https://puppet.com/products/puppet-enterprise) p AWS您可以在大约 15 分钟内预配置一个 Puppet Enterprise Master 服务器。

从 2021 年 5 月 3 日起，Puppet Enterprise 将在其中存储一些 Puppet Enterprise OpsWorks AWS Secrets Manager有关更多信息，请参阅 [与集成 AWS Secrets Manager](data-protection.md#data-protection-secrets-manager)。

以下演练可帮助你在 Puppet Enterprise 中 OpsWorks 创建第一个 Puppet 大师。

## 先决条件
<a name="gettingstarted-opspup-prereqs"></a>

在开始之前，您必须完成以下前提条件：

**Topics**
+ [安装 Puppet 开发工具包](#w2ab1b7c21c11b7)
+ [安装 Puppet Enterprise 客户端工具](#w2ab1b7c21c11b9)
+ [设置 Git 控制存储库](#configure-control-repository)
+ [设置 VPC](#set-up-vpc-puppet)
+ [设置 EC2 密钥对（可选）](#set-up-kp-puppet)
+ [使用自定义域的先决条件（可选）](#gettingstarted-opspup-prereq-customdomain)

### 安装 Puppet 开发工具包
<a name="w2ab1b7c21c11b7"></a>

1. 从 Puppet 网站[下载 Puppet 开发工具包](https://puppet.com/download-puppet-development-kit)，该工具包适合您的本地计算机的操作系统。

1. 安装 Puppet 开发工具包。

1. 将 Puppet 开发工具包添加到本地计算机的 `PATH` 变量。
   + 在 Linux 或 macOS 操作系统上，您可以通过在 Bash shell 中运行以下命令来将 Puppet 开发工具包添加到 `PATH` 变量。

     ```
     echo 'export PATH=/opt/puppetlabs/pdk/bin/pdk:$PATH' >> ~/.bash_profile && source ~/.bash_profile
     ```
   + **在基于 Windows 的操作系统上，可以在 PowerShell 会话中或通过 “系统属性” 访问的 “**环境`PATH`变量” 对话框中使用以下.NET Framework 命令将 Puppet 开发套件添加到变量**中。**您可能需要以管理员身份运行 PowerShell 会话才能运行以下命令。

     ```
     [Environment]::SetEnvironmentVariable("Path","new path value","Machine")
     ```

### 安装 Puppet Enterprise 客户端工具
<a name="w2ab1b7c21c11b9"></a>

Puppet Enterprise (PE) 客户端工具是一组命令行工具，可让您从工作站访问 Puppet Enterprise 服务。这些工具可安装在许多不同的操作系统上，也可以安装在使用 Puppet 管理的节点上。有关支持这些工具的操作系统以及如何安装这些工具的信息，请参阅 Puppet Enterprise 文档中的[安装 PE 客户端工具](https://puppet.com/docs/pe/2019.8/installing_pe_client_tools.html)。

### 设置 Git 控制存储库
<a name="configure-control-repository"></a>

您必须先在 Git 中配置一个控制存储库来存储 Puppet 模块和类并对它们进行变更管理，然后才能启动 Puppet Master。在启动 Puppet Enterprise Master 服务器的步骤中，需要指向 Git 存储库的 URL 以及用于访问该存储库的 HTTPS 或 SSH 账户信息。有关如何设置 Puppet Enterprise Master 将使用的控制存储库的更多信息，请参阅[设置控制存储库](https://puppet.com/docs/pe/2019.8/control_repo.html)。您还可以在上的 Puppet [`control-repo`示例存储库的自述文件中找到控制存储库](https://github.com/puppetlabs/control-repo)设置说明。 GitHub控制存储库的结构类似于以下内容。

```
├── LICENSE
├── Puppetfile
├── README.md
├── environment.conf
├── hieradata
│   ├── common.yaml
│   └── nodes
│       └── example-node.yaml
├── manifests
│   └── site.pp
├── scripts
│   ├── code_manager_config_version.rb
│   ├── config_version.rb
│   └── config_version.sh
└── site
    ├── profile
    │   └── manifests
    │       ├── base.pp
    │       └── example.pp
    └── role
        └── manifests
            ├── database_server.pp
            ├── example.pp
            └── webserver.pp
```

#### 使用设置存储库 CodeCommit
<a name="w2ab1b7c21c11c11b7"></a>

您可以使用创建新存储库 CodeCommit。有关 CodeCommit 如何使用创建控制存储库的更多信息，请参阅本指南[可选：用 AWS CodeCommit 作 Puppet r10k 远程控制存储库](opspup-puppet-codecommit.md)中的。有关如何开始使用 Git 的更多信息 CodeCommit，请参阅 [AWS 入门 CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/getting-started.html)。要授权您的 f OpsWorks or Puppet Enterprise 服务器使用您的存储库，请将该`AWSCodeCommitReadOnly`策略附加到您的 IAM 实例配置文件角色。

### 设置 VPC
<a name="set-up-vpc-puppet"></a>

你的 OpsWorks Puppet Enterprise 主服务器必须在亚马逊 Virtual Private Cloud 中运行。您可以将其添加到现有 VPC、使用默认 VPC，或者创建新 VPC 以包含服务器。有关创建 Amazon VPC 以及如何创建新 VPC 的信息，请参阅 [Amazon VPC 入门指南](https://docs.aws.amazon.com/AmazonVPC/latest/GettingStartedGuide/)。

如果您创建自己的 VPC，或者使用现有的 VPC，则它应具有以下设置或属性。
+ VPC 应具有至少一个子网。

  如果您的 OpsWorks Puppet Enterprise 主服务器可以公开访问，请将子网设为公有子网，然后启用**自动分配公**有 IP。
+ 应该启用 **DNS resolution**。
+ 在子网上，启用 **Auto-assign public IP**。

### 设置 EC2 密钥对（可选）
<a name="set-up-kp-puppet"></a>

对于 Puppet 服务器的典型管理，不需要也不建议使用 SSH 连接；您可以使用 AWS 管理控制台 和 AWS CLI 命令在 Puppet 服务器上执行许多管理任务。

如果您丢失或想要更改基于 Web 的 Puppet Enterprise 控制台的登录密码，则需要 EC2 密钥对才能使用 SSH 连接到服务器。您可以使用现有的密钥对，或者创建新的密钥对。有关如何创建新 EC2 密钥对的更多信息，请参阅 [Amazon EC2 密钥对](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)。

如果你不需要 EC2 密钥对，你就可以创建 Puppet Enterprise 主服务器了。

### 使用自定义域的先决条件（可选）
<a name="gettingstarted-opspup-prereq-customdomain"></a>

您可以在自己的域上设置 Puppet Enterprise 主服务器，同时在自定义域中指定一个公有终端节点用作服务器的终端节点。当您使用自定义域时，需要执行以下所有操作，如本节中详细介绍。

**Topics**
+ [设置自定义域](#opspup-prereq-customdomain)
+ [获取证书](#opspup-prereq-customdomain-cert)
+ [获取私有密钥](#opspup-prereq-customdomain-pk)

#### 设置自定义域
<a name="opspup-prereq-customdomain"></a>

要在自己的自定义域上运行 Puppet Enterprise 主服务器，您需要服务器的公有终端节点，例如 `https://aws.my-company.com`。如果指定自定义域，还必须提供证书和私有密钥，如前面各节所述。

要在创建服务器后访问此服务器，请在首选 DNS 服务中添加 CNAME DNS 记录。此记录必须将自定义域指向由 Puppet 主服务器创建过程生成的终端节点（服务器的 `Endpoint` 属性的值）。如果服务器使用自定义域，则无法使用生成的 `Endpoint` 值访问服务器。

#### 获取证书
<a name="opspup-prereq-customdomain-cert"></a>

要在您自己的自定义域上设置您的 Puppet 主服务器，您需要 PEM 格式的 HTTPS 证书。这可以是单个自签名证书或证书链。在完成 **Create a Puppet Enterprise Master (创建 Puppet Enterprise 主服务器)** 工作流时，如果您指定此证书，则还必须提供自定义域和私有密钥。

以下是证书值的要求：
+ 您可以提供自签名的自定义证书或完整的证书链。
+ 证书必须是有效的 X509 证书或 PEM 格式的证书链。
+ 证书在上传时必须是有效的。您不能在证书有效期开始（证书的 `NotBefore` 日期）之前或证书有效期到期（证书的 `NotAfter` 日期）之后使用证书。
+ 证书的常用名或主题备用名称 (SANs)（如果存在）必须与自定义域值相匹配。
+ 证书必须与 **Custom private key (自定义私有密钥)** 字段的值匹配。

#### 获取私有密钥
<a name="opspup-prereq-customdomain-pk"></a>

要在自己的自定义域上设置 Puppet 主服务器，您需要一个 PEM 格式的私有密钥，以便使用 HTTPS 连接到服务器。私有密钥不得加密；无法使用密码或密码短语保护它。如果指定自定义私有密钥，则还必须提供自定义域和证书。