

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

# 個別新增節點
<a name="opscm-addnodes-individually"></a>

**重要**  
AWS OpsWorks for Chef Automate 已於 2024 年 5 月 5 日終止服務，並已針對新客戶和現有客戶停用。我們建議現有客戶遷移至 Chef SaaS 或其他解決方案。如果您有任何問題，可以在 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

本節說明如何執行新增或*引導* EC2 執行個體的`knife`命令，以便 Chef 伺服器可以管理它。

與 AWS OpsWorks for Chef Automate 伺服器相關聯節點上的 `chef-client` 最低支援版本為 13.*x*。我們建議您執行最新且穩定的`chef-client`版本。

**Topics**
+ [(選用) 指定 Chef Automate 伺服器根 CA 的 URL](#opscm-addnodes-customdomain)
+ [支援的作業系統](#w2ab1b9c28c17c13c13)
+ [新增 Knife 節點](#w2ab1b9c28c17c13c15)

## (選用) 指定 Chef Automate 伺服器根 CA 的 URL
<a name="opscm-addnodes-customdomain"></a>

如果您的伺服器使用自訂網域和憑證，您可能需要使用公開 URL 來編輯 userdata 指令碼中的 `ROOT_CA_URL` 變數，以用於取得伺服器的根 CA PEM 格式憑證。下列 AWS CLI 命令會將根 CA 上傳至 Amazon S3 儲存貯體，並產生預先簽章的 URL，供您使用一小時。

1. 將根 CA PEM 格式的憑證上傳到 S3。

   ```
   aws s3 cp ROOT_CA_PEM_FILE_PATH s3://bucket_name/
   ```

1. 產生您可以使用一小時 (在此範例中為 3600 秒) 的預先簽章的 URL 以下載根 CA。

   ```
   aws s3 presign s3://bucket_name/ROOT_CA_PEM_FILE_NAME --expires-in 3600
   ```

1. 使用預先簽章的 URL 的值編輯 userdata 指令碼中的 `ROOT_CA_URL` 變數。

## 支援的作業系統
<a name="w2ab1b9c28c17c13c13"></a>

如需節點目前的支援作業系統清單，請參閱 [Chef 網站](https://docs.chef.io/platforms.html)。

## 新增 Knife 節點
<a name="w2ab1b9c28c17c13c15"></a>

此[https://github.com/chef/knife-ec2](https://github.com/chef/knife-ec2)外掛程式包含在 Chef Workstation 中。如果您比較熟悉 `knife-ec2`，則可以使用它來取代 `knife bootstrap`，以便佈建及引導新的 EC2 執行個體。否則，啟動新的 EC2 執行個體，然後依照本節中的步驟進行。

**新增要管理的節點**

1. 執行下列 `knife bootstrap` 命令。此命令會將 EC2 執行個體引導至您 Chef 伺服器將管理的節點。請注意，您會指示 Chef 伺服器執行 [使用 Policyfile.rb 取得遠端來源的技術指南](opscm-starterkit.md#install-cookbooks-policyfile) 中所安裝 `nginx` 技術指南的配方。如需執行 `knife bootstrap` 命令新增節點的詳細資訊，請參閱 Chef 文件中的 [Bootstrap a Node](https://docs.chef.io/install_bootstrap.html)。

   下表顯示此步驟之 `knife` 命令中節點作業系統的有效使用者名稱。如果 `root` 和 `ec2-user` 都無法運作，請聯絡您的 AMI 供應商。如需連線至 Linux 執行個體的詳細資訊，請參閱 AWS 文件中的[使用 SSH 連線至您的 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html)。  
**節點作業系統中使用者名稱的有效值**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/opscm-addnodes-individually.html)

   ```
   knife bootstrap INSTANCE_IP_ADDRESS -N INSTANCE_NAME -x USER_NAME --sudo --run-list "recipe[nginx]"
   ```

1. 執行下列命令，並以您剛新增的執行個體名稱取代 *INSTANCE\$1NAME*，確認已新增節點。

   ```
   knife client show INSTANCE_NAME
   knife node show INSTANCE_NAME
   ```