

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

# 將 AWS OpsWorks for Chef Automate 伺服器升級至 Chef Automate 2
<a name="opscm-a2upgrade"></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 支援 團隊。

## 升級至 Chef Automate 2 的先決條件
<a name="opscm-a2upgrade-prereqs"></a>

在開始之前，請務必了解 Chef Automate 2 新增的新功能以及 Chef Automate 2 不支援的功能。如需 Chef Automate 2 中新功能和不支援功能的相關資訊，請參閱 Chef 網站上的 [Chef Automate 2 文件](https://automate.chef.io/docs/upgrade/#considerations)。

執行 Chef Automate 1 的伺服器必須在 2019 年 11 月 1 日之後至少有一次成功的維護執行，才符合升級資格。

如同 AWS OpsWorks for Chef Automate 伺服器上的任何維護操作，伺服器會在升級期間離線。在升級程序期間，您應該規劃最多三個小時的停機時間。

您需要此伺服器的登入資料以用於 Chef Automate 儀表板網站。升級完成後，您應該登入到 Chef Automate 儀表板，並確認您的節點和組態資訊沒有變更。

**重要**  
當您準備好將 AWS OpsWorks for Chef Automate 伺服器升級至 Chef Automate 2 時，請只使用此處的指示進行升級。由於 會 AWS OpsWorks for Chef Automate 自動化許多升級程序，例如建立備份，因此請勿遵循 Chef 網站上的升級指示。

## 關於升級程序
<a name="opscm-a2upgrade-whathappens"></a>

在升級程序期間，您的伺服器會在開始升級之前和完成升級之後進行備份。會建立下列備份：
+ 仍在執行 Chef Automate 1 (版本 12.17.33) 之伺服器的備份。
+ 升級完成後的伺服器備份，此伺服器執行 Chef Automate 2 (版本 2019-08)。

升級程序會在執行 Chef Automate 1 時終止伺服器正在使用的 Amazon EC2 執行個體。並建立一個新的執行個體來執行 Chef Automate 2 伺服器。

## 升級至 Chef Automate 2 (主控台)
<a name="opscm-a2upgrade-console"></a>

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/opsworks/](https://console.aws.amazon.com/opsworks/) 開啟 OpsWorks 主控台。

1. 在左側導覽窗格中，選擇 **AWS OpsWorks for Chef Automate**。

1. 選擇伺服器以檢視其屬性頁面。頁面頂端的藍色橫幅應該會指出伺服器是否符合升級至 Chef Automate 2 的資格。
**注意**  
執行 Chef Automate 1 的伺服器必須在 2019 年 11 月 1 日之後至少有一次成功的維護執行，才符合升級資格。

1. 如果伺服器符合升級資格，請選擇 **Start upgrade (開始升級)**。

1. 升級最多需要三個小時。在升級程序期間，屬性頁面會將伺服器狀態顯示為 **Under maintenance (維護中)**。

1. 升級完成時，屬性頁面會顯示下列兩則訊息：**Successfully upgraded to Automate 2 (成功升級至 Automate 2)**、**Maintenance completed successfully (維護成功完成)**。伺服器狀態應為 **HEALTHY (狀態良好)**。

1. 使用您現有的登入資料登入 Chef Automate 儀表板，並確認您的節點是否正確回報。

## 升級至 Chef Automate 2 (CLI)
<a name="opscm-a2upgrade-cli"></a>

1. （選用） 如果您不確定哪些 AWS OpsWorks for Chef Automate 伺服器符合升級資格，請執行下列命令。如果您想要列出與預設 AWS 區域不同的 AWS 區域中的 AWS OpsWorks for Chef Automate 伺服器，請務必新增 `--region` 參數。

   ```
   aws opsworks-cm describe-servers
   ```

   在結果中，尋找屬性 `CHEF_MAJOR_UPGRADE_AVAILABLE` 是否有 `true` 的值。這表示該伺服器符合升級至 Chef Automate 2 的資格。請記下符合升級資格的 AWS OpsWorks for Chef Automate 伺服器名稱。

1. 執行下列命令，將 *server\$1name* 取代為 AWS OpsWorks for Chef Automate 伺服器的名稱。若要升級至 Chef Automate 2 而不是執行例行系統維護，請加上 `CHEF_MAJOR_UPGRADE` 引擎屬性，如命令所示。如果目標伺服器不在您的預設 AWS 區域中，請加上`--region` 參數。每個命令只能升級一部伺服器。

   ```
   aws opsworks-cm start-maintenance --server-name server_name --engine-attributes Name=CHEF_MAJOR_UPGRADE,Value=true --region region
   ```

   如果 因任何原因 AWS OpsWorks for Chef Automate 無法升級伺服器，此命令會導致驗證例外狀況。

1. 升級最多需要三個小時。您可以執行下列命令來定期檢查升級狀態。

   ```
   aws opsworks-cm describe-servers --server-name server_name
   ```

   在結果中，尋找 `Status` 值。`Status` 為 `UNDER_MAINTENANCE` 表示升級仍在進行中。成功升級會傳回類似下列的訊息。

   ```
   2019/10/24 00:27:56 UTC           Successfully upgraded to Automate 2.
   2019/10/23 23:50:38 UTC           Upgrading Chef server from Automate 1 to Automate 2
   ```

   如果升級失敗， AWS OpsWorks for Chef Automate 會自動將您的伺服器復原至 Chef Automate 1。

   如果升級成功，但伺服器無法如同升級之前那樣運作 (例如，假設受管節點無法回報)，您可手動復原伺服器。如需手動復原資訊，請參閱[將 AWS OpsWorks for Chef Automate 伺服器復原至 Chef Automate 1 (CLI)](#opscm-a2upgrade-rollback-cli)。

## 將 AWS OpsWorks for Chef Automate 伺服器復原至 Chef Automate 1 (CLI)
<a name="opscm-a2upgrade-rollback-cli"></a>

如果升級程序失敗， AWS OpsWorks for Chef Automate 會自動將您的伺服器復原至 Chef Automate 1。如果升級成功，但伺服器的運作與升級之前不同，您可以使用 手動將 AWS OpsWorks for Chef Automate 伺服器轉返到 Chef Automate 1 AWS CLI。

1. 執行下列命令，顯示在您嘗試升級之前，在伺服器上執行之最後一次備份的 `BackupId`。如果您的伺服器位於與預設 AWS 區域不同的 AWS 區域，請加上 `--region` 參數。

   ```
   aws opsworks-cm describe-backups server_name
   ```

   備份 ID 的格式為 *ServerName-yyyyMMddHHmmssSSS*。在結果中尋找以下 Chef Automate 1 屬性。

   ```
   "Engine": "Chef"
   "EngineVersion": "12.17.33"
   ```

1. 執行下列命令，使用您在步驟 1 中傳回的備份 ID 作為 `--backup-id` 值。

   ```
   aws opsworks-cm restore-server --server-name server_name --backup-id ServerName-yyyyMMddHHmmssSSS
   ```

   視您儲存在伺服器上的資料量而定，還原伺服器需要 20 分鐘到 3 小時的時間。在還原作業期間，您的伺服器的狀態為 `RESTORING`。此狀態會顯示在 中的伺服器屬性頁面上 AWS 管理主控台，並在 **describe-servers** 命令的結果中傳回。

1. 還原完成後，主控台會顯示 **Restore completed successfully (還原成功完成)** 訊息。您的 AWS OpsWorks for Chef Automate 伺服器已上線，且與您開始升級程序之前相同。

## 另請參閱
<a name="opscm-a2upgrade-seealso"></a>
+ [中的系統維護 AWS OpsWorks for Chef Automate](opscm-maintenance.md)
+ [從備份還原 AWS OpsWorks for Chef Automate 伺服器](opscm-chef-restore.md)
+ *OpsWorks API 參考*中的 [https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DescribeServers.html](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DescribeServers.html)
+ *OpsWorks API 參考*中的 [https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_StartMaintenance.html](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_StartMaintenance.html)