跳转至

安装 Jenkins

本页介绍如何安装 Jenkins 以使用流水线(Pipeline)功能。

开始之前

  • 安装 Jenkins 之前需要确保将要安装 Jenkins 的集群中存在默认的存储类;
  • 请提前做好资源规划,评估未来最大并发的流水线数,并根据 Jenkins 场景配置文档进行配置;
  • 请确认安装的目标集群的容器运行时:只有使用 Docker 作为容器运行时才能选择 Agent 的 ContainerRuntime 为 Docker;

开始安装

  1. 点击左上角的 打开导航栏,选择 容器管理 -> 集群列表 ,找到需要安装 Jenkins 的集群,点击该集群的名称。

    Note

    需要根据实际情况选择 Jenkins 的部署集群。目前不建议将其部署在全局服务集群,因为 Jenkins 执行流水线高并发时会占用大量资源,可能会导致全局服务集群的瘫痪。

    点击集群名称

  2. 在左侧导航栏中选择  Helm 应用 ->  Helm 模板 ,找到并点击  Jenkins

    jenkins helm

  3. 版本选择 中选择想要安装的版本,点击 安装

    安装

  4. 在安装界面,填写所需的安装参数,最后在右下角点击 确定 按钮。

    填写配置

    以下是重要参数说明,根据实际业务需求进行参数更换编写。

    参数 描述
    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 部署的集群和全局服务集群不在同一个区域的时候,最好开启。
    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 必须填写
  5. 前往 Helm 应用查看部署结果。

    完成创建

集成 Jenkins

说明:目前仅支持集成通过 DCE 5.0 平台安装的 Jenkins。

  1. 使用具有应用工作台管理员角色的用户登录 DCE 5.0 并进入应用工作台。

    完成创建

  2. 在左侧导航栏点击平台管理下的 工具链集成 ,点击右上角的 集成 按钮。

    完成创建

  3. 选择工具链类型 Jenkins ,填写集成名称、Jenkins 地址、用户名和密码。 如果 Jenkins 地址为 https 协议时,需要提供证书。通过 Helm 部署出来的 Jenkins 默认账户密码为 admin/Admin01

    完成创建

  4. 集成完毕后会在 工具链列表 页面成功生成一条记录。

  5. 接下来就可以前往工作空间内创建流水线

集成注意事项

如果集成的 Jenkins 实例未提供集群和命名空间信息时,会导致应用工作台无法更新 Jenkins 实例的配置文件,从而引发出下述两个问题:

  • 流水线 通知 步骤,在全局管理 -> 平台设置 -> 邮件服务器设置,配置好邮件服务器地址后,无法更新到 Jenkins 中配置中。
  • 流水线 SonarQube 配置 步骤,在工具链集成 SonarQube 实例后并绑定到当前工作空间,使用该实例会失效。

针对上述问题,需要前往 Jenkins 后台进行相关配置。

针对通知步骤,在 Jenkins 后台配置邮件通知

  1. 前往 Jenkins 后台,点击 Manage Jenkins -> Configure System,然后下拉找到 邮件通知 模块。

  2. 填写相关参数,参数说明如下:

    • SMTP 服务器:能够提供邮件服务的 SMTP 服务器地址
    • 启用 SMTP 认证:根据需求选择,建议启用 SMTP 认证
    • 用户名:SMTP 用户的名称
    • 密码:SMTP 用户的密码
    • SMTP 端口:发送邮件的端口,不填写此项将使用协议默认端口.

    Note

    配置发件人邮箱地址需要点击 右上角个人头像 -> 设置 ,然后下拉找到 邮件地址

    Jenkins邮件配置页

针对 SonarQube 配置步骤,在 Jenkins 后台配置 SonarQube 服务器地址

  1. 前往 Jenkins 后台,点击 Manage Jenkins -> Configure System ,然后下拉找到 SonarQube servers ,然后点击 Add SonarQube

    Jenkins Sonarqube配置页

  2. 填写相关参数,参数说明如下:

    • 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 不填会默认生成

      sonarqube

    Note

    如果想要将工作台已经集成的 SornarQube 更新到新的 Jenkins 的配置中,请务必保证名称一致。需要注意的是,Name不是集成的时候输入的名称, 需要在流水线的 SonarQube 配置步骤中下拉获取。

    SonarQube Name

  3. 前往 SonarQube 后台更新 Webhook 地址。依次点击 Administration -> Configuration -> Webhooks ,选择对应的 Webhook,点击 Update

    Note

    应用工作台 v0.25.0 之后的版本无需执行该步骤!

    sonarqube03

    其中 URL 更新为 http://{新部署的 Jenkins 的地址}/sonarqube-webhook/

    sonarqube03

评论