

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

# 创建新堆栈
<a name="workingstacks-creating"></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 堆栈” 控制面板上，单击 “**添加堆栈**”。然后，您可以使用 **Add Stack** 页来配置堆栈。完成后，单击 **Add Stack**。

**Topics**
+ [选择要创建的堆栈类型](#workingstacks-creating-decision-table)
+ [基本选项](#workingstacks-creating-basic)
+ [高级选项](#workingstacks-creating-advanced)

## 选择要创建的堆栈类型
<a name="workingstacks-creating-decision-table"></a>

创建堆栈前，您必须决定要创建的堆栈的类型。有关帮助，请参阅下表。


| 如果需要创建... | 在以下情况下，创建此类型的堆栈 | 要了解如何操作，请遵循以下说明： | 
| --- | --- | --- | 
| 示例堆栈 |  OpsWorks 使用基于 Linux 的 Chef 12 堆栈和示例 Node.js 应用程序，探索 AWS 的基础知识。 |  [入门：示例](gettingstarted-intro.md)   | 
| 基于 Linux 的 Chef 12 堆栈 | 创建一个基于 Linux 的堆栈，该堆栈使用 AWS OpsWorks 支持的最新版本的 Chef。如果您是高级 Chef 用户，并且您想从大量可选的社区说明书中获益，或编写您自己的自定义说明书，请选择此选项。有关更多信息，请参阅 [Chef 12 Linux](chef-12-linux.md)。 |  [入门：Linux](gettingstarted-linux.md)  | 
| 基于 Windows 的 Chef 12.2 堆栈 | 创建基于 Windows 的堆栈。 |  [入门：Windows](gettingstarted-windows.md)  | 
| 基于 Linux 的 Chef 11.10 堆栈 | 如果您的组织需要将 Chef 11.10 与 Linux 结合使用以实现向后兼容性，请创建此堆栈。 |  [Chef 11 Linux 堆栈入门](gettingstarted.md)  | 

## 基本选项
<a name="workingstacks-creating-basic"></a>

**Add Stack** 页包含以下基本选项。

**堆栈名称**  
（必需）用于在 Stack OpsWorks s 控制台中标识堆栈的名称。名称不必是唯一的。 OpsWorks 堆栈还会生成堆栈 ID，这是一个唯一标识堆栈的 GUID。例如，对于 [AWS CLI](https://aws.amazon.com/documentation/cli/) 命令（如 [update-stack](https://docs.aws.amazon.com/cli/latest/reference/opsworks/update-stack.html)），您使用堆栈 ID 标识特定堆栈。创建堆栈后，您可以通过在导航窗格中选择 **Stack**，然后选择 **Stack Settings** 来查找堆栈 ID。该身份证标有**OpsWorks 身份证。**

**Region**  
(必需) 将从中启动实例的 Amazon Web Services Region。

**VPC**  
(可选) 堆栈将启动到的 VPC 的 ID。所有实例都将启动到此 VPC 中，并且您稍后无法更改 ID。  
+ 如果您的账户支持 EC2 经典版，则如果您**不想使用 VPC**，则可以指定 “无 VPC”（默认值）。

  有关 C EC2 lassic 的更多信息，请参阅[支持的平台](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)。
+ 如果您的账户不支持 EC2 经典版，则必须指定 VPC。

  默认设置为默**认 VPC**，它将 EC2 经典版的易用性与 VPC 联网功能的优势相结合。如果您需要在常规 VPC 中运行堆栈，则必须使用 VPC [控制台](https://console.aws.amazon.com/vpc/)、[API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Welcome.html) 或 [CLI](https://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/Welcome.html) 来创建堆栈。有关如何为 OpsWorks Stacks 堆栈创建 VPC 的更多信息，请参阅[在 VPC 中运行堆栈](workingstacks-vpc.md)。有关一般信息，请参阅 [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Introduction.html)。

**默认可用性 Zone/Default 子网**  
(可选) 此设置依赖于您是否在 VPC 中创建堆栈：  
+ 如果您的账户支持 EC2 Classic 并且您将 **V** **PC 设置为无 VPC**，则此设置将标记为**默认可用区**，它指定了将在其中启动实例的默认 AWS 可用区。
+ **如果您的账户不支持 EC2 Classic 或者您选择指定 VPC，则此字段将标记为默认子网，用于指定启动实例的默认子网。**您可以通过在创建实例时覆盖此值来在其他子网中启动实例。每个子网均与一个可用区关联。
通过在[创建](workinginstances-add.md)实例时覆盖此设置，您可以让 OpsWorks Stacks 在不同的可用区或子网中启动该实例。  
 有关如何在 VPC 中运行堆栈的更多信息，请参阅[在 VPC 中运行堆栈](workingstacks-vpc.md)。

**默认操作系统**  
(可选) 默认情况下安装在每个实例上的操作系统。您有以下选项：  
+ 内置 Linux 操作系统之一。
+ Microsoft Windows Server 2012 R2。
+ 基于某个支持的操作系统的自定义 AMI。

  如果您选择 **Use custom AMI**，则操作系统由创建实例时指定的自定义 AMI 决定。有关更多信息，请参阅 [使用自定义 AMIs](workinginstances-custom-ami.md)。
有关可用操作系统的更多信息，请参阅[OpsWorks 堆栈操作系统](workinginstances-os.md)。  
您可以在创建实例时覆盖默认操作系统。不过，您无法覆盖 Linux 操作系统来指定 Windows，也无法覆盖 Windows 来指定 Linux 操作系统。

**默认 SSH 密钥**  
（可选）来自堆栈区域的 Amazon EC2 密钥对。默认值为 none。如果您指定密钥对， OpsWorks Stacks 会在实例上安装公钥。  
+ 对于 Linux 实例，您可以将私有密钥用于 SSH 客户端来登录堆栈的实例。

  有关更多信息，请参阅 [使用 SSH 登录](workinginstances-ssh.md)。
+ 对于 Windows 实例，您可以使用带有 Amazon EC2 控制台或 CLI 的私钥来检索实例的管理员密码。

  随后，您可以将密码用于 RDP 客户端来以管理员身份登录到实例。有关更多信息，请参阅 [使用 RDP 登录](workinginstances-rdp.md)。
有关如何管理 SSH 密钥的更多信息，请参阅[管理 SSH 访问](security-ssh-access.md)。  
您可以通过在[创建实例](workinginstances-add.md)时指定其他密钥对来覆盖此设置或不指定任何密钥对。

**Chef 版本**  
这将显示您选定的 Chef 版本。  
有关 Chef 版本的更多信息，请参阅[Chef 版本](workingcookbook-chef11.md)。

**使用自定义 Chef 说明书**  
是否在堆栈的实例上安装自定义 Chef 说明书。  
对于 Chef 12，默认设置为 **Yes**。对于 Chef 11，默认设置为 “**否**”。 “**是**” 选项显示了几个其他设置，这些设置为 OpsWorks Stacks 提供了将自定义食谱从存储库部署到堆栈实例所需的信息，例如存储库 URL。详细信息取决于您对说明书使用的存储库。有关更多信息，请参阅 [安装自定义说明书](workingcookbook-installingcustom-enable.md)。

**堆栈颜色**  
（可选）用于在 Stack OpsWorks s 控制台上表示堆栈的色调。您可以对不同的堆栈使用不同的颜色来帮助在开发期间区分临时和生产堆栈。

**堆栈标签**  
您可以在堆栈和层级别应用标签。当您创建一个标签后，您将对标记的结构范围内的每个资源应用该标签。例如，如果您向堆栈应用一个标签，则将向每个层应用该标签，而在每个层中，将向层中的每个实例、Amazon EBS 卷或 Elastic Load Balancing 负载均衡器应用该标签。有关如何激活标签并使用它们来跟踪和管理 OpsWorks 堆栈资源成本的更多信息，请参阅《B *illing and Cost Management 用户指南》中的[使用成本分配标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)[和激活用户定义](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activating-tags.html)的成*本分配标签。有关在 OpsWorks 堆栈中添加标签的更多信息，请参阅。[标签](tagging.md)

## 高级选项
<a name="workingstacks-creating-advanced"></a>

对于高级设置，单击 **Advanced >>** 可显示 **Advanced options** 和 **Security** 部分。

**Advanced options** 部分具有以下选项：

默认根设备类型  
确定要用于实例的根卷的存储类型。有关更多信息，请参阅[存储](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Storage.html)。  
+ 默认情况下，Linux 堆栈使用由 Amazon EBS 提供支持的根卷，但您也可以指定由实例存储提供支持的根卷。
+ Windows 堆栈必须使用由 Amazon EBS 提供支持的根卷。

IAM 角色  
（可选）堆栈的 AWS 身份和访问管理 (IAM) 角色， OpsWorks Stacks 使用该角色代表您与 AWS 进行交互。

默认 IAM 实例配置文件  
（可选）要与堆栈的 Amazon EC2 实例关联的默认 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html)。此角色向正在堆栈的实例上运行的应用程序授予对 AWS 资源 (如 S3 存储桶) 的访问权。  
+ 要向应用程序授予特定权限，请选择具有适当策略的现有实例配置文件 (角色)。
+ 最初，配置文件的角色不授予任何权限，但您可以使用 IAM 控制台、API 或 CLI 来附加适当的策略。有关更多信息，请参阅 [为在 EC2 实例上运行的应用程序指定权限](opsworks-security-appsrole.md)。

API 端点区域  
此设置采用您在堆栈的基本设置中选择的区域中的值。您可以从以下区域端点中选择。  
+ US East (N. Virginia) Region
+ 美国东部（俄亥俄）区域
+ US West (Oregon) Region
+ 美国西部（北加利福尼亚）区域
+ 加拿大（中部）区域（仅限 API；不适用于在中创建的堆栈 AWS 管理控制台
+ 亚太地区（孟买）区域
+ 亚太地区（新加坡）区域
+ 亚太地区（悉尼）区域
+ 亚太地区（东京）区域
+ 亚太地区（首尔）区域
+ 欧洲地区（法兰克福）区域
+ 欧洲地区（爱尔兰）区域
+ 欧洲地区（伦敦）区域
+ 欧洲地区（巴黎）区域
+ 南美洲（圣保罗）区域
在一个 API 端点中创建的堆栈不适用于另一个 API 端点。由于 OpsWorks Stacks 用户也是特定于区域的，因此如果您希望其中一个终端节点区域的 OpsWorks Stacks 用户管理另一个终端节点区域中的堆栈，则必须将用户导入到与堆栈关联的终端节点。有关导入用户的更多信息，请参阅[将用户导入 OpsWorks 堆栈](https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users-manage-import.html)。

主机名主题  
(可选) 一个用于为每个实例生成默认主机名的字符串。默认值为 **Layer Dependent**，它使用实例层的短名称并向每个实例附加一个唯一的编号。例如，依赖角色的**负载均衡器** 主题根为“lb”。您添加到层的第一个实例名为“lb1”，您添加到层的第二个实例名为“lb2”，以此类推。

OpsWorks 代理版本  <a name="workingstacks-creating-advanced-agent"></a>
（可选）是在有新版本可用时自动更新 OpsWorks Stacks 代理，还是使用指定的代理版本并手动更新。此功能适用于 Chef 11.10 和 Chef 12 堆栈。默认设置为 **Manual update**，这将设置为最新代理版本。  
OpsWorks Stacks 在每个实例上安装一个代理，该代理与服务通信并处理诸如启动 Chef 运行以响应[生命周期](workingcookbook-events.md)事件之类的任务。此代理将定期更新。对于为堆栈指定代理版本，您有两个选项。  
+ **自动更新** — 一旦更新可用， OpsWorks Stacks 就会自动在堆栈的实例上安装每个新的代理版本。
+ **手动更新** — OpsWorks Stacks 在堆栈的实例上安装指定的代理版本。

  OpsWorks 当有新的代理版本可用时，Stacks 会在堆栈页面上发布一条消息，但不会更新堆栈的实例。要更新代理，必须手动[更新堆栈设置](workingstacks-edit.md)以指定新的代理版本，然后 OpsWorks Stacks 将更新堆栈的实例。
您可以通过[更新特定实例的配置来覆盖其](workinginstances-properties.md)默认**OpsWorks 代理版本**设置。在此情况下，实例的设置优先。例如，假定默认设置为 **Auto-update**，而您为特定实例指定 **Manual update**。当 OpsWorks Stacks 发布新的代理版本时，它将自动更新堆栈的所有实例，但设置为 “**手动更新**” 的实例除外。要在该实例上安装新的代理版本，您必须手动[更新其配置](workinginstances-properties.md)并指定新版本。  
控制台将显示缩写的代理版本号。要查看完整版本号，请调用 AWS CLI [describe-agent-versions](https://docs.aws.amazon.com/cli/latest/reference/opsworks/describe-agent-versions.html)命令或等效的 API 或 SDK 方法。它们将返回可用代理版本的完整版本号。

自定义 JSON  
(可选) 一个或多个格式化为 JSON 结构的属性。这些属性将合并为[堆栈配置和部署属性](workingcookbook-json.md)，它们将安装到每个实例上并且可由配方使用。您可以使用自定义 JSON 来自定义配置设置，方式是覆盖指定默认设置的内置属性。有关更多信息，请参阅 [使用自定义 JSON](workingcookbook-json-override.md)。

**安全**有一个选项，即**使用 OpsWorks 安全组**，它允许您指定是否将堆栈内置安全组与堆栈的层相关联。 OpsWorks 

OpsWorks Stacks 提供了一组标准的内置安全组（每层一个），默认情况下，这些安全组与图层关联。**使用 OpsWorks安全组**允许您改为提供自己的自定义安全组。有关更多信息，请参阅 [使用安全组](workingsecurity-groups.md)。

**使用 OpsWorks 安全组**具有以下设置：
+ **是**- OpsWorks Stacks 会自动将相应的内置安全组与每个层关联起来（默认设置）。

  您可以在创建一个层后将该层与额外的安全组关联，但无法删除内置安全组。
+ **否**- OpsWorks Stacks 不会将内置安全组与层关联。

  您必须创建适当的 EC2 安全组，并将安全组与您创建的每个层关联起来。但是，您仍然可以在创建时手动关联内置的安全组和层；只有需要自定义设置的层才必须要自定义安全组。

注意以下几点：
+ 如果将 “**使用 OpsWorks 安全组**” 设置为 “**是**”，则无法通过向层添加限制性更强的安全组来限制默认安全组的端口访问设置。对于多个安全组，Amazon EC2 使用最宽松的设置。此外，您无法通过修改内置安全组配置来创建更严格的设置。创建堆栈时，Stac OpsWorks ks 会使用标准设置覆盖内置安全组的配置，因此您所做的任何更改都将在下次创建堆栈时丢失。如果某个层需要比内置安全组更严格的安全组设置，请将 “**使用 OpsWorks 安全组**” 设置为 “**否**”，使用您的首选设置创建自定义安全组，并在创建时将其分配给图层。
+ 如果您不小心删除了 OpsWorks Stacks 安全组并想要重新创建它，则该安全组必须与原始安全组完全相同，包括组名的大写。建议您让 OpsWorks Stacks 为您重新创建组，而不是手动执行此任务。只需在同一 AWS 区域和 VPC（如果有）中创建一个新堆栈， OpsWorks Stacks 就会自动重新创建所有内置安全组，包括您删除的安全组。如果您不再需要该堆栈，则随后您可以删除它；安全组将保留。