

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

# AWS CodePipeline 带 OpsWorks 堆栈-Chef 12 个堆栈
<a name="other-services-cp-chef12"></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 支持 团队联系。

[AWS CodePipeline](https://aws.amazon.com/codepipeline/)允许您创建持续交付管道，以跟踪来自诸如 CodeCommit亚马逊简单存储服务 (Amazon S3) Simple Service 或之类的源代码更改。[GitHub](https://github.com/)本主题中的示例介绍如何创建和使用其中的简单管道 CodePipeline 作为在 OpsWorks Stacks 层上运行的代码的部署工具。在此示例中，您为一个简单[的 Node.js 应用程序](samples/opsworks-nodejs-demo-app.zip)创建了一个管道，然后指示 OpsWorks Stacks 在 Chef 12 堆栈中某个层的所有实例（在本例中为单个实例）上运行该应用程序。

**注意**  
本主题介绍了如何使用管道来运行和更新 Chef 12 堆栈中的应用程序。有关如何使用管道来运行和更新 Chef 11.10 堆栈中的应用程序的信息，请参阅 [AWS CodePipeline 带 OpsWorks 堆栈-Chef 11 Stacks](other-services-cp-chef11.md)。发送到 Amazon S3 存储桶的内容可能包含客户内容。有关删除敏感数据的更多信息，请参阅[如何清空 S3 存储桶？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html)或[如何删除 S3 存储桶？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html)。

**Topics**
+ [先决条件](#w2ab1c14c73c19c11c11)
+ [其他受支持的场景](#w2ab1c14c73c19c11c13)
+ [步骤 1：在 Stack OpsWorks s 中创建堆栈、层和实例](other-services-cp-chef12-stack.md)
+ [步骤 2：配置您的堆栈和层以使用自定义说明书](other-services-cp-stackconfig.md)
+ [步骤 3：将应用程序代码上传到 Amazon S3 存储桶](other-services-cp-chef12-s3.md)
+ [第 4 步：将您的应用程序添加到 OpsWorks Stacks](other-services-cp-chef12-addapp.md)
+ [步骤 5：在中创建管道 CodePipeline](other-services-cp-chef12-pipeline.md)
+ [步骤 6：在 OpsWorks Stacks 中验证应用程序部署](other-services-cp-chef12-verify.md)
+ [步骤 7 (可选)：更新应用程序代码以查看 CodePipeline 自动重新部署您的应用程序](other-services-cp-chef12-update.md)
+ [步骤 8（可选）：清除资源](other-services-cp-chef12-cleanup.md)

## 先决条件
<a name="w2ab1c14c73c19c11c11"></a>

在开始本演练之前，请确保您具有管理员权限来执行以下所有任务。您可以是已应用**AdministratorAccess**策略的群组的成员，也可以是拥有下表所示权限和策略的群组的成员。作为最佳安全做法，您应加入有权执行以下任务的组，而不是为各个用户分配所需权限。

有关在 IAM 中创建安全组并为该组分配权限的更多信息，请参阅[创建 IAM 用户组](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_create.html)。有关管理 OpsWorks 堆栈权限的更多信息，请参阅[最佳实践：管理权限](https://docs.aws.amazon.com/opsworks/latest/userguide/best-practices-permissions.html)。


| Permissions | 推荐的附加到组的策略 | 
| --- | --- | 
|  在堆栈中创建和编辑堆栈、图层和实 OpsWorks 例。  | AWSOpsWorks\$1FullAccess | 
|  在 CloudFormation中创建、编辑和运行模板。  | AmazonCloudFormationFullAccess | 
|  创建、编辑和访问 Amazon S3 存储桶。  | 亚马逊 3 FullAccess | 
|  在中创建、编辑和运行管道 CodePipeline，尤其是使用 OpsWorks Stacks 作为提供者的管道。  | AWSCodePipeline\$1FullAccess | 

您还必须拥有 Amazon EC2 密钥对。在本演练中运行创建示例堆栈、层和实例的 CloudFormation 模板时，系统将提示您提供此 key pair 的名称。有关在亚马逊 EC2 控制台中获取密钥对的更多信息，请参阅亚马逊 EC2 文档中的[创建密钥对](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair)。主题必须位于美国东部（弗吉尼亚州北部）区域。如果您在该区域已有一个密钥对，则可使用现有密钥对。

## 其他受支持的场景
<a name="w2ab1c14c73c19c11c13"></a>

本演练会创建包含一个 **Source** 和一个 **Deploy** 阶段的简单管道。但是，您可以创建使用 OpsWorks Stacks 作为提供者的更复杂的管道。以下是受支持的管道和场景的示例：
+ 您可以编辑管道，以将 Chef 说明书添加到 **Source** 阶段，以及将已更新说明书的关联目标添加到 **Deploy** 阶段。在这种情况下，您添加一项 **Deploy** 操作，以便在更改源时触发对说明书的更新。更新的说明书将在应用程序前面部署。
+ 您可以创建包含自定义食谱和多个应用程序的复杂管道，然后部署到 OpsWorks Stacks 堆栈。该管道可跟踪对应用程序和说明书源的更改，并在您做出更改后重新部署。下面提供了一个类似的复杂管道的示例：  
![\[Pipeline diagram showing Source stage with Amazon S3 inputs and Beta stage with AWS OpsWorks outputs.\]](http://docs.aws.amazon.com/zh_cn/opsworks/latest/userguide/images/cp_integ_complexpipeline.png)

有关使用的更多信息 CodePipeline，请参阅《[CodePipeline 用户指南》](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)。