
配置 Jenkins 作业和管道
在 Jenkins 控制台中,单击新建项目。选择多分支管道,将其命名为 petclinic
然后单击确定。

图 5.Jenkins 多分支管道
选择 GitHub,然后从下拉列表中选择 GitHub 凭据。输入如下所示的 GitHub URL,然后单击保存以保存 Jenkins 作业。

图 6.Jenkins 作业详细信息
Jenkins 构建执行器将检出并扫描 GitHub 存储库,并按照下面显示的 Jenkins 文件中的规定执行管道中的阶段。确保将注册表替换为构建阶段中 Docker 注册表 URL。
Bash
下面是最终运行的屏幕截图;如果一切顺利,您将看到一个新的 Docker 映像推送到您的 Docker 注册表中。

__
图 7.管道阶段
创建和配置 Spinnaker 管道
管道是指 Spinnaker 提供的一定顺序的阶段,从操作基础设施的功能(部署、调整、禁用),到支持功能(手动判断、等待、运行 Jenkins 作业),这些功能共同精确定义了管理您部署的操作手册。管道可帮助您一致、可重复且安全地管理部署。
登录到 AWS Cloud9 IDE 环境,然后打开一个新终端。运行以下命令:
kubectl get svc -n spinnaker

图 8.Spinnaker UI 终端节点
打开浏览器,使用
spin-deck-public services
终端节点登录 Spinnaker UI,如上面的输出所示。
选择应用程序选项卡,然后选择操作 → 创建应用程序。 输入 petclinic
作为名称,然后输入有效的电子邮件地址,其余字段留为空白。

图 9.Spinnaker 应用程序
在管道选项卡上,单击配置新管道,输入
DeployToUAT
作为管道名称,然后单击创建。

图 10.Spinnaker DeployToUAT 管道
单击添加构件并选择 GitHub → 种类,文件路径 →
kubernetes/petclinic.yaml
,显示名称 →Petclinic-Manifest
,内容 URL→
https://api.github.com/repos/aws-samples/amazon-eks-jenkins-terraform/contents/kubernetes/petclinic.yaml

图 11.管道构件
单击添加触发器并选择类型 → Docker 注册表,注册表名称 → Spinnaker 中配置的 Docker 注册表,组织 → 您的 Docker 注册表名称,映像 → Jenkins 创建的 Docker 映像。

图 12.管道触发器
单击添加阶段,选择阶段类型 → 部署(清单),账户 →
eks-uat
,应用程序 → petclinic,清单源 → 构件,清单构件 →Petclinic-Manifest
,构件账户 →spinnaker-github
。

图 13.部署清单阶段
单击保存将更改保存到 DeployToUAT 管道。
在管道选项卡下,单击创建,输入 ****
ManualApproval
****作为管道名称,然后单击“创建”。单击添加触发器并选择类型 → 管道,应用程序 →petclinic
,管道 →DeployToUAT
。

图 14.ManualApproval 管道
单击添加阶段,选择阶段名称 → 手动判断,在判断输入下添加两个选项
批准
和拒绝
,如下所示:

图 15.手动判断阶段
单击保存将更改保存到
ManualApproval
管道。在管道选项卡下,单击创建,输入
DeployToProd
作为管道名称,然后单击创建。单击添加触发器并选择类型 → 管道,应用程序 →petclinic
,管道 →DeployToProd
。单击添加构件并选择 GitHub → 种类,文件路径 →
kubernetes/petclinic.yaml
,显示名称 →Petclinic-Manifest
,内容 URL→
https://api.github.com/repos/aws-samples/amazon-eks-jenkins-terraform/contents/kubernetes/petclinic.yaml

图 16.管道构件
单击添加触发器并选择类型 → Docker 注册表,注册表名称 → Spinnaker 中配置的 Docker 注册表,组织 → 您的 Docker 注册表名称,映像 → Jenkins 创建的 Docker 映像。

图 17.管道触发器
单击添加阶段,选择阶段类型 → 部署(清单),账户 → eks-prod,应用程序 →
petclinic
,清单源 → 构件,清单构件 →Petclinic-Manifest
,构件账户 →spinnaker-github
。

图 18.部署清单阶段
单击保存将更改保存到
DeployToProd
管道。
手动运行 Spinnaker 管道
现在手动运行三个管道。单击开始手动执行,选择管道 → DeployToUAT,类型 → 标记,标记 → 输入有效的标记号。单击运行并观察管道执行。

图 19.管道执行
本文转载自 AWS 技术博客。
评论