

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# OpsWorks for Puppet Enterprise 入門
<a name="gettingstarted-opspup"></a>

**重要**  
 AWS OpsWorks for Puppet Enterprise 此服務已於 2024 年 3 月 31 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

OpsWorks for Puppet Enterprise 可讓您在其中執行 [Puppet Enterprise](https://puppet.com/products/puppet-enterprise) 伺服器 AWS。只要約 15 分鐘就能佈建 Puppet Enterprise 主伺服器。

從 2021 年 5 月 3 日開始，OpsWorks for Puppet Enterprise 會在 中存放一些 Puppet Enterprise 伺服器屬性 AWS Secrets Manager。如需詳細資訊，請參閱[與 整合 AWS Secrets Manager](data-protection.md#data-protection-secrets-manager)。

下列逐步解說可協助您在 OpsWorks for Puppet Enterprise 中建立第一個 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 文件中的 [Installing PE client tools](https://puppet.com/docs/pe/2019.8/installing_pe_client_tools.html)。

### 設定 Git 控制儲存庫
<a name="configure-control-repository"></a>

在您啟動 Puppet 主伺服器之前，您必須在 Git 中設定控制儲存庫，以存放及變更管理您的 Puppet 模組和類別。在啟動 Puppet Enterprise 主伺服器的步驟中，需要 Git 儲存庫的 URL 及 HTTPS 或用來存取儲存庫的 SSH 帳戶資訊。如需如何設定您的 Puppet Enterprise 主伺服器將使用之控制儲存庫的詳細資訊，請參閱 [Setting up a control repository](https://puppet.com/docs/pe/2019.8/control_repo.html)。您也可以在 [`control-repo`GitHub 上 Puppet 範例儲存庫](https://github.com/puppetlabs/control-repo)的讀我檔案中，找到控制儲存庫設定說明。控制儲存庫的結構類似如下。

```
├── 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)中的 。如需如何在 CodeCommit 上開始使用 Git 的詳細資訊，請參閱 [ AWS CodeCommit 入門](https://docs.aws.amazon.com/codecommit/latest/userguide/getting-started.html)。若要為您的儲存庫授權 OpsWorks for Puppet Enterprise 伺服器，請將`AWSCodeCommitReadOnly`政策連接至您的 IAM 執行個體描述檔角色。

### 設定 VPC
<a name="set-up-vpc-puppet"></a>

您的 OpsWorks for Puppet Enterprise 主伺服器必須在 Amazon Virtual Private Cloud 中操作。您可以將其新增至現有的 VPC、使用預設 VPC，或建立新的 VPC 來包含伺服器。如需有關 Amazon VPC 以及如何建立新的 VPC 的資訊，請參閱 [Amazon VPC 入門指南](https://docs.aws.amazon.com/AmazonVPC/latest/GettingStartedGuide/)。

如果您建立自己的 VPC 或使用現有的 VPC，VPC 應有下列設定或屬性。
+ VPC 至少應有一個子網路。

  如果您的 OpsWorks for Puppet Enterprise 主伺服器將可公開存取，請將子網路設為公有，並啟用**自動指派公有 IP**。
+ 應啟用 **DNS resolution (DNS 解析)**。
+ 在子網路上，啟用 **Auto-assign public IP (自動指派公有 IP)**。

### 設定 EC2 金鑰對 (選用)
<a name="set-up-kp-puppet"></a>

典型的 Puppet 伺服器管理不需要或建議 SSH 連線；您可以使用 AWS 管理主控台 和 AWS CLI 命令在 Puppet 伺服器上執行許多管理任務。

如果您遺失或想要變更 Puppet Enterprise Web 型主控台的登入密碼，則需要 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` 日期) 之後使用憑證。
+ 憑證的一般名稱或主體別名 (SAN) (如果存在) 必須符合自訂網域值。
+ 憑證必須符合 **Custom private key (自訂私密金鑰)** 欄位的值。

#### 取得私密金鑰
<a name="opspup-prereq-customdomain-pk"></a>

若要在自有的自訂網域上設定 Puppet 主伺服器，您需要使用 PEM 格式的私密金鑰以利用 HTTPS 連接到伺服器。私密金鑰不得加密，不能受密碼或密碼短語保護。如果您指定自訂私密金鑰，您還必須提供自訂網域和憑證。