AWS CodePipeline 与 AWS OpsWorks Stacks - Chef 12 堆栈 - AWS OpsWorks

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

AWS CodePipeline 与 AWS OpsWorks Stacks - Chef 12 堆栈

重要

AWS OpsWorks Stacks不再接受新客户。在 2024 年 5 月 26 日之前,现有客户将能够照常使用 OpsWorks 控制台、API、CLI 和 CloudFormation 资源,届时这些工具或资源将停用。为准备此过渡,我们建议您尽快将堆栈过渡到AWS Systems Manager。有关更多信息,请参阅 AWS OpsWorks Stacks 生命周期终止常见问题解答将 AWS OpsWorks Stacks 应用程序迁移到 AWS Systems Manager Application Manager

AWS CodePipeline 可让您创建持续交付管道,跟踪来自 CodeCommit、Amazon Simple Storage Service (Amazon S3)或 GitHub 等来源的代码更改。本主题中的示例介绍了如何从 CodePipeline 创建和使用一个简单的管道,作为在 AWS OpsWorks Stacks 层上运行的代码的部署工具。在本示例中,您为一个简单的 Node.js 应用程序创建管道,然后指示 AWS OpsWorks Stacks 在 Chef 12 堆栈中某个层的所有实例(本示例中为单个实例)上运行该应用程序。

注意

本主题介绍了如何使用管道来运行和更新 Chef 12 堆栈中的应用程序。有关如何使用管道来运行和更新 Chef 11.10 堆栈中的应用程序的信息,请参阅 AWS CodePipeline 与 AWS OpsWorks Stacks - Chef 11 堆栈。发送到 Simple Storage Service(Amazon S3)存储桶的内容可能包含客户内容。有关删除敏感数据的更多信息,请参阅如何清空 S3 存储桶?如何删除 S3 存储桶?

先决条件

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

有关在 IAM 中创建安全组并为该组分配权限的更多信息,请参阅创建 IAM 用户组。有关管理 AWS OpsWorks Stacks 权限的更多信息,请参阅最佳实践:管理权限

权限 推荐的附加到组的策略

在 AWS OpsWorks Stacks 中创建和编辑堆栈、层和实例。

AWSOpsWorks_FullAccess

在 AWS CloudFormation 中创建、编辑和运行模板。

AmazonCloudFormationFullAccess

创建、编辑和访问 Amazon S3 存储桶。

AmazonS3FullAccess

在 CodePipeline 中创建、编辑和运行管道,尤其是使用 AWS OpsWorks Stacks 作为提供程序的管道。

AWSCodePipeline_FullAccess

您还必须拥有 Amazon EC2 密钥对。当您运行创建本演练中的示例堆栈、层和实例的 AWS CloudFormation 模板时,系统将提示您提供此密钥对的名称。有关在 Amazon EC2 控制台中获取密钥对的更多信息,请参阅 Amazon EC2 文档中的创建密钥对。主题必须位于美国东部(弗吉尼亚州北部)区域。如果您在该区域已有一个密钥对,则可使用现有密钥对。

其他受支持的场景

本演练会创建包含一个 Source 和一个 Deploy 阶段的简单管道。但是,您可以创建将 AWS OpsWorks Stacks 用作提供程序的更复杂的管道。以下是受支持的管道和场景的示例:

  • 您可以编辑管道,以将 Chef 说明书添加到 Source 阶段,以及将已更新说明书的关联目标添加到 Deploy 阶段。在这种情况下,您添加一项 Deploy 操作,以便在更改源时触发对说明书的更新。更新的说明书将在应用程序前面部署。

  • 您可以创建一个复杂管道 (带自定义说明书和多个应用程序),并将其部署到 AWS OpsWorks Stacks 堆栈。该管道可跟踪对应用程序和说明书源的更改,并在您做出更改后重新部署。下面提供了一个类似的复杂管道的示例:

有关使用 CodePipeline 的更多信息,请参阅《CodePipeline 用户指南》。