

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

# OpsWorks 堆栈操作系统
<a name="workinginstances-os"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

OpsWorks Stacks 支持多种内置操作系统的 64 位版本，包括亚马逊和 Ubuntu Linux 发行版以及微软 Windows 服务器。一些常规说明：
+ 堆栈的实例可以运行 Linux 或 Windows。

  堆栈可以在不同的实例上拥有不同的 Linux 版本或发行版，但您不能将 Linux 和 Windows 实例混合使用。
+ 您可以使用[自定义 AMIs](workinginstances-custom-ami.md)（Amazon 系统映像），但它们必须基于本节主题中描述的 OpsWorks 堆栈支持的 AMIs 其中一个。虽然有可能在其他操作系统（例如CentOS 6）上创建或注册实例。 *x*) 由自定义或社区生成的 AMIs，官方不支持这些内容。
  + [Linux 操作系统：](workinginstances-os-linux.md)
  + [Microsoft Windows Server](workinginstances-os-windows.md)
+ 您可以[手动启动和停止](workinginstances-starting.md)实例，或让 OpsWorks Stacks [自动扩展](workinginstances-autoscaling.md)实例的数量。

  您可以对任何堆栈使用基于时间的自动扩展功能；Linux 堆栈还可以使用基于负载的扩展。
+ 除了使用 OpsWorks 堆栈创建 Amazon EC2 实例外，您还可以使用在堆栈之外创建的 [Linux 堆栈注册实例](workinginstances-autoscaling.md)。 OpsWorks 

  这包括 Amazon EC2 实例和在您自己的硬件上运行的实例。但是，它们必须正在运行受支持的 Linux 发行版之一。您无法注册亚马逊 EC2 或本地 Windows 实例。

你可以运行 OpsWorks Stacks [https://docs.aws.amazon.com/opsworks/latest/APIReference/API_DescribeOperatingSystems.html](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_DescribeOperatingSystems.html)API 来返回支持的操作系统及其支持的 Chef 版本的列表。以下是使用 AWS CLI的命令的示例。

```
aws opsworks describe-operating-systems
```

以下为响应示例。

```
{
    "OperatingSystems": [
        {
            "Name": "Amazon Linux",
            "Id": "Amazon Linux",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "11.10"
                },
                {
                    "Name": "Chef",
                    "Version": "11.4"
                },
                {
                    "Name": "Chef",
                    "Version": "0.9"
                }
            ],
            "ReportedName": "amazon",
            "ReportedVersion": "2014.03",
            "Supported": false
        },
        {
            "Name": "Amazon Linux 2",
            "Id": "Amazon Linux 2",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                }
            ],
            "ReportedName": "amazon",
            "ReportedVersion": "2"
        },
        {
            "Name": "Amazon Linux 2014.09",
            "Id": "Amazon Linux 2014.09",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "11.10"
                },
                {
                    "Name": "Chef",
                    "Version": "11.4"
                },
                {
                    "Name": "Chef",
                    "Version": "0.9"
                }
            ],
            "ReportedName": "amazon",
            "ReportedVersion": "2014.09",
            "Supported": false
        },
        {
            "Name": "Amazon Linux 2015.03",
            "Id": "Amazon Linux 2015.03",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                },
                {
                    "Name": "Chef",
                    "Version": "11.10"
                },
                {
                    "Name": "Chef",
                    "Version": "11.4"
                },
                {
                    "Name": "Chef",
                    "Version": "0.9"
                }
            ],
            "ReportedName": "amazon",
            "ReportedVersion": "2015.03",
            "Supported": false
        },
        {
            "Name": "Amazon Linux 2015.09",
            "Id": "Amazon Linux 2015.09",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                },
                {
                    "Name": "Chef",
                    "Version": "11.10"
                },
                {
                    "Name": "Chef",
                    "Version": "11.4"
                },
                {
                    "Name": "Chef",
                    "Version": "0.9"
                }
            ],
            "ReportedName": "amazon",
            "ReportedVersion": "2015.09",
            "Supported": false
        },
        {
            "Name": "Amazon Linux 2016.03",
            "Id": "Amazon Linux 2016.03",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                },
                {
                    "Name": "Chef",
                    "Version": "11.10"
                },
                {
                    "Name": "Chef",
                    "Version": "11.4"
                },
                {
                    "Name": "Chef",
                    "Version": "0.9"
                }
            ],
            "ReportedName": "amazon",
            "ReportedVersion": "2016.03"
        },
        {
            "Name": "Amazon Linux 2016.09",
            "Id": "Amazon Linux 2016.09",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                },
                {
                    "Name": "Chef",
                    "Version": "11.10"
                },
                {
                    "Name": "Chef",
                    "Version": "11.4"
                },
                {
                    "Name": "Chef",
                    "Version": "0.9"
                }
            ],
            "ReportedName": "amazon",
            "ReportedVersion": "2016.09"
        },
        {
            "Name": "Amazon Linux 2017.03",
            "Id": "Amazon Linux 2017.03",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                },
                {
                    "Name": "Chef",
                    "Version": "11.10"
                },
                {
                    "Name": "Chef",
                    "Version": "11.4"
                },
                {
                    "Name": "Chef",
                    "Version": "0.9"
                }
            ],
            "ReportedName": "amazon",
            "ReportedVersion": "2017.03"
        },
        {
            "Name": "Amazon Linux 2017.09",
            "Id": "Amazon Linux 2017.09",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                },
                {
                    "Name": "Chef",
                    "Version": "11.10"
                },
                {
                    "Name": "Chef",
                    "Version": "11.4"
                },
                {
                    "Name": "Chef",
                    "Version": "0.9"
                }
            ],
            "ReportedName": "amazon",
            "ReportedVersion": "2017.09"
        },
        {
            "Name": "Amazon Linux 2018.03",
            "Id": "Amazon Linux 2018.03",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                },
                {
                    "Name": "Chef",
                    "Version": "11.10"
                }
            ],
            "ReportedName": "amazon",
            "ReportedVersion": "2018.03"
        },
        {
            "Name": "CentOS Linux 7",
            "Id": "CentOS Linux 7",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                }
            ],
            "ReportedName": "CentOS Linux",
            "ReportedVersion": "7"
        },
        {
            "Name": "Microsoft Windows Server 2012 R2 Base",
            "Id": "Microsoft Windows Server 2012 R2 Base",
            "Type": "Windows",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12.2"
                }
            ],
            "ReportedName": "microsoft windows server",
            "ReportedVersion": "2012 r2 standard",
            "Supported": false
        },
        {
            "Name": "Microsoft Windows Server 2012 R2 with SQL Server Express",
            "Id": "Microsoft Windows Server 2012 R2 with SQL Server Express",
            "Type": "Windows",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12.2"
                }
            ],
            "ReportedName": "microsoft windows server",
            "ReportedVersion": "2012 r2 standard",
            "Supported": false
        },
        {
            "Name": "Microsoft Windows Server 2012 R2 with SQL Server Standard",
            "Id": "Microsoft Windows Server 2012 R2 with SQL Server Standard",
            "Type": "Windows",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12.2"
                }
            ],
            "ReportedName": "microsoft windows server",
            "ReportedVersion": "2012 r2 standard",
            "Supported": false
        },
        {
            "Name": "Microsoft Windows Server 2012 R2 with SQL Server Web",
            "Id": "Microsoft Windows Server 2012 R2 with SQL Server Web",
            "Type": "Windows",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12.2"
                }
            ],
            "ReportedName": "microsoft windows server",
            "ReportedVersion": "2012 r2 standard",
            "Supported": false
        },
        {
            "Name": "Microsoft Windows Server 2019 Base",
            "Id": "Microsoft Windows Server 2019 Base",
            "Type": "Windows",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12.2"
                }
            ],
            "ReportedName": "microsoft windows server",
            "ReportedVersion": "2019 datacenter"
        },
        {
            "Name": "Microsoft Windows Server 2019 with SQL Server Express",
            "Id": "Microsoft Windows Server 2019 with SQL Server Express",
            "Type": "Windows",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12.2"
                }
            ],
            "ReportedName": "microsoft windows server",
            "ReportedVersion": "2019 datacenter"
        },
        {
            "Name": "Microsoft Windows Server 2019 with SQL Server Standard",
            "Id": "Microsoft Windows Server 2019 with SQL Server Standard",
            "Type": "Windows",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12.2"
                }
            ],
            "ReportedName": "microsoft windows server",
            "ReportedVersion": "2019 datacenter"
        },
        {
            "Name": "Microsoft Windows Server 2019 with SQL Server Web",
            "Id": "Microsoft Windows Server 2019 with SQL Server Web",
            "Type": "Windows",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12.2"
                }
            ],
            "ReportedName": "microsoft windows server",
            "ReportedVersion": "2019 datacenter"
        },
        {
            "Name": "Microsoft Windows Server 2022 Base",
            "Id": "Microsoft Windows Server 2022 Base",
            "Type": "Windows",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12.2"
                }
            ],
            "ReportedName": "microsoft windows server",
            "ReportedVersion": "2022 datacenter"
        },
        {
            "Name": "Microsoft Windows Server 2022 with SQL Server Express",
            "Id": "Microsoft Windows Server 2022 with SQL Server Express",
            "Type": "Windows",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12.2"
                }
            ],
            "ReportedName": "microsoft windows server",
            "ReportedVersion": "2022 datacenter"
        },
        {
            "Name": "Microsoft Windows Server 2022 with SQL Server Standard",
            "Id": "Microsoft Windows Server 2022 with SQL Server Standard",
            "Type": "Windows",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12.2"
                }
            ],
            "ReportedName": "microsoft windows server",
            "ReportedVersion": "2022 datacenter"
        },
        {
            "Name": "Microsoft Windows Server 2022 with SQL Server Web",
            "Id": "Microsoft Windows Server 2022 with SQL Server Web",
            "Type": "Windows",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12.2"
                }
            ],
            "ReportedName": "microsoft windows server",
            "ReportedVersion": "2022 datacenter"
        },
        {
            "Name": "Red Hat Enterprise Linux 7",
            "Id": "Red Hat Enterprise Linux 7",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                },
                {
                    "Name": "Chef",
                    "Version": "11.10"
                }
            ],
            "ReportedName": "Red Hat Enterprise Linux",
            "ReportedVersion": "7"
        },
        {
            "Name": "Ubuntu 12.04 LTS",
            "Id": "Ubuntu 12.04 LTS",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                },
                {
                    "Name": "Chef",
                    "Version": "11.10"
                },
                {
                    "Name": "Chef",
                    "Version": "11.4"
                },
                {
                    "Name": "Chef",
                    "Version": "0.9"
                }
            ],
            "ReportedName": "ubuntu",
            "ReportedVersion": "12.04",
            "Supported": false
        },
        {
            "Name": "Ubuntu 14.04 LTS",
            "Id": "Ubuntu 14.04 LTS",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                },
                {
                    "Name": "Chef",
                    "Version": "11.10"
                }
            ],
            "ReportedName": "ubuntu",
            "ReportedVersion": "14.04"
        },
        {
            "Name": "Ubuntu 16.04 LTS",
            "Id": "Ubuntu 16.04 LTS",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                }
            ],
            "ReportedName": "ubuntu",
            "ReportedVersion": "16.04"
        },
        {
            "Name": "Ubuntu 18.04 LTS",
            "Id": "Ubuntu 18.04 LTS",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                }
            ],
            "ReportedName": "ubuntu",
            "ReportedVersion": "18.04"
        },
        {
            "Name": "Ubuntu 20.04 LTS",
            "Id": "Ubuntu 20.04 LTS",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                }
            ],
            "ReportedName": "ubuntu",
            "ReportedVersion": "20.04"
        },
        {
            "Name": "Custom",
            "Id": "Custom",
            "Type": "Linux",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12"
                },
                {
                    "Name": "Chef",
                    "Version": "11.10"
                },
                {
                    "Name": "Chef",
                    "Version": "11.4"
                },
                {
                    "Name": "Chef",
                    "Version": "0.9"
                }
            ]
        },
        {
            "Name": "CustomWindows",
            "Id": "CustomWindows",
            "Type": "Windows",
            "ConfigurationManagers": [
                {
                    "Name": "Chef",
                    "Version": "12.2"
                }
            ]
        }
    ]
}
```

**Topics**
+ [Linux 操作系统：](workinginstances-os-linux.md)
+ [Microsoft Windows Server](workinginstances-os-windows.md)

# Linux 操作系统：
<a name="workinginstances-os-linux"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

OpsWorks Stacks 支持以下 Linux 操作系统的 64 位版本。
+ [Amazon Linux](https://aws.amazon.com/amazon-linux-ami/faqs/)和 [Amazon Linux 2](https://aws.amazon.com/amazon-linux-2/)（请参阅 [OpsWorks Stacks 控制台](https://console.aws.amazon.com/opsworks/)以了解当前支持的版本）
+  [Ubuntu 20.04 LTS](https://wiki.ubuntu.com/FocalFossa/ReleaseNotes) 
+ [CentOS 7](https://docs.centos.org/en-US/centos/install-guide/Revision_History/)
+ [Red Hat Enterprise Linux 7](https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/)

您也可以 AMIs根据这些操作系统使用[自定义](workinginstances-custom-ami.md)。

关于 Linux 实例的一些常规说明：

**支持的包版本**  
支持的版本和包的补丁级别 (如 Ruby) 取决于操作系统和版本，如后面的部分中所述。

**更新**  
默认情况下， OpsWorks Stacks 通过自动调用`yum update`或在实例启动`apt-get update`后自动调用来确保 Linux 实例安装最新的安全补丁。要禁用自动更新，请使用[CreateInstance](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateInstance.html)、[UpdateInstance[CreateLayer](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateLayer.html)](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_UpdateInstance.html)、或[UpdateLayer](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_UpdateLayer.html)操作（或等效的 AW [S 开发工具包](https://aws.amazon.com/tools/)方法或 AWS [CLI](https://aws.amazon.com/documentation/cli/) 命令）将`InstallUpdatesOnBoot`参数设置为。`false`  
为避免服务中断， OpsWorks Stacks 不会在实例联机后自动安装更新。您可以通过运行 [Upgrade Operating System 堆栈命令](workingstacks-commands.md)，随时手动更新联机实例的操作系统。有关如何管理安全更新的更多信息，请参阅[管理安全更新](workingsecurity-updates.md)。  
要更好地控制 OpsWorks Stacks 如何更新您的实例，请基于支持的操作系统之一创建自定义 AMI。例如，使用自定义， AMIs 您可以指定实例上安装了哪些软件包版本。每个 Linux 发行版都具有不同的支持时间表和程序包合并策略，因此，您应当考虑哪种方法最适合您的要求。有关更多信息，请参阅 [使用自定义 AMIs](workinginstances-custom-ami.md)。

**主机文件**  
每个在线实例都有一个将 IP 地址映射到主机名的`/etc/hosts`文件。 OpsWorks 堆栈包含每个实例`hosts`文件中所有堆栈在线实例的公用地址和私有地址。例如，假设您有一个堆栈，该堆栈拥有两个 Node.js 应用程序服务器实例（nodejs-app1 和 nodejs-app2）以及一个 MySQL 实例 (db-master1)。nodejs-app1 实例的 `hosts` 文件将如以下示例所示，其他实例将拥有相似的 `hosts` 文件。  

```
...
# OpsWorks Layer State
192.0.2.0 nodejs-app1.localdomain nodejs-app1
10.145.160.232 db-master1
198.51.100.0 db-master1-ext
10.243.77.78 nodejs-app2
203.0.113.0 nodejs-app2-ext
10.84.66.6 nodejs-app1
192.0.2.0 nodejs-app1-ext
```

**OpsWorks 堆栈代理代理支持**  
Chef 11.10 及更高版本 OpsWorks 堆栈的堆栈代理包括对代理服务器的基本支持，这些服务器通常与隔离服务器一起使用。 VPCs要启用代理服务器支持，实例必须拥有为 HTTP 和 HTTPS 流量提供适当设置的 `/etc/environment` 文件。该文件应当如下所示，其中，您可以将突出显示的文本替换为您的代理服务器的 URL 和端口：  

```
http_proxy="http://myproxy.example.com:8080/"
https_proxy="http://myproxy.example.com:8080/"
no_proxy="169.254.169.254"
```
要启用代理支持，我们建议创建[自定义 AMI ](workinginstances-custom-ami.md) (其中包括一个合适的 `/etc/environment` 文件)，然后使用该 AMI 创建您的实例。  
我们不建议使用自定义配方在您的实例上创建`/etc/environment`文件。 OpsWorks Stacks 需要在设置过程的早期，也就是任何自定义配方执行之前的代理服务器数据。

**Topics**
+ [Amazon Linux](#workinginstances-os-amazon)
+ [Ubuntu LTS](#workinginstances-os-linux-ubuntu)
+ [CentOS](#workinginstances-os-linux-centos)
+ [Red Hat Enterprise Linux](#workinginstances-os-linux-rhel)

## Amazon Linux
<a name="workinginstances-os-amazon"></a>

OpsWorks Stacks 支持 64 位版本的亚马逊 Linux 和亚马逊 Linux 2。除了定期更新和补丁外，Amazon Linux 大约每六个月还会发布新版本，新版本中可能涉及重大更改。当您创建堆栈或新的实例时，您必须指定要使用哪一个 Amazon Linux 版本。当 AWS 发布新版本后，您的实例将继续运行指定的版本，直到您明确更改该版本。新 Amazon Linux 版本发布后，有为期四周的迁移周期，在此周期内，AWS 将继续提供针对旧版本的定期更新。迁移周期结束后，您的实例仍可以继续运行旧版本，但 AWS 不再提供更新。有关更多信息，请参阅 [Amazon Linux AMI FAQs](https://aws.amazon.com/amazon-linux-ami/faqs/#lock)。

当新的 Amazon Linux 版本发布后，我们建议您在迁移周期内更新到新版本，以便您的实例继续获得安全更新。更新您的生产堆栈的实例之前，我们建议您启动一个新的实例，并验证您的应用程序可以在新版本上正常运行。然后，您可以更新生产堆栈实例。

**注意**  
默认情况下， AMIs 基于 Amazon Linux 的自定义版本在新版本发布时会自动更新到新版本。建议的做法是：将您的自定义 AMI 保持在特定的 Amazon Linux 版本，这样，您就可以推迟更新，直到您测试了新版本。有关更多信息，请参阅[如何将我的 AMI 保持在特定版本？](https://aws.amazon.com/amazon-linux-ami/faqs/#lock)  
如果您使用 CloudFormation 模板创建包含运行 Amazon Linux 的实例的堆栈，则模板应明确指定亚马逊 Linux 版本。具体而言，如果您的模板指定 `Amazon Linux`，则实例将继续运行版本 2016.09。有关更多信息，请参阅[AWS::OpsWorks::Stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html)和[AWS::OpsWorks::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html)。

要更新实例的 Amazon Linux 版本，请执行以下操作之一：
+ 对于联机实例，运行 [**Upgrade Operating System** 堆栈命令](workingstacks-commands.md)。

  当有新的 Amazon Linux 版本可用时，**Instances** 和 **Stack** 页面将显示一个通知，其中包含一个可让您转到 **Run Command** 页面的链接。然后，您可以运行 **Upgrade Operating System** 升级您的实例。
+ 对于由 Amazon Elastic Block Store 支持（由 EBS 支持）的脱机实例，启动实例并运行**升级操作系统**，如前面的说明所述。
+ 对于由实例存储支持的脱机实例 (包括基于时间和基于负载的实例)，[编辑实例的 **Operating system** 设置](workinginstances-properties.md)以指定新版本。

  OpsWorks 堆栈在实例重启时会自动将其更新到新版本。


**Amazon Linux：受支持的 Node.js 版本**  

| Amazon Linux 版本 | Node.js 版本 | 
| --- | --- | 
|  <pre>2</pre>  |  <pre>(Not applicable to operating systems that are available for Chef 12 and higher stacks only)</pre>  | 
|  <pre>2018.03</pre>  |  <pre>0.12.18</pre>  | 
|  <pre>2017.09</pre>  |  <pre>0.12.18</pre>  | 
|  <pre>2017.03</pre>  |  <pre>0.12.18</pre>  | 
|  <pre>2016.09</pre>  |  <pre>0.12.18<br />0.12.17<br />0.12.16<br />0.12.15</pre>  | 
|  <pre>2016.03</pre>  |  <pre>0.12.18<br />0.12.17<br />0.12.16<br />0.12.15<br />0.12.14<br />0.12.13<br />0.12.12<br />0.12.10</pre>  | 


**Amazon Linux：受支持的 Chef 版本**  

| Chef 版本 | 受支持的 Amazon Linux 版本 | 
| --- | --- | 
|  <pre>12</pre>  |  <pre>Amazon Linux 2<br />Amazon Linux 2018.03<br />Amazon Linux 2017.09<br />Amazon Linux 2017.03<br />Amazon Linux 2016.09<br />Amazon Linux 2016.03</pre>  | 
|  <pre>11.10</pre>  |  <pre>Amazon Linux 2018.03<br />Amazon Linux 2017.09<br />Amazon Linux 2017.03<br />Amazon Linux 2016.09<br />Amazon Linux 2016.03</pre>  | 
|  <pre>11.4 (deprecated)</pre>  |  <pre>Amazon Linux 2016.09<br />Amazon Linux 2016.03</pre>  | 

**重要**  
更新 t1.micro 实例之前，请确保它们拥有临时交换文件 `/var/swapfile`。Chef 0.9 堆栈上的 t1.micro 实例没有交换文件。对于 Chef 11.4 和 Chef 11.10 堆栈，新版本的实例代理会自动为 t1.micro 实例创建交换文件。但是，此更改在几周之后引入，因此，您应当检查大约在 2014 年 3 月 24 日之前创建的实例上是否存在 `/var/swapfile`。  
对于缺少交换文件的 t1.micro 实例，您可以根据以下方法创建一个交换文件：  
对于 Chef 11.10 及更高版本的堆栈，创建新的 t1.micro 实例，这些实例自动拥有一个交换文件。
对于 Chef 0.9 堆栈，以根用户的身份对每个实例运行以下命令。  

  ```
  dd if=/dev/zero of=/var/swapfile bs=1M count=256
   mkswap /var/swapfile
   chown root:root /var/swapfile
   chmod 0600 /var/swapfile
   swapon /var/swapfile
  ```
如果您不希望创建新实例，还可以在 Chef 11.10 和更高版本上使用这些命令。

## Ubuntu LTS
<a name="workinginstances-os-linux-ubuntu"></a>

Ubuntu 大约每两年发布一次新的 Ubuntu LTS 版本，并为每个版本提供大约五年的支持。Ubuntu 在整个操作系统支持期间提供安全补丁和更新。有关更多信息，请参阅 [LTS - Ubuntu Wiki](https://wiki.ubuntu.com/LTS)。
+ 您不能将现有 Ubuntu 实例更新到更新版本的 Ubuntu。

  您必须[创建新的 Ubuntu 实例](workinginstances-add.md)，并[删除原来的实例](workinginstances-delete.md)。
+ 对于 Chef 12 及更高版本的堆栈，仅支持 Ubuntu 20.04 LTS。

## CentOS
<a name="workinginstances-os-linux-centos"></a>

OpsWorks [Stacks 支持 64 位版本的 CentOS 7。](https://docs.centos.org/en-US/docs/)最开始受支持的版本是 CentOS 7，CentOS 大约每两年发布一次新版本。

当你在 CentOS 堆栈中启动一个新实例时， OpsWorks Stacks 会自动安装最新的 CentOS 版本。由于在新的 CentOS 次要版本发布时， OpsWorks Stacks 不会自动更新现有实例上的操作系统，因此新创建的实例可能会比堆栈的现有实例获得更新的版本。要使版本在您的堆栈中保持一致，您可以按照以下方法将您的现有实例更新到当前的 CentOS 版本：
+ 对于联机实例，运行 [**Upgrade Operating System** 堆栈命令](workingstacks-commands.md)，该命令将对指定实例运行 `yum update` 以将其更新到当前版本。

  当有新的 CentOS 7 次要版本可用时，**Instances** 和 **Stack** 页面将显示一个通知，其中包含一个可让您转到 **Run Command** 页面的链接。然后，您可以运行 **Upgrade Operating System** 升级您的实例。
+ 对于由 Amazon EBS 支持的脱机实例，启动实例并运行**升级操作系统**，如上一列表项中所述。
+ 对于离线实例存储支持的实例， OpsWorks Stacks 会在实例重启时自动安装新版本。


**CentOS：受支持的 Chef 版本**  

| Chef 版本 | 受支持的 CentOS 版本 | 
| --- | --- | 
|  <pre>12</pre>  |  <pre>CentOS 7</pre>  | 
|  <pre>11.10</pre>  |  <pre>(None supported)</pre>  | 
|  <pre>11.4 (deprecated)</pre>  |  <pre>(None supported)</pre>  | 

**注意**  
OpsWorks Stacks 支持 CentOS 实例的 Apache 2.4。

## Red Hat Enterprise Linux
<a name="workinginstances-os-linux-rhel"></a>

OpsWorks Stacks 支持 64 位版本的[红帽企业 Linux 7 (RHEL 7](https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/))。最初支持的版本是 RHEL 7.1，Red Hat 大约每 9 个月发布一次新的次要版本。次要版本应当与 RHEL 7.0 兼容。有关更多信息，请参阅[生命周期和更新策略](https://access.redhat.com/support/policy/update_policies)。

当您启动新实例时， OpsWorks Stacks 会自动安装当前的 RHEL 7 版本。由于在发布新的 RHEL 7 次要版本时， OpsWorks Stacks 不会自动更新现有实例上的操作系统，因此新创建的实例可能会收到比堆栈现有实例更新的版本。要使版本在您的堆栈中保持一致，您可以按照以下方法将您的现有实例更新到当前的 RHEL 7 版本：
+ 对于联机实例，运行 [**Upgrade Operating System** 堆栈命令](workingstacks-commands.md)，该命令将对指定实例运行 `yum update` 以将其更新到当前版本。

  当有新的 RHEL 7 版本可用时，**Instances** 和 **Stack** 页面将显示一个通知，其中包含一个可让您转到 **Run Command** 页面的链接。然后，您可以运行 **Upgrade Operating System** 升级您的实例。
+ 对于由 Amazon EBS 支持的脱机实例，启动实例并运行**升级操作系统**，如上一列表项中所述。
+ 对于离线实例存储支持的实例， OpsWorks Stacks 会在实例重启时自动安装新版本。


**Red Hat Enterprise Linux：受支持的 Node.js 版本**  

| RHEL 版本 | Node.js 版本 | 
| --- | --- | 
|  <pre>7</pre>  |  <pre>(Node.js versions only apply to Chef 11.10 stacks)<br />0.8.19<br />0.8.26<br />0.10.11<br />0.10.21<br />0.10.24<br />0.10.25<br />0.10.27<br />0.10.29<br />0.10.40<br />0.12.10<br />0.12.12<br />0.12.13<br />0.12.15</pre>  | 


**Red Hat Enterprise Linux：受支持的 Chef 版本**  

| Chef 版本 | 受支持的 RHEL 版本 | 
| --- | --- | 
|  <pre>12</pre>  |  <pre>Red Hat Enterprise Linux 7</pre>  | 
|  <pre>11.10</pre>  |  <pre>Red Hat Enterprise Linux 7</pre>  | 
|  <pre>11.4 (deprecated)</pre>  |  <pre>(None supported)</pre>  | 

所有早于 0.10.40 的 Node.js 版本均已弃用。0.12.7 和 0.12.9 也已弃用。

**注意**  
OpsWorks Stacks 支持 RHEL 7 实例的 Apache 2.4。

# Microsoft Windows Server
<a name="workinginstances-os-windows"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

以下注释描述了 OpsWorks 堆栈对 Windows 实例的支持。Windows 实例仅适用于 Chef 12.2 堆栈。Windows 堆栈中的准确 Chef 版本为 12.22。

**目前，无法在 OpsWorks 使用非英语-美国 (en-US) 的系统界面语言的基于 Windows 的实例上安装 OpsWorks Stacks 代理，Stacks 也无法管理。**

**版本**  
OpsWorks Stacks 支持以下 Windows 64 位版本：  
+ Microsoft Windows Server 2022 Base
+ Microsoft Windows Server 2022 with SQL Server Express
+ Microsoft Windows Server 2022 with SQL Server Standard
+ Microsoft Windows Server 2022 with SQL Server Web
+ Microsoft Windows Server 2019 Base
+ Microsoft Windows Server 2019 with SQL Server Express
+ Microsoft Windows Server 2019 with SQL Server Standard
+ Microsoft Windows Server 2019 with SQL Server Web

**创建实例**  
你可以使用 OpsWorks Stacks 控制台、API 或 CLI 创建 Windows 实例。Windows 实例由 Amazon EBS 提供支持，但您不能挂载额外的 Amazon EBS 卷。  
Windows 堆栈可以使用[全天候](workinginstances-starting.md)可用的实例，但您需要手动启动和停止这些实例。它们也可以使用[基于时间的自动扩展](workinginstances-autoscaling-timebased.md)，这将根据用户指定的计划来自动启动和停止实例。基于 Windows 的堆栈无法使用[基于负载的自动扩展](workinginstances-autoscaling-loadbased.md)。  
您无法使用堆栈[注册在堆栈之 OpsWorks 外创建的 Windows 实例](registered-instances.md)。

**更新**  
AWS 会 AMIs 针对每组补丁更新 Windows，因此在您创建实例时，它会有最新的更新。但是， OpsWorks Stacks 不提供对在线 Windows 实例应用更新的方法。确保 Windows 为最新版本的最简单的方法是定期更换您的实例，以便它们始终运行最新的 AMI。

**图层**  
要处理诸如安装和配置软件或部署应用程序等任务，您将需要实施一个或多个包含自定义配方的[自定义层](workinglayers-custom.md)。

**Chef**  
Windows 实例使用 Chef 12.22 并以本地模式运行 [chef-client](https://docs.chef.io/ctl_chef_client.html#run-in-local-mode)，这会启动一个称为 [chef-zero](https://docs.chef.io/ctl_chef_client.html#about-chef-zero) 的本地内存 Chef 服务器。此服务器启动后，使自定义配方可以使用 Chef 搜索和数据包。

**远程登录**  
OpsWorks Stacks 为获得授权的 IAM 用户提供了一个密码，他们可以使用该密码登录 Windows 实例。此密码在指定时间后过期。管理员可以使用 SSH 密钥对来检索实例的管理员密码，使用该密码，可以实现不受限制的 [RDP 访问](workinginstances-rdp.md)。有关更多信息，请参阅 [使用 RDP 登录](workinginstances-rdp.md)。

**AWS SDK**  
OpsWorks Stacks 会自动[适用于 .NET 的 AWS SDK](https://aws.amazon.com/sdk-for-net/)在每个实例上安装。该软件包包括 AWS .NET 库和适用于 Windows 的 AWS 工具，包括适用[于 Windows 的 AWS 工具 PowerShell](https://aws.amazon.com/powershell/)。要使用 Ruby 开发工具包，您可以让自定义配方安装适当的 Gem。

**监控和指标**  
Windows 实例支持标准 [Amazon CloudWatch (CloudWatch) 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html)，您可以在 CloudWatch 控制台中查看这些指标。

**Ruby**  
 OpsWorks Stacks 在 Windows 实例上安装的 Chef 12.22 客户端附带了 Ruby 2.3.6。但是， OpsWorks Stacks 不会将可执行文件的目录添加到 PATH 环境变量中。要让您的应用程序使用此 Ruby 版本，通常您可以在 `C:\opscode\chef\embedded\bin\` 中找到它。

**OpsWorks Stacks Agent CLI**  
Windows 实例上的 OpsWorks Stacks 代理不会公开[命令行界面](agent.md)。

**代理支持**  
执行以下操作为 Windows 实例设置代理支持：  

1. 修改`machine.config`以添加以下内容，从而为 Windows PowerShell （初始引导）和.NET（OpsWorks 堆栈代理）应用程序添加代理支持：

   ```
   <system.net>
     <defaultProxy>
       <proxy autoDetect="false" bypassonlocal="true" proxyaddress="http://10.100.1.91:3128"  usesystemdefault="false" />
       <bypasslist>
         <add address="localhost" />
         <add address="169.254.169.254" />
       </bypasslist>
     </defaultProxy>
   </system.net>
   ```

1. 运行以下命令来设置环境变量，供 Chef 和 Git 以后使用：

   ```
   setx /m no_proxy "localhost,169.254.169.254"
   setx /m http_proxy "http://10.100.1.91:3128"
   setx /m https_proxy "http://10.100.1.91:3128"
   ```

**注意**  
要更好地控制 OpsWorks Stacks 如何更新实例，请基于微软 Windows Server 2022 Base 创建自定义 AMI。例如，使用自定义， AMIs 您可以指定在实例上安装哪些软件，例如 Web 服务器 (IIS)。有关更多信息，请参阅 [使用自定义 AMIs](workinginstances-custom-ami.md)。