安装 Jenkins¶
本页介绍如何安装 Jenkins 以使用流水线(Pipeline)功能。
开始之前¶
- 安装 Jenkins 之前需要确保将要安装 Jenkins 的集群中存在默认的存储类;
- 请提前做好资源规划,评估未来最大并发的流水线数,并根据 Jenkins 场景配置文档进行配置;
- 请确认安装的目标集群的容器运行时:只有使用 Docker 作为容器运行时才能选择 Agent 的
ContainerRuntime
为 Docker;
开始安装¶
-
点击左上角的 ≡ 打开导航栏,选择 容器管理 -> 集群列表 ,找到需要安装 Jenkins 的集群,点击该集群的名称。
Note
需要根据实际情况选择 Jenkins 的部署集群。目前不建议将其部署在全局服务集群,因为 Jenkins 执行流水线高并发时会占用大量资源,可能会导致全局服务集群的瘫痪。
-
在左侧导航栏中选择 Helm 应用 -> Helm 模板 ,找到并点击 Jenkins 。
-
在 版本选择 中选择想要安装的版本,点击 安装 。
-
在安装界面,填写所需的安装参数,最后在右下角点击 确定 按钮。
以下是重要参数说明,根据实际业务需求进行参数更换编写。
参数 描述 ContainerRuntime 选择运行时,支持 podman、docker。需要根据集群的容器运行时决定。 AdminUser Jenkins 的用户名 AdminPassword Jenkins 的密码 Deploy.JenkinsHost Jenkins 的访问链接。如果选择 NodePort 方式,访问地址规则为: http://{集群地址:端口}
JavaOpts 指定启动 Jenkins 的 JVM 启动参数 ServiceType 默认为 ClusterIP,支持 ClusterIP、NodePort、LoadBalancer ServicePort 服务访问端口 NodePort 如果 ServiceType=NodePort 则需要必填,范围为:30000-32767 resources.requests Jenkins 的资源请求值 resources.limits Jenkins 的资源限制值 image.registry Jenkins 镜像仓库地址 eventProxy.enabled EventProxy 是一个旨在为 Jenkins 到 Amamba APIServer 提供可靠连接的边车容器,当 Jenkins 部署的集群和 Global 集群不在同一个区域的时候,最好开启。 eventProxy.image.registry eventProxy 镜像仓库的地址。
如果 enabled=true 必须填写eventProxy.configMap.eventProxy.host Jenkins 事件的接收地址的Host,Jenkins 如果部署在 Worker 集群,需要设置成 DCE 的入口地址。
如果 enabled=true 必须填写。eventProxy.configMap.eventProxy.proto Jenkins 事件的接收地址的 Protocol,默认是 http。
如果 enabled=true 必须填写eventProxy.configMap.eventProxy.webhookUrl Jenkins 事件的接收地址的路径,默认是 /apis/internel.amamba.io/devops/pipeline/v1alpha1/webhooks/jenkins
。eventProxy.configMap.eventProxy.token 访问 DCE 的 token,获取方式参考全局管理访问密钥文档
如果 enabled=true 必须填写 -
前往 Helm 应用查看部署结果。
集成 Jenkins¶
说明:目前仅支持集成通过 DCE 5.0 平台安装的 Jenkins。
-
使用具有应用工作台管理员角色的用户登录 DCE 5.0 并进入应用工作台。
-
在左侧导航栏点击平台管理下的 工具链集成 ,点击右上角的 集成 按钮。
-
选择工具链类型 Jenkins ,填写集成名称、Jenkins 地址、用户名和密码。 如果 Jenkins 地址为 https 协议时,需要提供证书。通过 Helm 部署出来的 Jenkins 默认账户密码为 admin/Admin01 。
-
集成完毕后会在 工具链列表 页面成功生成一条记录。
-
接下来就可以前往工作空间内创建流水线。
集成注意事项¶
如果集成的 Jenkins 实例未提供集群和命名空间信息时,会导致应用工作台无法更新 Jenkins 实例的配置文件,从而引发出下述两个问题:
- 流水线 通知 步骤,在全局管理 -> 平台设置 -> 邮件服务器设置,配置好邮件服务器地址后,无法更新到 Jenkins 中配置中。
- 流水线 SonarQube 配置 步骤,在工具链集成 SonarQube 实例后并绑定到当前工作空间,使用该实例会失效。
针对上述问题,需要前往 Jenkins 后台进行相关配置。
针对通知步骤,在 Jenkins 后台配置邮件通知¶
-
前往 Jenkins 后台,点击 Manage Jenkins -> Configure System,然后下拉找到 邮件通知 模块。
-
填写相关参数,参数说明如下:
- SMTP 服务器:能够提供邮件服务的 SMTP 服务器地址
- 启用 SMTP 认证:根据需求选择,建议启用 SMTP 认证
- 用户名:SMTP 用户的名称
- 密码:SMTP 用户的密码
- SMTP 端口:发送邮件的端口,不填写此项将使用协议默认端口.
Note
配置发件人邮箱地址需要点击 右上角个人头像 -> 设置 ,然后下拉找到 邮件地址
针对 SonarQube 配置步骤,在 Jenkins 后台配置 SonarQube 服务器地址¶
-
前往 Jenkins 后台,点击 Manage Jenkins -> Configure System ,然后下拉找到 SonarQube servers ,然后点击 Add SonarQube 。
-
填写相关参数,参数说明如下:
-
Name:给 SonarQube 服务器配置一个名称,在应用工作台流水线的 SonarQube 配置步骤中需要输入相同的名字。
-
Server URL:SonarQube 服务器的 URL。
-
Server authentication token:SonarQube 服务器的身份验证令牌。您可以在 SonarQube 控制台中生成一个令牌。
-
在 SonarQube 生成管理员令牌(Token),操作路径为:My Account -> Profile -> Security -> Generate -> Copy
-
添加凭据,类型选择 Secret test ,Secret 输入 SonarQube 管理员令牌(Token),ID 不填会默认生成
-
Note
如果想要将工作台已经集成的 SornarQube 更新到新的 Jenkins 的配置中,请务必保证名称一致。需要注意的是,Name不是集成的时候输入的名称, 需要在流水线的 SonarQube 配置步骤中下拉获取。
-
-
前往 SonarQube 后台更新 Webhook 地址。依次点击 Administration -> Configuration -> Webhooks ,选择对应的 Webhook,点击 Update 。
Note
应用工作台 v0.25.0 之后的版本无需执行该步骤!
其中 URL 更新为
http://{新部署的 Jenkins 的地址}/sonarqube-webhook/