

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

# 与 CodeDeploy 代理合作
<a name="codedeploy-agent"></a>

 AWS CodeDeploy 代理是一个软件包，在实例上安装和配置后，该实例就可以在 CodeDeploy 部署中使用。

AWS 支持 CodeDeploy 代理的最新次要版本。目前最新的次要版本是 1.8.x。

**注意**  
 只有部署到 EC2/本地计算平台时，才需要使用 CodeDeploy 代理。使用 Amazon ECS 或 AWS Lambda 计算平台的部署不需要该代理。

安装该代理时，将在实例上放置一个配置文件。此文件用于指定代理的工作方式。此配置文件指定了与实例交互 AWS CodeDeploy 时要使用的目录路径和其他设置。可以更改此文件中的某些配置选项。有关使用 CodeDeploy 代理配置文件的信息，请参见[CodeDeploy 代理配置参考](reference-agent-configuration.md)。

有关使用 CodeDeploy 代理的更多信息，例如安装、更新和验证版本的步骤，请参阅[管理 CodeDeploy 代理操作](codedeploy-agent-operations.md)。

**Topics**
+ [

## CodeDeploy 代理支持的操作系统
](#codedeploy-agent-supported-operating-systems)
+ [

## CodeDeploy 代理的通信协议和端口
](#codedeploy-agent-outbound-port)
+ [

## CodeDeploy 代理的版本历史记录
](#codedeploy-agent-version-history)
+ [

## 管理 CodeDeploy 流程
](#codedeploy-agent-processes)
+ [

## 应用程序修订和日志文件清理
](#codedeploy-agent-revisions-logs-cleanup)
+ [

## CodeDeploy 代理安装的文件
](#codedeploy-agent-install-files)
+ [

# 管理 CodeDeploy 代理操作
](codedeploy-agent-operations.md)

## CodeDeploy 代理支持的操作系统
<a name="codedeploy-agent-supported-operating-systems"></a>

### 支持的 Amazon EC2 AMI 操作系统
<a name="codedeploy-agent-supported-operating-systems-ec2"></a>

该 CodeDeploy 代理已在以下 Amazon EC2 AMI 操作系统上进行了测试：
+ Amazon Linux 2023（ARM、x86）
+ Amazon Linux 2（ARM、x86）
+ Microsoft Windows Server 2022、2019
+ Red Hat Enterprise Linux（RHEL）9.x、8.x、7.x
+ Ubuntu Server 22.04 LTS、20.04 LTS、18.04 LTS、16.04 LTS

该 CodeDeploy 代理以开源形式提供，以供您适应您的需求。它可与其他 Amazon EC2 AMI 操作系统配合使用。有关更多信息，请访问中的[CodeDeploy 代理](https://github.com/aws/aws-codedeploy-agent)存储库 GitHub。

### 支持的本地操作系统
<a name="codedeploy-agent-supported-operating-systems-on-premises"></a>

该 CodeDeploy 代理已在以下本地操作系统上进行了测试：
+ Microsoft Windows Server 2022、2019
+ Red Hat Enterprise Linux（RHEL）9.x、8.x、7.x
+ Ubuntu Server 22.04 LTS、20.04 LTS

该 CodeDeploy 代理以开源形式提供，以供您适应您的需求。它可与其他本地实例操作系统配合使用。有关更多信息，请访问中的[CodeDeploy 代理](https://github.com/aws/aws-codedeploy-agent)存储库 GitHub。

## CodeDeploy 代理的通信协议和端口
<a name="codedeploy-agent-outbound-port"></a>

 CodeDeploy 代理使用 HTTPS 通过端口 443 进行出站通信。

当 CodeDeploy 代理在 EC2 实例上运行时，它将使用 [EC2 元数据](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html)终端节点来检索与实例相关的信息。了解有关[限制和授予实例元数据服务访问权限](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html#instance-metadata-limiting-access)的更多信息。

## CodeDeploy 代理的版本历史记录
<a name="codedeploy-agent-version-history"></a>

您的实例必须运行支持的 CodeDeploy 代理版本。当前支持的最低版本为 1.8.x。

**注意**  
我们建议使用最新版本的 CodeDeploy 代理。如果您遇到问题，请在联系 Su AWS pport 之前更新到最新版本。有关升级信息，请参阅[更新代 CodeDeploy 理](codedeploy-agent-operations-update.md)。

下表列出了该 CodeDeploy 代理的所有版本以及每个版本中包含的功能和增强功能。


| 版本 | 发行日期 | Details | 
| --- | --- | --- | 
|  1.8.1  |  2026 年 2 月 3 日  |  **修复**：S3 端点错误修复。 **新增**：Sectigo CA 证书已添加到 Windows CA 列表中。  | 
|  1.8.0  |  2025 年 7 月 31 日  |  **改动**：在 Windows CodeDeploy 代理中将捆绑的 Ruby 升级到 3.2。  | 
|  1.7.1  |  2024 年 11 月 14 日  |  **已更改**：更新了安全补丁的依赖项。  | 
|  1.7.0  |  2024 年 3 月 6 日  |  **新增**： CodeDeploy 代理`:disable_imds_v1:`配置文件的配置设置。使用此设置可禁用 IMDSv2 错误发生 IMDSv1 时的回退功能。默认为 `false`（启用回退）。有关更多信息，请参阅[CodeDeploy 代理配置参考](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-agent-configuration.html)。 **新增**：支持 Red Hat Enterprise Linux 9（RHEL 9）操作系统。 **新增：**在 Ubuntu Server 上支持 Ruby 版本 3.1 和 3.2。 **已修复**：如果 CodeDeploy 代理配置文件加载失败， CodeDeploy 代理现在会生成用户友好的错误。 **改动**：在 Windows CodeDeploy 代理中将 Ruby 升级到 2.7.8-1。  | 
|  1.6.0  |  2023 年 3 月 30 日  |  **新增**：对 Ruby 3.1、3.2 的支持。 **新增**：对 Amazon Linux 2023 的支持。 **新增**：对 Windows Server 2022 的支持。 **已更改**：Windows Server 实例的 `verbose` 默认设置现在为 `false`。要继续在 Windows 的日志文件中打印调试消息，必须将 `verbose` 设置为 `true`。 **已删除**：对 Windows Server 2016 和 Windows Server 2012 R2 的支持。 **已删除**：对 Amazon Linux 2018.03.x 的支持。  | 
|  1.5.0  |  2023 年 3 月 3 日  |  **新增**：对 Ruby 3 的支持。 **新增**：对 Ubuntu 22.04 的支持。 **已修复**：启动后不久重新启动 CodeDeploy 代理会导致代理挂起的问题。 已@@ **更改**：现在，如果 CodeDeploy 代理服务在运行挂钩脚本时意外重启，代理启动时将无法部署主机。此修复可让您避免在重试部署前等待 70 分钟的超时时间。 **弃用通知**： CodeDeploy 代理 1.5.0 是最后一个支持 Windows Server 2016 和 Windows Server 2012 R2 的版本。 **已删除：**在 Ubuntu 14.04 LTS、Windows Server 2008 R2 和 Windows Server 2008 R2 32 位上支持该 CodeDeploy代理。  | 
|  1.4.1  |  2022 年 12 月 6 日  |  **已修复**：与日志记录相关的安全漏洞。 **增强**：改进了轮询主机命令时的日志记录。  | 
|  1.4.0  |  2022 年 8 月 31 日  |  **新增**：对 Red Hat Enterprise Linux 8 的支持。 **新增**：支持 Windows 版 CodeDeploy 代理上的长文件路径。要启用长文件路径，您需要设置相应的 Windows 注册表项，然后重新启动代理。有关更多信息，请参阅 [长文件路径会导致“没有这样的文件或目录”错误](troubleshooting-deployments.md#troubleshooting-long-file-paths)。 **已修复**：磁盘已满时解压缩操作出现问题。现在， CodeDeploy 代理会检测到解压缩的[退出代码 50](https://linux.die.net/man/1/unzip)，表示磁盘已满，删除部分提取的文件，并引发异常以将故障发布到 CodeDeploy服务器。该错误消息显示为生命周期事件错误消息，主机级部署将停止，而不会卡住或超时。 **已修复**：会导致代理失败的问题。 **已修复**：钩子在边缘争用条件下超时的问题。没有脚本的钩子现在将继续运行，并且不会再导致失败或超时。 **已更改**： CodeDeploy 代理`bin`目录中的`update`脚本已被删除，因为该脚本已不再使用。 **改动**：Windows 服务器 CodeDeploy 代理现在捆绑了 Ruby 2.7。 **已更改**：添加了新的环境变量，供挂钩脚本使用，具体取决于部署包的来源（Amazon S3 或 GitHub）。 有关更多信息，请参阅 [挂钩的环境变量可用性](reference-appspec-file-structure-hooks.md#reference-appspec-file-structure-environment-variable-availability)。  **弃用通知**： CodeDeploy代理 1.4.0 是包含 32 位 Windows 服务器安装程序的最后一个版本。 **弃用通知**： CodeDeploy代理 1.4.0 是最后一个支持 Windows Server 2008 R2 的版本。 **已删除**：支持以下亚马逊 EC2 上的 CodeDeploy 代理 AMIs：亚马逊 Linux 2014.09、2016.03、2016.09 和 2017.03。   | 
|  1.3.2  |  2021 年 5 月 6 日  |   CodeDeploy 代理 1.3.2 解决了影响运行该代理的 Windows 主机的 [CVE-2018-1000201](https://nvd.nist.gov/vuln/detail/CVE-2018-1000201)。CVE 引用了 ruby-ffi，这是代理的依赖关系。 CodeDeploy 如果您的代理与 Amazon EC2 Systems Manager（SSM）一起安装并且设置为自动更新，则无需执行任何操作。否则，需要采取措施来手动更新代理。要升级代理，请按照在 [Windows 服务器上更新 CodeDeploy 代理](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-update-windows.html)中的说明进行操作。   **已修复**：在 Ubuntu 20.04 及更高版本上安装 CodeDeploy 代理时出现问题。 **已修复**：由于未正确处理相对路径，在提取压缩文件时出现间歇性问题。 **新增**：对 Windows 实例的 [AWS PrivateLink 和 VPC 终端节点](https://docs.aws.amazon.com//vpc/latest/userguide/endpoint-services-overview.html)的支持。 **新增**： AppSpec 文件改进，如下所述。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/codedeploy-agent.html) 已@@ **升级**： CodeDeploy 现在使用适用于 Ruby 3.0 的 AWS SDK。  | 
|  1.3.1  |  2020 年 12 月 22 日  |  **已修复**：导致本地实例无法启动的 1.3.0 问题。  | 
|  1.3.0  |  2020 年 11 月 10 日  |   此版本已被弃用。  **已修复**：删除了不再使用的过期证书。 已@@ **修复**：从使用的代理卸载脚本中删除了提示消息 AWS Systems Manager，从而可以更轻松地将主机或队列降级到代理的先前版本。  | 
|  1.2.1  |  2020 年 9 月 23 日  |  **已更改**：将 适用于 Ruby 的 AWS SDK 依赖项从 v2 升级到 v3。 **新增**：Support fo IMDSv2 r. 包括对 h IMDSv2 ttp 请求失败 IMDSv1 时的静默回退。 **已更改**：更新了安全补丁的 Rake 和 Rubyzip 依赖项。 **已修复**：确保代理启动时，空的 PID 文件将返回状态 `No CodeDeploy Agent Running` 并清理 PID 文件。  | 
|  1.1.2  |  2020 年 8 月 4 日  |  **新增**：对 Ubuntu Server 19.10 和 20.04 的支持。 **注意**：19.10版本已 end-of-life过期，Ubuntu或不再支持该版本。 CodeDeploy **新增**：改进了 Linux 和 Ubuntu 的内存效率，可以更及时地释放预留内存。 **新增**：与 Windows Server“静默清理”的兼容性，这会导致代理在某些情况下无响应。 **新增**：在清理过程中忽略非空目录，以避免部署失败。 **新增**：对洛杉矶（洛杉矶） AWS 本地区域的 Support 支持。 **新增**：从实例元数据中提取可用区以提供与 L AWS ocal Zones 的兼容性。 **新增**：用户现在可以在子目录中提供存档，无需将其存储在根目录中。 **新增**：检测到 Rubyzip 存在的、可能导致内存泄漏的问题。更新了 unzip 命令，使其在使用 Rubyzip 之前首先尝试使用系统安装的 unzip 实用程序。 **新增**：`:enable_auth_policy:` 作为代理配置设置。 **已更改**：现在将忽略解压缩警告，因此部署将继续进行。  | 
|  1.1.0  |  2020 年 6 月 30 日  |  **已更改**： CodeDeploy代理的版本控制现在遵循 Ruby 标准版本控制惯例。 **新增**：安装和更新命令的新参数，允许从命令行安装特定代理版本。 **已删除**：移除了适用于 Linux 和 Ubuntu 的 CodeDeploy 代理自动更新程序。要配置 CodeDeploy 代理的自动更新，请参阅[使用安装 CodeDeploy 代理 AWS Systems Manager](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ssm.html)。  | 
|  1.0.1.1597  |  2018 年 11 月 15 日  |  **增强**： CodeDeploy 支持 Ubuntu 18.04。 **增强**： CodeDeploy 支持 Ruby 2.5。 **增强**： CodeDeploy 支持 FIPS 端点。有关联邦信息处理标准端点的更多信息，请参阅 [FIPS 140-2 概述](https://aws.amazon.com/compliance/fips/)。有关可与之配合使用的终端节点 CodeBuild，请参阅[CodeDeploy区域和终端节点](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)。  | 
|  1.0.1.1518  |  2018 年 6 月 12 日  |  **增强功能**：修复了 CodeDeploy 代理在接受轮询请求时关闭时导致错误的问题。 **增强**：添加了部署跟踪功能，该功能可防止 CodeDeploy 代理在部署进行时关闭。 **增强功能**：改进了删除文件时的性能。  | 
|  1.0.1.1458  |  2018 年 3 月 6 日  |  **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 **增强功能**：改进了证书验证，以支持更多受信任的机构。 **增强**：修复了在包含 BeforeInstall 生命周期事件的部署期间导致本地 CLI 失败的问题。 **增强**：修复了更新 CodeDeploy 代理时可能导致主动部署失败的问题。  | 
|  1.0.1.1352  |  2017 年 11 月 16 日  |  **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 **功能**：引入了一项新功能，用于在安装 CodeDeploy 代理的本地计算机或实例上测试和调试 EC2/Londest 部署。  | 
|  1.0.1.1106  |  2017 年 5 月 16 日  |  **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 **功能**：引入了对处理目标位置上的不作为来自最新成功部署的应用程序修订的一部分的内容的新支持。针对现有内容的部署选项现在包括保留内容、覆盖内容或使部署失败。 **增强**：使 CodeDeploy 代理与 2.9.2 版本的 适用于 Ruby 的 AWS SDK (aws-sdk-core2.9.2) 兼容。  | 
|  1.0.1.1095  |  2017 年 3 月 29 日  |  **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 **增强**：在中国（北京）地区引入了对 CodeDeploy 代理的支持。 **增强功能**：生命周期事件挂钩进行调用时，允许 Puppet 在 Windows Server 实例上运行。 **增强功能**：改进对 `untar` 操作的处理。  | 
| 1.0.1.1067 | 2017 年 1 月 6 日 |  **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 **增强功能**：修改了很多错误消息，以包含导致部署故障的更具体的原因。 **增强功能**：修复了在某些部署期间 CodeDeploy 代理无法识别要部署的正确应用程序修订的问题。 **增强功能**：恢复在 `untar` 操作之前和之后使用 `pushd` 和 `popd`。  | 
| 1.0.1.1045 | 2016 年 11 月 21 日 |  **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 **增强**：使 CodeDeploy 代理与 2.6.11 版本的 适用于 Ruby 的 AWS SDK (aws-sdk-core2.6.11) 兼容。  | 
| 1.0.1.1037 | 2016 年 10 月 19 日 |  **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 亚马逊 Linux、RHEL 和 Ubuntu 服务器实例的 CodeDeploy 代理已更新，其中包含以下更改。对于 Windows Server 实例，最新版本仍为 1.0.1.998。 **增强功能**：该代理现在可以确定哪个 Ruby 版本安装在实例上，以使它可以使用该版本调用 `codedeploy-agent` 脚本。  | 
| 1.0.1.1011.1 | 2016 年 8 月 17 日 |  **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 **增强功能**：删除了由于外壳支持问题而在 1.0.1.1011 版中引入的更改。此版本代理在功能上与 2016 年 7 月 11 日发布的 1.0.1.998 版相同。 | 
| 1.0.1.1011 | 2016 年 8 月 15 日 |  **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 亚马逊 Linux、RHEL 和 Ubuntu 服务器实例的 CodeDeploy 代理已更新，其中包含以下更改。对于 Windows Server 实例，最新版本仍为 1.0.1.998。**功能**：增加了对在使用 systemd init 系统的操作系统上使用 bash shell 调用 CodeDeploy 代理的支持。增强：在 CodeDeploy 代理和 CodeDeploy 代理更新程序中启用了对所有版本的 Ruby 2.x 的支持。更新的 CodeDeploy 代理不再仅依赖于 Ruby 2.0。（ CodeDeploy 代理安装程序的 deb 和 rpm 版本仍然需要 Ruby 2.0。） | 
| 1.0.1.998 | 2016 年 7 月 11 日 |  **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 **增强**：修复了对使用 *roo* t 用户以外的用户配置文件运行 CodeDeploy 代理的支持。名为 `USER` 的变量将被替换为 `CODEDEPLOY_USER`，以避免与环境变量发生冲突。  | 
| 1.0.1.966 | 2016 年 6 月 16 日 |  **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 **功能**：引入了对使用 *roo* t 用户以外的用户配置文件运行 CodeDeploy 代理的支持。 **增强功能**：修复了对指定您希望 CodeDeploy 代理为部署组存档的应用程序修订数量的支持。 **增强**：使 CodeDeploy 代理与 2.3 版本的 适用于 Ruby 的 AWS SDK (aws-sdk-core 2.3) 兼容。 **增强功能**：修复了与部署期间的 UTF-8 编码有关的问题。 **增强功能**：提高了标识进程名称时的准确性。  | 
| 1.0.1.950 | 2016 年 3 月 24 日 |  **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 **功能**：添加了安装代理支持。 **增强**：更新了安装脚本，使其在已安装最新版本时不下载 CodeDeploy 代理。  | 
| 1.0.1.934 | 2016 年 2 月 11 日 |  **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 **功能**：引入了对指定您要 CodeDeploy 代理为部署组存档的应用程序修订数量的支持。  | 
| 1.0.1.880 | 2016 年 1 月 11 日 | **注意**：此版本不再受支持，可能会导致部署失败。 **增强**：使 CodeDeploy 代理与 2.2 版本的 适用于 Ruby 的 AWS SDK (aws-sdk-core 2.2) 兼容。版本 2.1.2 仍受支持。  | 
| 1.0.1.854 | 2015 年 11 月 17 日 | **注意**：此版本不再受支持。如果您使用此版本，您的部署可能会失败。 **功能**：引入了对 SHA-256 哈希算法的支持。 **功能**：在 `.version` 文件中引入了版本跟踪支持。 **功能**：通过使用环境变量使部署组 ID 可用。 **增强**：增加了对使用 [Amazon 日志监控 CodeDeploy 代理 CloudWatch 日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html)的支持。  | 

有关相关信息，请参阅下列内容：
+ [确定 CodeDeploy 代理的版本](codedeploy-agent-operations-version.md)
+ [安装代 CodeDeploy 理](codedeploy-agent-operations-install.md)

有关 CodeDeploy 代理版本的历史记录，请参阅[上的 Release 存储库 GitHub](https://github.com/aws/aws-codedeploy-agent/releases)。

## 管理 CodeDeploy 流程
<a name="codedeploy-agent-processes"></a>

默认情况下， CodeDeploy 代理的所有 Linux 发行版（rpm 和 deb）都使用 [systemd](https://systemd.io/) 来管理代理进程。

但是，rpm 和 deb 发行版都附带了位于 `/etc/init.d/codedeploy-agent` 的启动脚本。根据您使用的发行版，在使用 `sudo service codedeploy-agent restart` 这样的命令时，可能会运行 `/etc/init.d` 中的脚本来启动代理进程，而不是允许 `systemd` 管理该进程。在 `/etc/init.d` 上运行脚本是不可取的。

为防止出现此问题，对于支持 `systemd` 的系统，我们建议使用 `systemctl` 实用程序进行任何代理操作，而不是使用 `service` 命令。

例如，要重新启动 CodeDeploy 代理，请使用`sudo systemctl restart codedeploy-agent`该`service`实用程序中的等效命令。

## 应用程序修订和日志文件清理
<a name="codedeploy-agent-revisions-logs-cleanup"></a>

 CodeDeploy 代理会存档实例上的修订和日志文件。 CodeDeploy 代理会清理这些工件以节省磁盘空间。

**应用程序修订部署日志**：您可以使用代理配置文件中的:max\$1revisions**: 选项**，通过输入任何正整数来指定要存档的应用程序修订数量。 CodeDeploy 还会存档这些修订的日志文件。所有其他文件将被删除，但上次成功部署的日志文件除外。该日志文件将始终保留，即使失败的部署数量超过保留的修订数量也是如此。如果未指定任何值，则除了当前部署的修订版外，还 CodeDeploy 保留五个最新的修订版。

**CodeDeploy 日志**：对于 Amazon Linux、Ubuntu Server 和 RHEL 实例， CodeDeploy 代理会轮换文件夹下的日志文件。`/var/log/aws/codedeploy-agent`日志文件将在每天 00:00:00（实例时间）轮换。日志文件会在七天后删除。已轮换日志文件的命名模式是 `codedeploy-agent.YYYYMMDD.log`。

## CodeDeploy 代理安装的文件
<a name="codedeploy-agent-install-files"></a>

 CodeDeploy 代理将修订、部署历史记录和部署脚本存储在实例的根目录中。该目录的默认名称和位置是：

对于 Amazon Linux、Ubuntu Server 和 RHEL 实例为 `'/opt/codedeploy-agent/deployment-root'`。

对于 Windows Server 实例为 `'C:\ProgramData\Amazon\CodeDeploy'`。

您可以使用 CodeDeploy 代理配置文件中的 **root\$1dir** 设置来配置目录的名称和位置。有关更多信息，请参阅 [CodeDeploy 代理配置参考](reference-agent-configuration.md)。

下面是根目录下文件和目录结构的示例。该结构假定有 N 个部署组，每个部署组包含 N 个部署。

```
|--deployment-root/
|-- deployment group 1 ID 
|    |-- deployment 1 ID 
|    |    |-- Contents and logs of the deployment's revision
|    |-- deployment 2 ID
|    |    |-- Contents and logs of the deployment's revision
|    |-- deployment N ID
|    |    |-- Contents and logs of the deployment's revision
|-- deployment group 2 ID
|    |-- deployment 1 ID
|    |    |-- bundle.tar
|    |    |-- deployment-archive
|    |    |    | -- contents of the deployment's revision
|    |    |-- logs
|    |    |    | -- scripts.log     
|    |-- deployment 2 ID
|    |    |-- bundle.tar
|    |    |-- deployment-archive
|    |    |    | -- contents of the deployment's revision
|    |    |-- logs
|    |    |    | -- scripts.log     
|    |-- deployment N ID
|    |    |-- bundle.tar
|    |    |-- deployment-archive
|    |    |    | -- contents of the deployment's revision
|    |    |-- logs
|    |    |    | -- scripts.log     
|-- deployment group N ID
|    |-- deployment 1 ID
|    |    |-- Contents and logs of the deployment's revision
|    |-- deployment 2 ID
|    |    |-- Contents and logs of the deployment's revision
|    |-- deployment N ID
|    |    |-- Contents and logs of the deployment's revision
|-- deployment-instructions
|    |-- [deployment group 1 ID]_cleanup
|    |-- [deployment group 2 ID]_cleanup
|    |-- [deployment group N ID]_cleanup
|    |-- [deployment group 1 ID]_install.json
|    |-- [deployment group 2 ID]_install.json
|    |-- [deployment group N ID]_install.json
|    |-- [deployment group 1 ID]_last_successful_install
|    |-- [deployment group 2 ID]_last_successful_install
|    |-- [deployment group N ID]_last_successful_install
|    |-- [deployment group 1 ID]_most_recent_install
|    |-- [deployment group 2 ID]_most_recent_install
|    |-- [deployment group N ID]_most_recent_install
|-- deployment-logs
|    |-- codedeploy-agent-deployments.log
```


+  **Deployment Group ID** 文件夹代表您的每个部署组。部署组目录的名称是其 ID（例如，`acde1916-9099-7caf-fd21-012345abcdef`）。每个部署组目录都包含该部署组中每次尝试的部署的一个子目录。

   您可以使用 [batch-get-deployments](https://docs.aws.amazon.com/cli/latest/reference/deploy/batch-get-deployments.html) 命令查找部署组 ID。
+  **Deployment ID** 文件夹代表部署组中的每个部署。每个部署目录的名称都是其 ID。每个文件夹都包含：
  +  **bundle.tar**，一个压缩文件，其中包含部署修订的内容。如果要查看修订，请使用 zip 解压实用程序。
  +  **deployment-archive**，一个目录，其中包含部署修订的内容。
  +  **logs**，一个包含 `scripts.log` 文件的目录。此文件列出了部署 AppSpec 文件中指定的所有脚本的输出。

   如果您想查找部署文件夹，但不知道其部署 ID 或部署组 ID，则可以使用[AWS CodeDeploy 控制台](https://console.aws.amazon.com/codedeploy)或 AWS CLI 来查找它们。有关更多信息，请参阅 [查看 CodeDeploy 部署详情](deployments-view-details.md)。

   部署组中可以存档的默认最大部署数为五个。达到该数量后，将来的部署将被存档，最旧的存档将被删除。您可以使用 CodeDeploy 代理配置文件中的 **max\$1re** visions 设置来更改默认值。有关更多信息，请参阅 [CodeDeploy 代理配置参考](reference-agent-configuration.md)。
**注意**  
 如果您想恢复已存档部署使用的硬盘空间，请将 **max\$1revisions** 设置更新为较低的数量，例如 1 或 2。下一次部署将删除已存档的部署，以便数量等于您指定的数量。
+  **deployment-instructions** 包含每个部署组的四个文本文件：
  + **[Deployment Group ID]-cleanup**，一个文本文件，其中包含部署期间运行的每个命令的撤消版本。示例文件名为 `acde1916-9099-7caf-fd21-012345abcdef-cleanup`。
  + **[Deployment Group ID]-install.json**，在最近的部署过程中创建的 JSON 文件。它包含部署期间运行的命令。示例文件名为 `acde1916-9099-7caf-fd21-012345abcdef-install.json`。
  + **[Deployment Group ID]\$1last\$1successfull\$1install**，一个文本文件，其中列出了上次成功部署的存档目录。此文件是在 CodeDeploy 代理将部署应用程序中的所有文件复制到实例时创建的。 CodeDeploy 代理在下次部署时使用它来确定要运行的`BeforeInstall`脚本`ApplicationStop`和脚本。示例文件名为 `acde1916-9099-7caf-fd21-012345abcdef_last_successfull_install`。
  + **[Deployment Group ID]\$1most\$1recent\$1install**，一个文本文件，其中列出了最近一次部署的存档目录的名称。该文件在部署中的文件成功下载时创建。[deployment group ID]\$1last\$1successfull\$1install 文件在该文件之后创建，即下载的文件被复制到其最终目的地时。示例文件名为 `acde1916-9099-7caf-fd21-012345abcdef_most_recent_install`。
+  **deployment-logs** 包含以下日志文件：
  +  **codedeploy-agent.yyyymmdd.log** 文件按天创建，只要当天发生部署活动，就会创建该文件。每个日志文件都包含有关当天部署的信息。这些日志文件可能对调试权限问题等很有用。日志文件最初名为 `codedeploy-agent.log`。第二天，其部署日期将被插入到文件名中。例如，如果今天是 2018 年 1 月 3 日，您可以在 `codedeploy-agent.log` 中看到有关今天的所有部署的信息。明天，也就是 2018 年 1 月 4 日，日志文件将重命名为 `codedeploy-agent.20180103.log`。
  +  **codedeploy-agent-deployments.log** 为每个部署编译`scripts.log`文件内容。`scripts.log` 文件位于每个 `logs` 文件夹下的 `Deployment ID` 子文件夹中。此文件中的条目前面带有部署 ID。例如，“`[d-ABCDEF123]LifecycleEvent - BeforeInstall`”可能是在 ID 为 `d-ABCDEF123` 的部署期间写入的。当`codedeploy-agent-deployments.log`达到其最大大小时， CodeDeploy 代理会继续向其写入内容，同时删除旧内容。

# 管理 CodeDeploy 代理操作
<a name="codedeploy-agent-operations"></a>

本节中的说明向您展示如何安装、卸载、重新安装或更新 CodeDeploy 代理，以及如何验证 CodeDeploy 代理是否正在运行。

**Topics**
+ [

# 验证 CodeDeploy 代理是否正在运行
](codedeploy-agent-operations-verify.md)
+ [

# 确定 CodeDeploy 代理的版本
](codedeploy-agent-operations-version.md)
+ [

# 安装代 CodeDeploy 理
](codedeploy-agent-operations-install.md)
+ [

# 更新代 CodeDeploy 理
](codedeploy-agent-operations-update.md)
+ [

# 卸载代 CodeDeploy 理
](codedeploy-agent-operations-uninstall.md)
+ [

# 将 CodeDeploy 代理日志发送到 CloudWatch
](codedeploy-agent-operations-cloudwatch-agent.md)

# 验证 CodeDeploy 代理是否正在运行
<a name="codedeploy-agent-operations-verify"></a>

本节介绍在您怀疑 CodeDeploy 代理已停止在实例上运行时要运行的命令。

**Topics**
+ [

## 验证 Amazon Linux 或 RHEL 的 CodeDeploy 代理是否正在运行
](#codedeploy-agent-operations-verify-linux)
+ [

## 验证 Ubuntu 服务器的 CodeDeploy 代理是否正在运行
](#codedeploy-agent-operations-verify-ubuntu)
+ [

## 验证 Windows 服务器的 CodeDeploy 代理是否正在运行
](#codedeploy-agent-operations-verify-windows)

## 验证 Amazon Linux 或 RHEL 的 CodeDeploy 代理是否正在运行
<a name="codedeploy-agent-operations-verify-linux"></a>

要查看 CodeDeploy 代理是否已安装并正在运行，请登录实例，然后运行以下命令：

```
systemctl status codedeploy-agent
```

如果命令返回错误，则表示未安装 CodeDeploy 代理。请按照[安装适用于亚马逊 Linux 或 RHEL 的 CodeDeploy 代理](codedeploy-agent-operations-install-linux.md)中所述进行安装。

如果 CodeDeploy 代理已安装并正在运行，您应该会看到类似的消息`The AWS CodeDeploy agent is running`。

如果您看到类似于 `error: No AWS CodeDeploy agent running` 的消息，请启动该服务并依次运行以下两个命令：

```
systemctl start codedeploy-agent
```

```
systemctl status codedeploy-agent
```

## 验证 Ubuntu 服务器的 CodeDeploy 代理是否正在运行
<a name="codedeploy-agent-operations-verify-ubuntu"></a>

要查看 CodeDeploy 代理是否已安装并正在运行，请登录实例，然后运行以下命令：

```
systemctl status codedeploy-agent
```

如果命令返回错误，则表示未安装 CodeDeploy 代理。请按照[为 Ubuntu 服务器安装 CodeDeploy 代理](codedeploy-agent-operations-install-ubuntu.md)中所述进行安装。

如果 CodeDeploy 代理已安装并正在运行，您应该会看到类似的消息`The AWS CodeDeploy agent is running`。

如果您看到类似于 `error: No AWS CodeDeploy agent running` 的消息，请启动该服务并依次运行以下两个命令：

```
systemctl start codedeploy-agent
```

```
systemctl status codedeploy-agent
```

## 验证 Windows 服务器的 CodeDeploy 代理是否正在运行
<a name="codedeploy-agent-operations-verify-windows"></a>

要查看 CodeDeploy 代理是否已安装并正在运行，请登录实例，然后运行以下命令：

```
powershell.exe -Command Get-Service -Name codedeployagent
```

您应该可以看到类似于如下所示的输出内容：

```
Status   Name               DisplayName
------   ----               -----------
Running codedeployagent    CodeDeploy Host Agent Service
```

如果命令返回错误，则表示未安装 CodeDeploy 代理。请按照[安装适用于 Windows 服务器的 CodeDeploy 代理](codedeploy-agent-operations-install-windows.md)中所述进行安装。

如果 `Status` 显示除 `Running` 外的任何内容，请使用以下命令启动该服务：

```
powershell.exe -Command Start-Service -Name codedeployagent
```

您可以使用以下命令重新启动该服务：

```
powershell.exe -Command Restart-Service -Name codedeployagent
```

您可以使用以下命令停止该服务：

```
powershell.exe -Command Stop-Service -Name codedeployagent
```

# 确定 CodeDeploy 代理的版本
<a name="codedeploy-agent-operations-version"></a>

您可以通过两种方式确定在您的实例上运行的 CodeDeploy 代理的版本。

首先，从 CodeDeploy 代理的 1.0.1.854 版本开始，您可以在实例上的`.version`文件中查看版本号。下表显示了每个受支持的操作系统的位置和示例版本字符串。


| 操作系统 | 文件位置 | 示例 agent\$1version 字符串 | 
| --- | --- | --- | 
| Amazon Linux 和 Red Hat Enterprise Linux（RHEL） | /opt/codedeploy-agent/.version | OFFICIAL\$11.0.1.854\$1rpm | 
| Ubuntu Server | /opt/codedeploy-agent/.version | OFFICIAL\$11.0.1.854\$1deb | 
| Windows Server | C:\$1ProgramData\$1Amazon\$1CodeDeploy\$1.version | OFFICIAL\$11.0.1.854\$1msi | 

其次，您可以在实例上运行命令来确定 CodeDeploy 代理的版本。

**Topics**
+ [

## 确定 Amazon Linux 或 RHEL 上的版本
](#codedeploy-agent-operations-version-linux)
+ [

## 确定 Ubuntu Server 上的版本
](#codedeploy-agent-operations-version-ubuntu)
+ [

## 确定 Windows Server 上的版本
](#codedeploy-agent-operations-version-windows)

## 确定 Amazon Linux 或 RHEL 上的版本
<a name="codedeploy-agent-operations-version-linux"></a>

登录到实例并运行以下命令：

```
sudo yum info codedeploy-agent
```

## 确定 Ubuntu Server 上的版本
<a name="codedeploy-agent-operations-version-ubuntu"></a>

登录到实例并运行以下命令：

```
sudo dpkg -s codedeploy-agent
```

## 确定 Windows Server 上的版本
<a name="codedeploy-agent-operations-version-windows"></a>

登录到实例并运行以下命令：

```
sc qdescription codedeployagent
```

# 安装代 CodeDeploy 理
<a name="codedeploy-agent-operations-install"></a>

要 CodeDeploy 在 EC2 实例或本地服务器上使用，必须先安装 CodeDeploy 代理。我们建议使用安装和更新 CodeDeploy 代理 AWS Systems Manager。有关 Systems Manager 的详细信息，请参阅[什么是 AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)。创建部署组时，可以在控制台中使用 Systems Manager 设置 CodeDeploy代理的安装和预设更新。

您也可以使用命令行直接从 S3 存储桶安装 CodeDeploy 代理。

有关要安装的推荐版本，请参阅[CodeDeploy 代理的版本历史记录](codedeploy-agent.md#codedeploy-agent-version-history)。

**Topics**
+ [

# 使用安装 CodeDeploy 代理 AWS Systems Manager
](codedeploy-agent-operations-install-ssm.md)
+ [

# 使用命令行安装 CodeDeploy 代理
](codedeploy-agent-operations-install-cli.md)

# 使用安装 CodeDeploy 代理 AWS Systems Manager
<a name="codedeploy-agent-operations-install-ssm"></a>

您可以使用 AWS 管理控制台 或将 CodeDeploy 代理安装 AWS CLI 到您的 Amazon EC2 或本地实例 AWS Systems Manager。您可以选择安装特定版本或选择始终安装最新版本的代理。有关的更多信息 AWS Systems Manager，请参阅[什么是 AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)。

 安装和更新 CodeDeploy 代理的推荐方法 AWS Systems Manager 是使用。您也可以从 Amazon S3 存储桶安装 CodeDeploy 代理。有关使用 Amazon S3 下载链接的信息，请参阅 [使用命令行安装 CodeDeploy 代理](codedeploy-agent-operations-install-cli.md)。

**Topics**
+ [

## 先决条件
](#install-codedeploy-agent-prereqs)
+ [

## 安装代 CodeDeploy 理
](#download-codedeploy-agent-on-EC2-Instance)

## 先决条件
<a name="install-codedeploy-agent-prereqs"></a>

按照 [入门 CodeDeploy](getting-started-codedeploy.md) 中的步骤设置 IAM 权限和 AWS CLI。

如果使用 System CodeDeploy s Manager 在本地服务器上安装代理，则必须向 Amazon EC2 Systems Manager 注册本地服务器。有关更多信息，请参阅《AWS Systems Manager 用户指南》**中的[在混合环境中设置 Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html)。

## 安装代 CodeDeploy 理
<a name="download-codedeploy-agent-on-EC2-Instance"></a>

在使用 Systems Manager 安装 CodeDeploy 代理之前，必须确保已为系统管理器正确配置实例。

### 安装或更新 SSM Agent
<a name="update-SSM-Agent-EC2instance"></a>

在 Amazon EC2 实例上， CodeDeploy 代理要求该实例运行版本 2.3.274.0 或更高版本。在安装 CodeDeploy 代理之前，请先在实例上更新或安装 SSM 代理（如果您尚未这样做）。

SSM 代理已预安装在由 AMIs 提供的某些 Amazon EC2 上。 AWS有关更多信息，请参阅[预装了 SSM 代理的 Amazon 系统映像 (AMIs)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html)。

**注意**  
确保 CodeDeploy代理也支持实例的操作系统。有关更多信息，请参阅 [CodeDeploy 代理支持的操作系统](codedeploy-agent.md#codedeploy-agent-supported-operating-systems)。

有关在运行 Linux 的实例上安装或更新 SSM 代理的信息，请参阅《AWS Systems Manager 用户指南》**中的[在 Linux 实例上安装和配置 SSM 代理](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-agent.html)。

有关在运行 Windows 服务器的实例上安装或更新 SSM 代理的信息，请参阅《AWS Systems Manager 用户指南》**中的[在 Windows 实例上安装和配置 SSM 代理](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-win.html)。

### （可选）验证 Systems Manager 的先决条件
<a name="install-codedeploy-agent-minimum-requirements"></a>

在使用 Systems Manager 运行命令安装 CodeDeploy 代理之前，请验证您的实例是否满足 Systems Manager 的最低要求。有关更多信息，请参阅《AWS Systems Manager 用户指南》**中的[设置 AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html)。

### 安装代 CodeDeploy 理
<a name="install-codedeploy-agent-EC2"></a>

使用 SSM，您可以 CodeDeploy 一次安装或设置安装新版本的时间表。

 要安装 CodeDeploy 代理，请在按照 dist [AWS Systems Manager ributor 安装或更新软件包中的步骤选择软件包](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-deploy.html)。`AWSCodeDeployAgent`

# 使用命令行安装 CodeDeploy 代理
<a name="codedeploy-agent-operations-install-cli"></a>

**注意**  
我们建议使用安装 CodeDeploy 代理 AWS Systems Manager ，以便能够配置代理的预设更新。有关更多信息，请参阅 [使用安装 CodeDeploy 代理 AWS Systems Manager](codedeploy-agent-operations-install-ssm.md)。

使用以下主题通过命令行安装和运行 CodeDeploy 代理。

**Topics**
+ [

# 安装适用于亚马逊 Linux 或 RHEL 的 CodeDeploy 代理
](codedeploy-agent-operations-install-linux.md)
+ [

# 为 Ubuntu 服务器安装 CodeDeploy 代理
](codedeploy-agent-operations-install-ubuntu.md)
+ [

# 安装适用于 Windows 服务器的 CodeDeploy 代理
](codedeploy-agent-operations-install-windows.md)

# 安装适用于亚马逊 Linux 或 RHEL 的 CodeDeploy 代理
<a name="codedeploy-agent-operations-install-linux"></a>

登录到实例，并依次运行以下命令。首先运行命令 `sudo yum update` 被认为是使用 `yum` 安装软件包的最佳做法，但如果您不想更新所有软件包，也可以跳过它。

```
sudo yum update
```

```
sudo yum install ruby
```

```
sudo yum install wget
```

（可选）要清理 AMI 中以前的代理缓存信息，请运行以下脚本：

```
#!/bin/bash
CODEDEPLOY_BIN="/opt/codedeploy-agent/bin/codedeploy-agent"
$CODEDEPLOY_BIN stop
yum erase codedeploy-agent -y
```

转到您的主目录：

```
cd /home/ec2-user
```

**注意**  
在前面的命令中，`/home/ec2-user` 表示 Amazon Linux 或 RHEL Amazon EC2 实例的默认用户名。如果您的实例是使用某个自定义 AMI 创建的，该 AMI 所有者可能已指定不同的默认用户名。

下载 CodeDeploy 代理安装程序：

```
wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install
```

*bucket-name*是包含您所在地区的 CodeDeploy 资源包文件的 Amazon S3 存储桶的名称，*region-identifier*也是您所在地区的标识符。

例如：

`https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install`

有关存储桶名称和区域标识符的列表，请参阅[各区域的资源工具包存储桶名称](resource-kit.md#resource-kit-bucket-names)。

为 `install` 文件设置执行权限：

```
chmod +x ./install
```

要安装最新版本的 CodeDeploy 代理，请执行以下操作：
+ 

  ```
  sudo ./install auto
  ```

要安装特定版本的 CodeDeploy 代理，请执行以下操作：
+ 列出您所在区域的可用版本：

  ```
  aws s3 ls s3://aws-codedeploy-region-identifier/releases/ --region region-identifier | grep '\.rpm$'
  ```
+ 安装以下版本之一：

  ```
  sudo ./install auto -v releases/codedeploy-agent-version.noarch.rpm
  ```
**注意**  
AWS 支持 CodeDeploy 代理的最新次要版本。目前，最新的次要版本是 1.7.x。

要检查服务是否正在运行，请运行以下命令：

```
systemctl status codedeploy-agent
```

如果 CodeDeploy 代理已安装并正在运行，您应该会看到类似的消息`The AWS CodeDeploy agent is running`。

如果您看到类似于 `error: No AWS CodeDeploy agent running` 的消息，请启动该服务并依次运行以下两个命令：

```
systemctl start codedeploy-agent
```

```
systemctl status codedeploy-agent
```

# 为 Ubuntu 服务器安装 CodeDeploy 代理
<a name="codedeploy-agent-operations-install-ubuntu"></a>

**注意**  
我们建议使用安装 CodeDeploy 代理 AWS Systems Manager ，以便能够配置代理的预设更新。有关更多信息，请参阅 [使用安装 CodeDeploy 代理 AWS Systems Manager](codedeploy-agent-operations-install-ssm.md)。

**在 Ubuntu CodeDeploy 服务器上安装代理**

1. 登录到实例。

1. 依次输入以下命令：

   ```
   sudo apt update
   ```

   ```
   sudo apt install ruby-full
   ```

   ```
   sudo apt install wget
   ```

1. 输入以下命令：

   ```
   cd /home/ubuntu
   ```

   */home/ubuntu*表示 Ubuntu 服务器实例的默认用户名。如果您的实例是使用某个自定义 AMI 创建的，该 AMI 所有者可能已指定不同的默认用户名。

1. 输入以下命令：

   ```
   wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install
   ```

   *bucket-name*是包含您所在地区的 CodeDeploy 资源包文件的 Amazon S3 存储桶的名称，*region-identifier*也是您所在地区的标识符。

   例如：

   `https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install`

   有关存储桶名称和区域标识符的列表，请参阅[各区域的资源工具包存储桶名称](resource-kit.md#resource-kit-bucket-names)。

1. 输入以下命令：

   ```
   chmod +x ./install
   ```

1. 请执行以下操作之一：
   + 要在 Ubuntu 服务器支持的任何版本（20.04 *除外*）上安装最新版本的 CodeDeploy 代理，请执行以下操作：

     ```
     sudo ./install auto
     ```
   + 要在 Ubuntu Server 20.04 上安装最新版本的 CodeDeploy 代理，请执行以下操作：
**注意**  
将输出写入临时日志文件是一种变通方法，当我们在 Ubuntu Server 20.04 上解决 `install` 脚本的一个已知错误时，应该使用这种方法。

     ```
     sudo ./install auto > /tmp/logfile
     ```
   + 要在任何支持的 Ubuntu 服务器版本（20.04 *除外*）上安装特定版本的 CodeDeploy 代理，请执行以下操作：
     + 列出您所在区域的可用版本：

       ```
       aws s3 ls s3://aws-codedeploy-region-identifier/releases/ --region region-identifier | grep '\.deb$'
       ```
     + 安装以下版本之一：

       ```
       sudo ./install auto -v releases/codedeploy-agent-###.deb
       ```
**注意**  
AWS 支持 CodeDeploy 代理的最新次要版本。目前，最新的次要版本是 1.7.x。
   + 要在 Ubuntu Server 20.04 上安装特定版本的 CodeDeploy 代理，请执行以下操作：
     + 列出您所在区域的可用版本：

       ```
       aws s3 ls s3://aws-codedeploy-region-identifier/releases/ --region region-identifier | grep '\.deb$'
       ```
     + 安装以下版本之一：

       ```
       sudo ./install auto -v releases/codedeploy-agent-###.deb > /tmp/logfile
       ```
**注意**  
将输出写入临时日志文件是一种变通方法，当我们在 Ubuntu Server 20.04 上解决 `install` 脚本的一个已知错误时，应该使用这种方法。
**注意**  
AWS 支持 CodeDeploy 代理的最新次要版本。目前，最新的次要版本是 1.7.x。

**检查服务是否正在运行**

1. 输入以下命令：

   ```
   systemctl status codedeploy-agent
   ```

   如果 CodeDeploy 代理已安装并正在运行，您应该会看到类似的消息`The AWS CodeDeploy agent is running`。

1. 如果您看到类似于 `error: No AWS CodeDeploy agent running` 的消息，请启动该服务并依次运行以下两个命令：

   ```
   systemctl start codedeploy-agent
   ```

   ```
   systemctl status codedeploy-agent
   ```

# 安装适用于 Windows 服务器的 CodeDeploy 代理
<a name="codedeploy-agent-operations-install-windows"></a>

在 Windows 服务器实例上，您可以使用以下方法之一来下载和安装 CodeDeploy 代理：
+ 使用 AWS Systems Manager （推荐）
+ 运行一系列 Windows PowerShell 命令。
+ 选择直接下载链接。
+ 运行 Amazon S3 复制命令。

**注意**  
安装 CodeDeploy 代理的文件夹是`C:\Program Data\Amazon\CodeDeploy`。确保此路径上没有目录连接或符号链接。

**Topics**
+ [

## 使用 Systems Manager
](#codedeploy-agent-operations-install-system-manager)
+ [

## 使用 Windows PowerShell
](#codedeploy-agent-operations-install-windows-powershell)
+ [

## 使用直接链接
](#codedeploy-agent-operations-install-windows-direct-link)
+ [

## 使用 Amazon S3 复制命令
](#codedeploy-agent-operations-install-windows-s3-copy)

## 使用 Systems Manager
<a name="codedeploy-agent-operations-install-system-manager"></a>

按照中的[使用安装 CodeDeploy 代理 AWS Systems Manager](codedeploy-agent-operations-install-ssm.md)说明安装代 CodeDeploy理。

## 使用 Windows PowerShell
<a name="codedeploy-agent-operations-install-windows-powershell"></a>

登录到该实例，然后在 Windows 中运行以下命令 PowerShell：

1.  要求从 Internet 下载的所有脚本和配置文件由可信发布者签名。如果系统提示您更改执行策略，请键入“**Y**”。

   ```
    Set-ExecutionPolicy RemoteSigned
   ```

1.  加载 AWS Tools for Windows PowerShell.

   ```
   Import-Module AWSPowerShell
   ```

1.  创建一个下载 CodeDeploy 代理安装文件的目录。

   ```
   New-Item -Path "c:\temp" -ItemType "directory" -Force
   ```

1. 使用`Set-AWSCredential`和`Initialize-AWSDefaultConfiguration`命令配置 AWS 凭证。有关更多信息，请参阅《* PowerShell 用户指南》AWS 工具*中的[使用 AWS 凭证](https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html)。

1.  下载 CodeDeploy 代理安装文件。
**注意**  
AWS 支持 CodeDeploy 代理的最新次要版本。目前，最新的次要版本是 1.7.x。

   要安装最新版本的 CodeDeploy代理，请执行以下操作：
   + 

     ```
     powershell.exe -Command Read-S3Object -BucketName bucket-name -Key latest/codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi
     ```

   要安装特定版本的 CodeDeploy代理，请执行以下操作：
   + 

     ```
     powershell.exe -Command Read-S3Object -BucketName bucket-name -Key releases/codedeploy-agent-###.msi -File c:\temp\codedeploy-agent.msi
     ```

   *bucket-name*是包含您所在地区的 CodeDeploy 资源包文件的 Amazon S3 存储桶的名称。例如，对于美国东部（俄亥俄州）区域，请*bucket-name*替换为`aws-codedeploy-us-east-2`。有关存储桶名称的列表，请参阅[各区域的资源工具包存储桶名称](resource-kit.md#resource-kit-bucket-names)。

1.  运行 CodeDeploy 代理安装文件。

   ```
   c:\temp\codedeploy-agent.msi /quiet /l c:\temp\host-agent-install-log.txt
   ```

要检查服务是否正在运行，请运行以下命令：

```
powershell.exe -Command Get-Service -Name codedeployagent
```

 如果 CodeDeploy 代理刚刚安装且尚未启动，则在运行**Get-Service**命令后，在 “**状态**” 下，您应该会看到**Start...**：

```
Status     Name                DisplayName
------     ----                -----------
Start...   codedeployagent    CodeDeploy Host Agent Service
```

如果 CodeDeploy 代理已经在运行，则在运行**Get-Service**命令后，在 “**状态**” 下，您应该会看到**Running**：

```
Status     Name                DisplayName
------     ----                -----------
Running    codedeployagent    CodeDeploy Host Agent Service
```

## 使用直接链接
<a name="codedeploy-agent-operations-install-windows-direct-link"></a>

如果 Windows Server 实例上的浏览器安全设置提供了权限（例如，向`https://s3.*.amazonaws.com`），则可以使用您所在地区的直接链接下载 CodeDeploy 代理，然后手动运行安装程序。

链接是：

```
https://s3.region.amazonaws.com/aws-codedeploy-region/latest/codedeploy-agent.msi
```

... 您要部署应用程序的 AWS 区域在哪里。*region*

例如：

```
https://s3.af-south-1.amazonaws.com/aws-codedeploy-af-south-1/latest/codedeploy-agent.msi
```

**重要**  
从与您的 CodeDeploy应用程序相同的地区获取`.msi`文件。选择不同的区域可能会导致运行 `.msi` 文件时 `codedeploy-agent-log` 文件中出现 `inconsistent region` 错误。

## 使用 Amazon S3 复制命令
<a name="codedeploy-agent-operations-install-windows-s3-copy"></a>

如果实例上安装了，则可以使用 Amazon S3 [cp](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) 命令下载 CodeDeploy 代理，然后手动运行安装程序。 AWS CLI 有关信息，请参阅[AWS Command Line Interface 在微软 Windows 上安装](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html)。

Amazon S3 命令是：

```
aws s3 cp s3://aws-codedeploy-region/latest/codedeploy-agent.msi codedeploy-agent.msi --region region
```

... 您要部署应用程序的 AWS 区域在哪里。*region*

例如：

```
aws s3 cp s3://aws-codedeploy-af-south-1/latest/codedeploy-agent.msi codedeploy-agent.msi --region af-south-1
```

# 更新代 CodeDeploy 理
<a name="codedeploy-agent-operations-update"></a>

您可以使用在所有支持的操作系统上配置 CodeDeploy 代理的自动预设更新 AWS Systems Manager。您也可以通过在实例上运行命令来在所有受支持的操作系统上进行强制更新。

**Topics**
+ [

# 在 Amazon Linux 或 RHEL 上更新 CodeDeploy 代理
](codedeploy-agent-operations-update-linux.md)
+ [

# 更新 Ubuntu CodeDeploy 服务器上的代理
](codedeploy-agent-operations-update-ubuntu.md)
+ [

# 在 Windows 服务器上更新 CodeDeploy 代理
](codedeploy-agent-operations-update-windows.md)

# 在 Amazon Linux 或 RHEL 上更新 CodeDeploy 代理
<a name="codedeploy-agent-operations-update-linux"></a>

要使用配置 CodeDeploy 代理的自动预设更新 AWS Systems Manager，请按照[安装 CodeDeploy 代理中的步骤进行](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ssm.html)操作 AWS Systems Manager。

如果要强制更新 CodeDeploy 代理，请登录实例，然后运行以下命令：

```
sudo /opt/codedeploy-agent/bin/install auto
```

# 更新 Ubuntu CodeDeploy 服务器上的代理
<a name="codedeploy-agent-operations-update-ubuntu"></a>

要使用配置 CodeDeploy 代理的自动预设更新 AWS Systems Manager，请按照[安装 CodeDeploy 代理中的步骤进行](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ssm.html)操作 AWS Systems Manager。

如果要强制更新 CodeDeploy 代理，请登录实例，然后运行以下命令：

```
sudo /opt/codedeploy-agent/bin/install auto
```

# 在 Windows 服务器上更新 CodeDeploy 代理
<a name="codedeploy-agent-operations-update-windows"></a>

您可以使用启用 CodeDeploy 代理的自动更新 AWS Systems Manager。通过使用 Systems Manager，您可以通过创建与 Systems Manager 状态管理器的关联来为您的 Amazon EC2 或本地实例配置更新计划。您也可以通过卸载当前版本并安装较新的版本来手动更新 CodeDeploy 代理。

**Topics**
+ [

## 使用设置自动 CodeDeploy 代理更新 AWS Systems Manager
](#codedeploy-agent-operations-update-windows-ssm)
+ [

## 手动更新 CodeDeploy 代理
](#codedeploy-agent-operations-update-windows-manual)
+ [

## （已弃用）使用 Windows 服务器更新程序更新 CodeDeploy 代理
](#codedeploy-agent-operations-update-windows-updater)

## 使用设置自动 CodeDeploy 代理更新 AWS Systems Manager
<a name="codedeploy-agent-operations-update-windows-ssm"></a>

要配置 Systems Manager 并启用 CodeDeploy 代理的自动更新，请按照[使用安装 CodeDeploy 代理中的](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ssm.html)说明进行操作 AWS Systems Manager。

## 手动更新 CodeDeploy 代理
<a name="codedeploy-agent-operations-update-windows-manual"></a>

要手动更新 CodeDeploy 代理，可以从 CLI 或使用 Systems Manager 安装最新版本。按照[安装 CodeDeploy 代理](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html)中的说明进行操作。建议您按照卸载 CodeDeploy 代理中的说明卸[载该 CodeDeploy代理的](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-uninstall.html)旧版本。

## （已弃用）使用 Windows 服务器更新程序更新 CodeDeploy 代理
<a name="codedeploy-agent-operations-update-windows-updater"></a>

**注意**  
Windows Server 的 CodeDeploy 代理更新程序已被弃用，并且不会更新到 1.0.1.1597 之后的任何版本。

要启用 CodeDeploy 代理的自动更新，请在新的或现有实例上安装适用于 Windows Server 的 CodeDeploy 代理更新程序。更新程序定期检查新版本。当检测到新版本时，更新程序将在安装最新版本之前，卸载当前版本的代理（如果已安装）。

如果在更新程序检测到新版本时部署操作已在进行中，则部署操作将会继续完成。如果尝试在更新过程中启动部署操作，则部署操作将失败。

如果要强制更新 CodeDeploy 代理，请按照中的说明进行操作[安装适用于 Windows 服务器的 CodeDeploy 代理](codedeploy-agent-operations-install-windows.md)。

在 Windows 服务器实例上，您可以通过运行 Windows PowerShell 命令、使用直接下载链接或运行 Amazon S3 复制命令来下载和安装 CodeDeploy 代理更新程序。

**Topics**
+ [

### 使用 Windows PowerShell
](#codedeploy-agent-operations-update-windows-powershell)
+ [

### 使用直接链接
](#codedeploy-agent-operations-update-windows-direct-link)
+ [

### 使用 Amazon S3 复制命令
](#codedeploy-agent-operations-update-windows-s3-copy)

### 使用 Windows PowerShell
<a name="codedeploy-agent-operations-update-windows-powershell"></a>

登录实例，然后在 Windows PowerShell 中逐一运行以下命令：

```
Set-ExecutionPolicy RemoteSigned
```

 如果系统提示你更改执行策略，**Y**请选择 Windows PowerShell 要求所有从 Internet 下载的脚本和配置文件都由受信任的发布者签名。

```
Import-Module AWSPowerShell
```

```
New-Item -Path "c:\temp" -ItemType "directory" -Force
```

```
powershell.exe -Command Read-S3Object -BucketName bucket-name -Key latest/codedeploy-agent-updater.msi -File c:\temp\codedeploy-agent-updater.msi
```

```
c:\temp\codedeploy-agent-updater.msi /quiet /l c:\temp\host-agent-updater-log.txt
```

```
powershell.exe -Command Get-Service -Name codedeployagent
```

*bucket-name*是包含您所在地区的 CodeDeploy 资源包文件的 Amazon S3 存储桶的名称。例如，对于美国东部（俄亥俄州）区域，请*bucket-name*替换为`aws-codedeploy-us-east-2`。有关存储桶名称的列表，请参阅[各区域的资源工具包存储桶名称](resource-kit.md#resource-kit-bucket-names)。

如果需要对更新过程错误进行故障排除，请键入以下命令打开 CodeDeploy 代理更新程序日志文件：

```
notepad C:\ProgramData\Amazon\CodeDeployUpdater\log\codedeploy-agent.updater.log
```

### 使用直接链接
<a name="codedeploy-agent-operations-update-windows-direct-link"></a>

如果 Windows Server 实例上的浏览器安全设置提供了所需的权限（例如，向 ` http://s3.*.amazonaws.com `），则可以使用直接链接下载 CodeDeploy 代理更新程序。

链接是：

```
https://s3.region.amazonaws.com/aws-codedeploy-region/latest/codedeploy-agent-updater.msi
```

... 您要更新应用程序的 AWS 区域在哪里。*region*

例如：

```
https://s3.af-south-1.amazonaws.com/aws-codedeploy-af-south-1/latest/codedeploy-agent-updater.msi
```

### 使用 Amazon S3 复制命令
<a name="codedeploy-agent-operations-update-windows-s3-copy"></a>

如果实例上安装了，则可以使用 Amazon S3 [cp](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) 命令下载 CodeDeploy 代理更新程序，然后手动运行安装程序。 AWS CLI 有关信息，请参阅[AWS Command Line Interface 在微软 Windows 上安装](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html)。

Amazon S3 命令是：

```
aws s3 cp s3://aws-codedeploy-region/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi --region region
```

... 您要更新应用程序的 AWS 区域在哪里。*region*

例如：

```
aws s3 cp s3://aws-codedeploy-af-south-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi --region af-south-1
```

# 卸载代 CodeDeploy 理
<a name="codedeploy-agent-operations-uninstall"></a>

当不再需要 CodeDeploy 代理或想要执行全新安装时，可以将其从实例中删除。

## 从 Amazon Linux 或 RHEL 上卸载 CodeDeploy 代理
<a name="codedeploy-agent-operations-uninstall-linux"></a>

要卸载 CodeDeploy 代理，请登录实例并运行以下命令：

```
sudo yum erase codedeploy-agent
```

## 从 Ubuntu 服务器上卸载 CodeDeploy 代理
<a name="codedeploy-agent-operations-uninstall-ubuntu"></a>

要卸载 CodeDeploy 代理，请登录实例并运行以下命令：

```
sudo dpkg --purge codedeploy-agent
```

## 从 Windows 服务器上卸载 CodeDeploy 代理
<a name="codedeploy-agent-operations-uninstall-windows"></a>

要卸载 CodeDeploy 代理，请登录实例并运行以下三个命令，一次运行一个：

```
wmic
```

```
product where name="CodeDeploy Host Agent" call uninstall /nointeractive
```

```
exit
```

您也可以登录实例，然后在 “**控制面板” 中打开 “**程序和功能**”**，选择 **CodeDeploy Host Agent**，然后选择 “**卸载**”。

# 将 CodeDeploy 代理日志发送到 CloudWatch
<a name="codedeploy-agent-operations-cloudwatch-agent"></a>

您可以使用[统一 CodeDeploy 代理，或者更简单地说， CloudWatch 使用 CloudWatch 代理，向代理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/UseCloudWatchUnifiedAgent.html)发送 CloudWatch 代理指标和日志数据。

按照以下说明安装 CloudWatch 代理并将其配置为与 CodeDeploy代理一起使用。

## 先决条件
<a name="codedeploy-agent-operations-cloudwatch-prerequisites"></a>

开始之前，完成以下任务：
+ 安装 CodeDeploy 代理并确保其正在运行。有关更多信息，请参阅[安装代 CodeDeploy 理](codedeploy-agent-operations-install.md)和[验证 CodeDeploy 代理是否正在运行](codedeploy-agent-operations-verify.md)。
+ 安装代 CloudWatch 理。有关更多信息，请参阅[安装代 CloudWatch 理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html)。
+ 向 CodeDeploy IAM 实例配置文件添加以下权限：
  + CloudWatchLogsFullAccess
  + CloudWatchAgentServerPolicy

  有关 CodeDeploy 实例配置文件的更多信息，请参阅[步骤 4：为 Amazon EC2 实例创建 IAM 实例配置文件](getting-started-create-iam-instance-profile.md)[入门 CodeDeploy](getting-started-codedeploy.md)。

## 将 CloudWatch 代理配置为收集 CodeDeploy 日志
<a name="codedeploy-agent-operations-cloudwatch-configure"></a>

您可以通过逐步执行向导或手动创建或编辑配置文件来配置 CloudWatch 代理。

**使用向导配置 CloudWatch 代理 (Linux)**

1. 按照运行[ CloudWatch 代理配置向导中所述运行向导](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html#cloudwatch-agent-running-wizard)。

1. 在向导中，当系统询问 `Do you want to monitor any log files?` 时，输入 **1**。

1. 指定 CodeDeploy 代理日志文件，如下所示：

   1. `Log file path`输入 CodeDeploy 日志文件的路径，例如：**/var/log/aws/codedeploy-agent/codedeploy-agent.log**。

   1. 对于 `Log group name`，输入日志组名称，例如：**codedeploy-agent-log**。

   1. 对于 `Log stream name`，输入日志流名称，例如：**\$1instance\$1id\$1-codedeploy-agent-log**。

1. 当系统询问 `Do you want to specify any additional log files?` 时，请输入 **1**。

1. 指定 CodeDeploy 代理部署日志，如下所示：

   1. 要`Log file path`输入 CodeDeploy 部署日志文件的路径，例如：**/opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log**。

   1. 对于 `Log group name`，输入日志组名称，例如：**codedeploy-agent-deployment-log**。

   1. 对于 `Log stream name`，输入日志流名称，例如：**\$1instance\$1id\$1-codedeploy-agent-deployment-log**。

1. 当系统询问 `Do you want to specify any additional log files?` 时，请输入 **1**。

1. 指定 CodeDeploy 代理更新程序日志，如下所示：

   1. `Log file path`输入 CodeDeploy 更新程序日志文件的路径，例如：。**/tmp/codedeploy-agent.update.log**

   1. 对于 `Log group name`，输入日志组名称，例如：**codedeploy-agent-updater-log**。

   1. 对于 `Log stream name`，输入日志流名称，例如：**\$1instance\$1id\$1-codedeploy-agent-updater-log**。

**使用向导配置 CloudWatch 代理 (Windows)**

1. 按照运行[ CloudWatch 代理配置向导中所述运行向导](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html#cloudwatch-agent-running-wizard)。

1. 在向导中，当系统询问 `Do you want to monitor any customized log files?` 时，输入 **1**。

1. 指定 CodeDeploy 日志文件，如下所示：

   1. 要`Log file path`输入 CodeDeploy 代理日志文件的路径，例如：**C:\$1ProgramData\$1Amazon\$1CodeDeploy\$1log\$1codedeploy-agent-log.txt**。

   1. 对于 `Log group name`，输入日志组名称，例如：**codedeploy-agent-log**。

   1. 对于 `Log stream name`，输入日志流名称，例如：**\$1instance\$1id\$1-codedeploy-agent-log**。

1. 当系统询问 `Do you want to specify any additional log files?` 时，请输入 **1**。

1. 指定 CodeDeploy 代理部署日志，如下所示：

   1. `Log file path`输入 CodeDeploy 部署日志文件的路径，例如：**C:\$1ProgramData\$1Amazon\$1CodeDeploy\$1deployment-logs\$1codedeploy-agent-deployments.log**。

   1. 对于 `Log group name`，输入日志组名称，例如：**codedeploy-agent-deployment-log**。

   1. 对于 `Log stream name`，输入日志流名称，例如：**\$1instance\$1id\$1-codedeploy-agent-deployment-log**。

**通过手动创建或编辑配置文件来配置 CloudWatch 代理 (Linux)**

1. 按照[手动创建或编辑 CloudWatch 代理配置文件中所述创建或编辑 CloudWatch 代理配置文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html)。

1. 确保该文件名为 `/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json`，并且它包含以下代码：

   ```
   ...
   "logs": {
       "logs_collected": {
           "files": {
               "collect_list": [
                   {
                       "file_path": "/var/log/aws/codedeploy-agent/codedeploy-agent.log",
                       "log_group_name": "codedeploy-agent-log",
                       "log_stream_name": "{instance_id}-agent-log"
                   },
                   {
                       "file_path": "/opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log",
                       "log_group_name": "codedeploy-agent-deployment-log",
                       "log_stream_name": "{instance_id}-codedeploy-agent-deployment-log"
                   },
                   {
                       "file_path": "/tmp/codedeploy-agent.update.log",
                       "log_group_name": "codedeploy-agent-updater-log",
                       "log_stream_name": "{instance_id}-codedeploy-agent-updater-log"
                   }
               ]
           }
       }
   }
   ...
   ```

**通过手动创建或编辑配置文件来配置 CloudWatch 代理 (Windows)**

1. 按照[手动创建或编辑 CloudWatch 代理配置文件中所述创建或编辑 CloudWatch 代理配置文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html)。

1. 确保该文件名为 `C:\ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json`，并且它包含以下代码：

   ```
   ...
   "logs": {
           "logs_collected": {
               "files": {
                   "collect_list": [
                       {
                           "file_path": "C:\\ProgramData\\Amazon\\CodeDeploy\\log\\codedeploy-agent-log.txt",
                           "log_group_name": "codedeploy-agent-log",
                           "log_stream_name": "{instance_id}-codedeploy-agent-log"
                       },
                       {
                           "file_path": "C:\\ProgramData\\Amazon\\CodeDeploy\\deployment-logs\\codedeploy-agent-deployments.log",
                           "log_group_name": "codedeploy-agent-deployment-log",
                           "log_stream_name": "{instance_id}-codedeploy-agent-deployment-log"
                       }
                   ]
               },
               ...
           }
       },
   ...
   ```

## 重新启动代 CloudWatch 理
<a name="codedeploy-agent-operations-cloudwatch-restart"></a>

进行更改后，按照启动 CloudWatch 代理中所述重新[启动 CloudWatch 代理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance-fleet.html#start-CloudWatch-Agent-EC2-fleet)。