

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

# 使用基于拉取的部署工具配置的 AMI 进行可变部署
<a name="ex-mute-pull-based"></a>

此策略依赖于 Managed Services EC2 Create CT 中的`InstanceUserData`参数。有关使用此参数的更多信息，请参阅[使用用户数据配置实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-add-user-data)。此示例假设使用基于拉取的应用程序部署工具，例如 Chef 或 Puppet。

所有 AMS 都支持该 CodeDeploy 代理 AMIs。以下是支持的列表 AMIs：
+ 亚马逊 Linux（第 1 版）
+ Amazon Linux 2
+ RedHat 7
+ CentOS 7

IDs 所有 CT 选项都可以在[变更类型参考](https://docs.aws.amazon.com/managedservices/latest/ctref/index.html)中找到。
**注意**  
目前，您必须在此解决方案中使用 Amazon S3 存储。

此处概述了基本步骤，《AMS 用户指南》中详细介绍了操作步骤。

1. 创建 Amazon S3 存储桶。CT：ct-1a68ck03fn98r。S3 存储桶必须启用版本控制（有关执行此操作的信息，请参阅[启用存储桶版本控制](https://docs.aws.amazon.com/AmazonS3/latest/UG/enable-bucket-versioning.html)）。

1. 把你捆绑的 CodeDeploy 神器放在上面。您可以通过 Amazon S3 控制台执行此操作，而无需通过 AMS 请求访问权限。或者使用这个命令的变体：

   ```
   aws s3 cp {{ZIP_FILEPATH_AND_NAME}} s3://{{S3BUCKET_NAME}}/
   ```

1. 查找 AMS `customer-` AMI；使用以下任一方法：
   + AMS 控制台：相关 VPC 的 VPC 详细信息页面
   + AMS API 有关 AMS SKMS API 参考，请参阅 AWS Artifact 控制台中的 “**报告**” 选项卡。或 CLI：`aws amsskms list-amis`

1. 创建实 EC2 例。CT：ct-14027q0sjyt1h；设置一个标签`Key=backup, Value=true`，然后使用`InstanceUserData`参数指定引导程序和其他脚本（下载 Chef/Puppet 代理等），并包括必要的授权密钥。您可以在《AMS 用户指南》的 “变更管理” 部分的创建 HA 双层部署示例中找到执行此操作的示例。或者，请求访问并登录该实例，然后使用必要的部署工件对其进行配置。请记住，基于拉取的部署命令会从您的实例上的代理发送到您的公司主服务器，并且可能需要授权才能通过堡垒。您可能需要向 AMS 提出服务请求，才能在没有堡垒的情况下请求安全 group/AD 组访问权限。

1. 重复步骤 4，创建另一个 EC2 实例，并使用部署工具主服务器对其进行配置。

1. 当您需要更新应用程序时，请使用部署工具将更新部署到您的实例。