

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

# 為 Puppet 主伺服器新增要管理的節點
<a name="opspup-addnodes"></a>

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

**Topics**
+ [執行 `associateNode()` API 呼叫](#w2ab1b7c21c17c15)
+ [新增現場部署節點的考量](#w2ab1b7c21c17c17)
+ [詳細資訊](#w2ab1b7c21c17c19)

新增節點的建議方法是使用 OpsWorks `associateNode()` API。Puppet Enterprise 主伺服器託管一個儲存庫，可供您用來在要管理的節點上安裝 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 | 所有 [Puppet 支援](https://puppet.com/docs/pe/2019.8/supported_operating_systems.html#agent-platforms)之 Windows 版本的 64 位元版本 | 

您可以針對其他作業系統將 `puppet-agent` 新增至您的伺服器。請注意，系統維護將會刪除您在啟動之後已新增至伺服器的代理程式。雖然已在執行遭刪除代理程式的大多數現有連接節點會繼續簽入，但執行 Debian 作業系統的節點可能會停止報告。我們建議您`puppet-agent`在執行作業系統的節點上手動安裝 ，其中代理程式軟體未預先安裝在您的 OpsWorks for Puppet Enterprise 伺服器上。如需如何讓具有其他作業系統的節點可以在您伺服器上使用 `puppet-agent` 的詳細資訊，請參閱 Puppet Enterprise 文件中的 [Installing agents](https://puppet.com/docs/pe/2019.8/installing_agents.html)。

如需如何透過填入 EC2 執行個體使用者資料，自動將節點與您的 Puppet 主伺服器建立關聯的資訊，請參閱[在 OpsWorks for Puppet Enterprise 中自動新增節點](opspup-unattend-assoc.md)。

## 執行 `associateNode()` API 呼叫
<a name="w2ab1b7c21c17c15"></a>

透過安裝 新增節點之後`puppet-agent`，節點會將憑證簽署請求 CSRs) 傳送至 OpsWorks for Puppet Enterprise 伺服器。您可以在 Puppet 主控台中檢視 CSR；如需節點 CSR 的詳細資訊，請參閱 Puppet Enterprise 文件中的 [Managing certificate signing requests](https://puppet.com/docs/pe/2019.8/adding_and_removing_nodes.html#managing_CSRs)。執行 OpsWorks for 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 for Puppet Enterprise 中自動新增節點](opspup-unattend-assoc.md)。

## 新增現場部署節點的考量
<a name="w2ab1b7c21c17c17"></a>

在現場部署電腦或虛擬機器`puppet-agent`上安裝 之後，您可以使用兩種方式之一，將現場部署節點與 OpsWorks for Puppet Enterprise 主節點建立關聯。
+ 如果節點支援 [AWS 開發套件](https://aws.amazon.com/tools/)、[AWS CLI](https://aws.amazon.com/cli/) 或 [AWS Tools for PowerShell](https://aws.amazon.com/powershell/) 的安裝，您可以使用建議的方法來關聯節點，也就是執行 `associateNode()` API 呼叫。您第一次建立 OpsWorks for Puppet Enterprise 主節點時下載的入門套件，示範如何使用標籤將角色指派給節點。您可以透過在 CSR 中指定信任的事實，在建立節點與 Puppet 主伺服器關聯同時套用標籤。例如，入門套件隨附的示範控制儲存庫設定為使用標籤 `pp_role` 將角色指派給 Amazon EC2 執行個體。如需如何將標籤新增至 CSR 做為信任事實的詳細資訊，請參閱 Puppet 平台文件中的 [Extension requests (permanent certificate data)](https://puppet.com/docs/puppet/5.1/ssl_attributes_extensions.html#extension-requests-permanent-certificate-data))。
+ 如果節點無法執行 AWS 管理或開發工具，您仍然可以向 OpsWorks for Puppet Enterprise 主控端註冊它，就像向任何未受管 Puppet Enterprise 主控端註冊一樣。如本主題所述，安裝 `puppet-agent` 會將 CSR 傳送至 OpsWorks for Puppet Enterprise 主伺服器。獲得授權的 Puppet 使用者可以手動簽署 CSR，或透過編輯存放在 Puppet 主伺服器上的 `autosign.conf` 檔案來設定 CSR 的自動簽署。如需設定自動簽署和編輯 `autosign.conf` 的詳細資訊，請參閱 Puppet 平台文件中的 [SSL configuration: autosigning certificate requests](https://puppet.com/docs/puppet/5.3/ssl_autosign.html)。

若要將現場部署節點與一個 Puppet 主伺服器連結，允許 Puppet 主伺服器以接受所有 CSR，請在 Puppet Enterprise 主控台執行下列動作。控制此行為的參數為`puppet_enterprise::profile::master::allow_unauthenticated_ca`。

**重要**  
啟用 Puppet 主伺服器接受自簽 CSR，或不建議所有 CSRs 用於安全考量。根據預設，允許未經授權的 CSR 讓全世界都能使用 Puppet 主伺服器。設定上傳憑證要求須根據預設啟用，會讓您的 Puppet 主程式容易受到阻斷服務攻擊 (DoS)。

1. 登入 Puppet Enterprise 主控台

1. 選擇 **Configure (設定)**，選擇 **Classification (分類)**，選擇 **PE Master**，然後選擇 **Configuration (組態)** 標籤。

1. 在 **Classification (分類)** 標籤，找到 **puppet\$1enterprise::profile::master** 類別。

1. 將 **allow\$1unauthenticated\$1ca** 參數的值設為 **true**。

1. 儲存您的變更。您的變更會在下一次 Puppet run 期間套用。您可以允許變更在 30 分鐘內生效 (並新增現場部署節點)，或者您可以在 PE 主控台的 **Run (執行)** 區段手動初始化 Puppet run。

## 詳細資訊
<a name="w2ab1b7c21c17c19"></a>

請造訪 [Learn Puppet 教學課程網站](https://learn.puppet.com/)，進一步了解如何使用 OpsWorks for Puppet Enterprise 伺服器和 Puppet Enterprise 主控台功能。