使用register命令(iam用户ARN)注册本地实例 - AWS CodeDeploy
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用register命令(iam用户ARN)注册本地实例

本部分介绍如何以最少的工作量使用 CodeDeploy 配置本地实例并注册和标记该实例。当您处理一个或少量的本地实例时,register 命令非常有用。您可以使用 register 仅在您使用 IAM 用户ARN验证实例。您不能使用 register 命令 IAM 验证的会话ARN。

当您使用 register 命令,您可以让 CodeDeploy 执行以下操作:

  • 创建 IAM 用户 AWS Identity and Access Management 对于本地实例,如果没有使用命令指定一个。

  • 将该 IAM 用户的凭证保存到本地实例配置文件中.

  • 向 注册本地实例。CodeDeploy.

  • 如果您在命令中指定了标签,则向本地实例添加标签。

注意

TheThethe register-on-premises-instance 命令是 register 命令。您使用 register-on-premises-instance 命令如果您想配置本地实例,并注册并标记 CodeDeploy 主要是自己的。TheThethe register-on-premises-instance 命令也可以使用 IAM 会话ARN用于注册实例,而不是 IAM 用户ARN。如果您有大量本地实例,则此方法有很大的优势。具体而言,您可以使用 IAM 会话ARN验证多个实例,而不是创建 IAM 每个本地实例1的用户。有关详细信息,请参阅 使用register-on-premise-instance命令(iam用户ARN)注册本地实例使用register-on-premise-instance命令(iam会话ARN)注册本地实例 .

步骤 1. 安装并配置 AWS CLI 本地实例

  1. 安装 AWS CLI 本地实例。遵循中的说明 设置与 AWS 命令行界面AWS 命令行界面用户指南.

    注意

    CodeDeploy 处理本地实例的命令可在 AWS CLI 版本1.7.19及更高版本。如果您有 AWS CLI 已安装,呼叫 aws --version 检查其版本。

  2. 配置 AWS CLI 本地实例。遵循中的说明 配置 AWS 命令行界面AWS 命令行界面用户指南.

    重要

    配置 AWS CLI (例如,通过调用 aws configure 命令),请确保指定密钥ID和密钥访问密钥 IAM 至少以下人员的用户 AWS 除了在中指定的权限之外 配置本地实例的前提条件. 这使得在本地实例上下载和安装 CodeDeploy 代理成为可能。访问权限应与以下示例类似:

    { "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:GetUser", "tag:GetTags", "tag:GetResources" ], "Resource" : "*" }, { "Effect" : "Allow", "Action" : [ "s3:Get*", "s3:List*" ], "Resource" : [ "arn:aws-cn:-cn:s3:::aws-codedeploy-cn-north-1/*", "arn:aws-cn:-cn:s3:::aws-codedeploy-cn-northwest-1/*" ] } ] }

步骤 2. 呼叫寄存器命令

在这一步中,我们假设您从本地实例本身注册该本地实例。您还可以从安装和配置了 AWS CLI 的单独设备或实例上注册本地实例,如先前的步骤中所述。

使用 AWS CLI 致电 register 命令,指定:

  • 唯一标识本地实例的名称 CodeDeploy (与 --instance-name 选项)。

    重要

    为了帮助在以后标识本地实例,特别是用于调试用途,我们强烈建议您使用的名称能够映射到本地实例的某种唯一特性 (例如,在适用时可以使用序列号或唯一内部资产标识符)。如果您为名称指定 MAC 地址,请注意 MAC 地址包含 CodeDeploy 不允许使用的字符,例如冒号 ()。:). 有关允许字符的列表,请参阅CodeDeploy限制.

  • 可选,现有的ARN IAM 您希望与本地实例关联的用户(与 --iam-user-arn 选项)。为了获得 IAM 用户,请致电 获取用户 命令,或选择 IAM 用户名 用户 部分 IAM 然后找到 用户ARN摘要 第节。如果未指定此选项, CodeDeploy 将创建 IAM 代表您在您的 AWS 帐户并与本地实例相关联。

    重要

    如果您指定 --iam-user-arn 选项,您还必须手动创建本地实例配置文件,详见 步骤 4. 将配置文件添加到本地实例.

    您只能将一个 IAM 用户与一个本地实例关联。尝试将一个 IAM 用户与多个本地实例关联会导致出错,对这些本地实例的部署将失败,或者对这些本地实例的部署会停滞在永久等待的状态。

  • 可选,一组本地实例标签(带 --tags 选项) CodeDeploy 将用于确定一组 Amazon EC2 要部署的实例。使用 Key=tag-key,Value=tag-value 指定各个标签(例如,)。Key=Name,Value=Beta Key=Name,Value=WestRegion). 如果未指定此选项,将不注册标签。要在以后注册标签,请调用 add-tags-to-on-premises-instances 命令。

  • 任选地, AWS 本地实例将在 CodeDeploy (与 --region 选项)。这必须是所列地区之一 区域和端点AWS General Reference (例如, us-west-2)。如果未指定此选项,则默认 AWS 与呼叫相关的地区 IAM 将使用用户。

例如:。

aws deploy register --instance-name AssetTag12010298EX --iam-user-arn arn:aws-cn:iam::80398EXAMPLE:user/CodeDeployUser-OnPrem --tags Key=Name,Value=CodeDeployDemo-OnPrem --region us-west-2

TheThethe register 命令如下:

  1. 如果没有现有 IAM 指定用户,创建 IAM 用户,将所需权限附加到其中,并生成相应的密钥和密钥访问密钥。本地实例将使用 IAM 用户及其权限和凭据,以便验证和交互 CodeDeploy.

  2. 将本地实例注册到 CodeDeploy.

  3. 如果指定,员工中的员工 CodeDeploy 指定的标签 --tags 配备注册本地实例名称的选项。

  4. 如果 IAM 用户已创建,同时还会创建所需的配置文件,其中同一个目录中的 register 命令称为。

如果此命令遇到错误,则将显示错误消息,说明您可以如何手动完成剩余步骤。否则,将显示成功消息,说明如何调用 install 命令,如接下来的步骤中所列。

步骤 3 调用install命令

从本地实例,使用 AWS CLI 致电 install 命令,指定:

  • 配置文件的路径 (使用 --config-file 选项)。

  • (可选) 是否替换本地实例上已存在的配置文件 (使用 --override-config 选项)。如果未指定,则不替换现有配置文件。

  • 任选地, AWS 本地实例将在 CodeDeploy (与 --region 选项)。这必须是所列地区之一 区域和端点AWS General Reference (例如, us-west-2)。如果未指定此选项,则默认 AWS 与呼叫相关的地区 IAM 将使用用户。

  • 可选择安装 CodeDeploy 代理人 --agent-installer 选项)。此选项用于安装自定义版本的 CodeDeploy 代理人 CodeDeploy 不正式支持(如基于 CodeDeploy 代理 Github中的存储库)。该值必须是指向包含以下二者之一的 Amazon S3 存储桶的路径:

    • A CodeDeploy 代理安装脚本(适用于基于Linux或UNIX的操作系统,类似于 CodeDeploy 代理 Github中的存储库)。

    • A CodeDeploy 代理安装程序包(.msi)文件(用于基于Windows的操作系统)。

    如果未指定此选项, CodeDeploy 将最好地尝试从自己的位置安装正式支持的版本的 CodeDeploy 与本地实例上的操作系统兼容的代理。

例如:。

aws deploy install --override-config --config-file /tmp/codedeploy.onpremises.yml --region us-west-2 --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi

TheThethe install 命令如下:

  1. 检查本地实例是否为 Amazon EC2 实例。如果是,则将显示错误消息。

  2. 将本地实例配置文件从实例上的指定位置复制到 CodeDeploy 代理预期的位置 (如果该位置尚没有该文件)。

    对于 Ubuntu Server 和 Red Hat Enterprise Linux (RHEL)),这是 /etc/codedeploy-agent/conf/codedeploy.onpremises.yml.

    对于 Windows Server,这是 C:\ProgramData\Amazon\CodeDeploy\conf.onpremises.yml.

    如果指定了 --override-config 选项,则创建或覆盖文件。

  3. 在本地实例上安装 CodeDeploy 代理,然后启动它。

步骤 4. 部署本地实例的应用程序修订

现在,您已准备好将应用程序修订部署到已注册和标记的本地实例。

将应用程序修订部署到本地实例的方法类似于将应用程序修订部署到 Amazon EC2 实例。有关说明,请参阅使用 CodeDeploy 创建部署. 这些说明链接到各种先决条件,包括创建应用程序、创建部署组和准备应用程序修订。如果您需要一个简单的样本应用程序修订版以部署,您可以创建一个中所述的 步骤 2. 创建应用程序修订版本教程 将应用程序部署到本地实例,并且 CodeDeploy (Windows Server, Ubuntu Server,或 Red Hat Enterprise Linux).

重要

如果您重新使用现有 CodeDeploy 服务角色作为创建本地实例的部署组的一部分,您必须包括 Tag:get*Action 服务角色的政策声明的部分。有关更多信息,请参阅 步骤 3:为 CodeDeploy 创建服务角色.

步骤 5. 跟踪部署到本地实例

将应用程序修订部署到已注册和标记的本地实例之后,您可以跟踪部署进度。

跟踪对本地实例的部署的方法与跟踪对 Amazon EC2 实例的部署的方法类似。有关说明,请参阅视图 CodeDeploy部署详情 .

有关更多选项,请参阅管理本地实例操作 CodeDeploy.