正在使用 Automation 和 Jenkins 更新 AMIs - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

正在使用 Automation 和 Jenkins 更新 AMIs

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

以下示例显示如何从运行在本地或 Amazon Elastic Compute Cloud (Amazon EC2) 上的 Jenkins 服务器调用自动化。对于身份验证,Jenkins 服务器使用 Amazon 凭证,该凭证基于您在示例中创建并附加到您的实例配置文件的 IAM policy。

注意

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

开始前的准备工作

在您配置自动化用于 Jenkins 之前,请完成以下任务:

为 Jenkins 服务器创建 IAM policy
  1. 登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中选择策略,然后选择创建策略

  3. 请选择 JSON 选项卡。

  4. 将每个示例资源占位符替换为您自己的信息。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:StartAutomationExecution", "Resource": [ "arn:aws:ssm:region:account ID:document/UpdateMyLatestWindowsAmi", "arn:aws:ssm:region:account ID:automation-definition/UpdateMyLatestWindowsAmi:$DEFAULT" ] } ] }
  5. 选择Review policy(查看策略)

  6. 查看策略页面上,对于名称,输入内联策略的名称,例如 JenkinsPolicy

  7. 选择 Create policy(创建策略)

  8. 在导航窗格中,选择 Roles(角色)。

  9. 选择附加到您的 Jenkins 服务器的实例配置文件。

  10. 权限选项卡中,选择添加权限,然后选择附加策略

  11. 其他权限策略部分中,输入您在之前步骤中创建的策略名称。例如,JenkinsPolicy

  12. 选中您的策略旁边的复选框,然后选择附加策略

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

为自动化配置 Jenkins 服务器
  1. 使用首选浏览器连接到 8080 端口上的 Jenkins 服务器,以访问管理界面。

  2. 输入 /var/lib/jenkins/secrets/initialAdminPassword 在中找到的密码。要显示您的密码,请运行以下命令。

    sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  3. Jenkins 安装脚本会将您引导到自定义 Jenkins 页面。选择安装建议的插件

  4. 安装完成后,选择管理员凭据中,选择保存凭证,然后选择开始使用 Jenkins

  5. 在左侧导航窗格中,选择队列管理,然后选择部署

  6. 可用选项卡,然后输入 Amazon EC2 plugin

  7. 选中 Amazon EC2 plugin 的复选框,然后选择安装但不重新启动

  8. 安装完成后,选择返回首页

  9. 选择管理 Jenkins,然后选择管理节点和云

  10. 配置云部分中,选择添加新云,然后选择 Amazon EC2

  11. 在其余字段中输入您的信息。确保选择使用 EC2 实例配置文件获取凭证选项。

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

配置 Jenkins 服务器以调用 自动化
  1. 在 Web 浏览器中打开 Jenkins 控制台。

  2. 选择要配置用于自动化的项目,然后选择配置

  3. 构建选项卡上,选择添加构建步骤

  4. 选择执行 shell执行 Windows 批命令(具体取决于您的操作系统)。

  5. Command(命令)字段中,运行 Amazon CLI 命令,如下所示。将每个示例资源占位符替换为您自己的信息。

    aws ssm start-automation-execution \ --document-name runbook name \ --region Amazon Web Services 区域 of your source AMI \ --parameters runbook parameters

    以下示例命令使用 UpdateMyLatestWindowsAmi 运行手册以及在 使用 Automation、Amazon Lambda 和 Parameter Store 来更新黄金 AMI 中创建的 Systems Manager 参数 latestAmi

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

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

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

    
                                Jenkins 信息