

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 AWS OpsWorks for Chef Automate 服务器升级到 Chef Automate 2
<a name="opscm-a2upgrade"></a>

**重要**  
AWS OpsWorks for Chef Automate 已于 2024 年 5 月 5 日停用，新客户和现有客户均已禁用。我们建议现有客户迁移到 Chef SaaS 或其他替代解决方案。如果您有任何疑问，可以通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 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 时使用的亚马逊 EC2 实例。创建一个新实例来运行 Chef Automate 2 服务器。

## 升级到 Chef Automate 2（控制台）
<a name="opscm-a2upgrade-console"></a>

1. 登录 AWS 管理控制台 并打开 OpsWorks 控制台，网址为[https://console.aws.amazon.com/opsworks/](https://console.aws.amazon.com/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` 引擎属性，如此命令中所示。如果目标服务器不在您的默认 Amazon Web Services Region 中，请添加 `--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`。如果您的服务器位于与默认 Amazon Web Services Region 不同的 Amazon Web Services Region 中，请添加 `--region` 参数。

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

   Backup IDs 的格式为*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)
+ [从 Backup 中恢复 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)