

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

# 在 OpsWorks for Puppet Enterprise 中自動新增節點
<a name="opspup-unattend-assoc"></a>

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

本主題說明如何自動將 Amazon Elastic Compute Cloud (Amazon EC2) 節點新增至 OpsWorks for Puppet Enterprise 伺服器。在[為 Puppet 主伺服器新增要管理的節點](opspup-addnodes.md)中，您學習到如何使用 `associate-node` 命令一次新增一個節點至您的 Puppet Enterprise 伺服器。本主題的程式碼示範如何使用無人執行的方法自動新增節點。建議新節點的全自動 （或自動） 關聯方法是設定 Amazon EC2 使用者資料。根據預設，OpsWorks for Puppet Enterprise 伺服器已[https://puppet.com/docs/pe/2019.8/installing_agents.html](https://puppet.com/docs/pe/2019.8/installing_agents.html)適用於 Ubuntu、Amazon Linux 和 RHEL 節點作業系統。

如需如何取消節點關聯的詳細資訊，請參閱本指南[取消節點與 Puppet Enterprise Server OpsWorks 的關聯](opspup-disassociate-node.md)中的 和 OpsWorks for Puppet Enterprise API 文件[https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DisassociateNode.html](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DisassociateNode.html)中的 。

## 步驟 1：建立 IAM 角色以用作您的執行個體描述檔
<a name="opspup-create-instance-profile"></a>

建立 AWS Identity and Access Management (IAM) 角色以用作您的 EC2 執行個體描述檔，並將下列政策連接至 IAM 角色。此政策可讓 `opsworks-cm` API 在節點註冊期間與 EC2 執行個體通訊。如需執行個體描述檔的詳細資訊，請參閱 Amazon EC2 文件中的[使用執行個體描述](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)檔。如需如何建立 IAM 角色的資訊，請參閱 [Amazon EC2 文件中的在主控台中建立 IAM 角色](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#create-iam-role-console)。 Amazon EC2 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "opsworks-cm:AssociateNode",
                "opsworks-cm:DescribeNodeAssociationStatus",
                "opsworks-cm:DescribeServers",
                "ec2:DescribeTags"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

## 步驟 2：使用自動關聯指令碼建立執行個體
<a name="opspup-unattend-script"></a>

若要建立 EC2 執行個體，您可以將[入門套件](opspup-starterkit.md)中包含的使用者資料指令碼複製到 EC2 執行個體指示、Amazon EC2 Auto Scaling 群組啟動組態或 CloudFormation 範本的 `userdata`區段。該指令碼僅支援執行 Ubuntu 和 Amazon Linux 作業系統的 EC2 執行個體。如需將指令碼新增至使用者資料的詳細資訊，請參閱 Amazon EC2 文件中的[啟動時在 Linux 執行個體上執行命令](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html)。建立新節點的最簡單方法是使用 [Amazon EC2 執行個體啟動精靈](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html)。本演練使用 中所述的 Apache Web 伺服器範例模組設定[OpsWorks for Puppet Enterprise 入門](gettingstarted-opspup.md)。

1. 入門套件中的使用者資料指令碼會執行 `opsworks-cm` API [https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_AssociateNode.html](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_AssociateNode.html) 命令，將新節點與您的 Puppet 主節點建立關聯。在此版本中，它也會為您在節點 AWS CLI 上安裝目前版本的 ，以防它尚未執行up-to-date版本。將此指令碼以 `userdata.sh` 的名稱儲存到方便的位置。

   根據預設，新註冊節點的名稱為執行個體 ID。

1. 遵循 EC2 文件中[啟動執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html)內的程序，並進行此處修改。在 EC2 執行個體啟動精靈中，選擇 Amazon Linux AMI。

1. 在 **Configure Instance Details (設定執行個體詳細資訊)** 頁面上，選取 **myPuppetinstanceprofile**，即您於[步驟 1：建立 IAM 角色以用作您的執行個體描述檔](#opspup-create-instance-profile)所建立的角色，做為您的 IAM 角色。

1. 在 **Advanced Details (進階詳細資訊)** 區域內，上傳您在步驟 1 建立的 `userdata.sh` 指令碼。

1. 您無須在 **Add Storage (新增儲存體)** 頁面上進行任何變更。前往 **Add Tags (新增標籤)**。

   透過將標籤套用至您的 EC2 執行個體，您可以自訂 `userdata.sh` 的行為。在此範例中，透過新增下列標籤將角色 `apache_webserver` 套用到您的節點：**pp\$1role**，其值為 **apache\$1webserver**。

   設定節點上 `pp_role` 的值會設定持續存放在節點代理程式憑證中的資料值，啟用節點的受信任分類。如需詳細資訊，請參閱 Puppet 平台文件中的 [Extension requests (permanent certificate data)](https://puppet.com/docs/puppet/5.1/ssl_attributes_extensions.html#extension-requests-permanent-certificate-data))。

1. 在**設定安全群組**頁面上，選擇**新增規則**，然後選擇在此範例中為 Apache Web 伺服器開啟連接埠 8080 的 **HTTP** 類型。

1. 選擇 **Review and Launch (檢閱及啟動)**，然後選擇 **Launch (啟動)**。當您的新節點啟動時，它會套用您在 中設定之範例模組的 Apache 組態[設定入門套件 Apache 範例](opspup-starterkit.md#opspup-post-launch-web-server)。

1. 當您開啟連結至新節點公有 DNS 的網頁時，您應該會看到由 Puppet 受管 Apache Web 伺服器託管的網站。