Amazon EC2 Systems Manager
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

将 Automation 用于 Jenkins

如果您的组织在 CI/CD 管道中使用 Jenkins 软件,则您可以添加 Automation 作为构建后步骤,用于将应用程序发行版预安装到 Amazon Machine Image (AMI) 中。您还可以使用 Jenkins 计划功能来调用 Automation 并创建自己的操作系统 (OS) 修补计划。

以下示例显示如何从运行在本地或 Amazon EC2 上的 Jenkins 服务器调用 Automation。对于身份验证,Jenkins 服务器使用 AWS 凭证,该凭证基于您在示例中创建的 AWS Identity and Access Management (IAM) 用户。如果您的 Jenkins 服务器运行在 Amazon EC2 中,则还可以使用 IAM 实例配置文件角色对其进行身份验证。

注意

配置您的实例时,请确保遵循 Jenkins 安全最佳实践。

开始前的准备工作

在您配置 Automation 用于 Jenkins 之前,请完成以下任务。

  • 完成 使用 Automation、Lambda 和 Parameter Store 简化 AMI 修补 示例。以下示例使用在该示例中创建的 UpdateMyLatestWindowsAmi Automation 文档。

  • 为 Automation 配置 IAM 角色。Systems Manager 需要实例配置文件角色和服务角色 ARN 来处理 Automation 工作流。有关更多信息,请参阅 设置 Automation

  • 在您为 Automation 配置 IAM 角色之后,使用以下过程为 Jenkins 服务器创建 IAM 用户账户。在执行期间,Automation 工作流使用 IAM 用户账户的访问密钥和私有密钥对 Jenkins 服务器进行身份验证。

为 Jenkins 服务器创建用户账户

  1. IAM 控制台上的 Users 页面中,选择 Add User

  2. Set user details 部分中指定用户名 (例如,Jenkins)。

  3. Select AWS access type 部分中,选择 Programmatic Access

  4. 选择下一步:权限

  5. Set permissions for 部分,选择 Attach existing policies directly

  6. 在“Filter”字段中,键入 AmazonSSMFullAccess

  7. 选中该策略旁边的复选框,然后选择 Next:Review

  8. 验证详细信息,然后选择 Create

  9. 将访问密钥和私有密钥复制到文本文件。您可以在接下来的过程中指定这些凭证。

使用以下过程在 Jenkins 服务器上配置 AWS CLI。

为 Automation 配置 Jenkins 服务器

  1. 如果尚未安装,请下载 AWS CLI 到您的 Jenkins 服务器。有关更多信息,请参阅安装 AWS Command Line Interface

  2. 在 Jenkins 服务器的终端窗口中,执行以下命令以配置 AWS CLI。

    Copy
    sudo –su jenkins aws configure
  3. 出现提示时,输入您在 IAM 中创建 Jenkins 用户时收到的 AWS 访问密钥和私有密钥。指定默认区域。有关配置 AWS CLI 的更多信息,请参阅配置 AWS Command Line Interface

使用以下过程配置您的 Jenkins 项目来调用 Automation。

配置 Jenkins 服务器以调用 Automation

  1. 在 Web 浏览器中打开 Jenkins 控制台。

  2. 选择要配置用于 Automation 的项目,然后选择 Configure

  3. Build 选项卡上,选择 Add Build Step

  4. 选择 Execute shellExecute Windows batch command (具体取决于您的操作系统)。

  5. Command 框中,执行 AWS CLI 命令,如下所示:

    Copy
    aws --region the region of your source AMI ssm start-automation-execution --document-name your document name --parameters parameters for the document

    以下示例命令使用 UpdateMyLatestWindowsAmi 文档以及在 使用 Automation、Lambda 和 Parameter Store 简化 AMI 修补 中创建的 Systems Manager 参数 latestAmi

    Copy
    aws --region us-east-1 ssm start-automation-execution \ --document-name UpdateMyLatestWindowsAmi \ --parameters \ "sourceAMIid='{{ssm:latestAmi}}'"

    在 Jenkins 中,命令类似于以下屏幕截图中的示例。

     Jenkins 信息
  6. 在 Jenkins 项目中,选择 Build Now。Jenkins 会返回与以下示例类似的输出。

     Jenkins 信息