第 1 章 配置 Jenkins 镜像


Red Hat OpenShift Service on AWS 为运行 Jenkins 提供了一个容器镜像。此镜像提供 Jenkins 服务器实例,可用于为连续测试、集成和交付设置基本流程。

该镜像基于 Red Hat Universal Base Images(UBI)。

Red Hat OpenShift Service on AWS 遵循 Jenkins 的 LTS 版本。Red Hat OpenShift Service on AWS 提供了一个包含 Jenkins 2.x 的镜像。

Red Hat OpenShift Service on AWS Jenkins 镜像在 Quay.ioregistry.redhat.io 上提供。

例如:

$ podman pull registry.redhat.io/ocp-tools-4/jenkins-rhel8:<image_tag>

要使用这些镜像,您可直接从这些 registry 访问镜像,或将其推送(push)到 Red Hat OpenShift Service on AWS 容器镜像 registry 中。另外,您还可在容器镜像 registry 或外部位置创建一个指向镜像的镜像流。然后,您的 Red Hat OpenShift Service on AWS 资源可以引用镜像流。

为方便起见,Red Hat OpenShift Service on AWS 在 openshift 命名空间中为核心 Jenkins 镜像提供镜像流,以及为 Red Hat OpenShift Service on AWS 与 Jenkins 集成提供的示例代理镜像。

1.1. 配置和自定义

您可采用两种方式管理 Jenkins 身份验证:

  • 由 Red Hat OpenShift Service on AWS Login 插件提供的 Red Hat OpenShift Service on AWS OAuth 身份验证。
  • 由 Jenkins 提供的标准身份验证。

1.1.1. Red Hat OpenShift Service on AWS OAuth 身份验证

OAUTH 身份验证激活方法:配置 Jenkins UI 中 Configure Global Security 面板上的选项,或者将 Jenkins Deployment configuration 上的 OPENSHIFT_ENABLE_OAUTH 环境变量设置为非 false。这会激活 Red Hat OpenShift Service on AWS Login 插件,该插件从 pod 数据或通过与 Red Hat OpenShift Service on AWS API 服务器交互来检索配置信息。

有效凭证由 Red Hat OpenShift Service on AWS 身份提供程序控制。

Jenkins 支持浏览器和非浏览器访问。

登录时,有效用户会自动添加到 Jenkins 授权列表中,其中 Red Hat OpenShift Service on AWS 角色规定了用户拥有的特定 Jenkins 权限。默认使用的角色是预定义的 admineditview。登录插件对 Jenkins 正在其中运行的项目或命名空间中的那些角色执行自身 SAR 请求。

具有 Admin 角色的用户拥有传统 Jenkins 管理用户权限,而具有 editview 角色的用户的权限逐渐减少。

AWS admin 上的默认 Red Hat OpenShift Service、编辑view 角色以及这些角色在 Jenkins 实例中分配的 Jenkins 权限是可配置的。

在 Red Hat OpenShift Service on AWS pod 中运行 Jenkins 时,登录插件会在 Jenkins 正在其中运行的命名空间中查找名为 openshift-jenkins-login-plugin-config 的配置映射。

如果该插件找到并可以在该配置映射中读取,您可以定义到 Jenkins 权限映射的角色。具体来说:

  • 登录插件将配置映射中的键值对视为 Jenkins 权限到 Red Hat OpenShift Service on AWS 角色映射。
  • 其中,键是 Jenkins 权限组短 ID 和 Jenkins 权限短 ID,两者之间用连字符隔开。
  • 如果要将 Overall Jenkins Administer 权限添加到 Red Hat OpenShift Service on AWS 角色,则密钥应为 Overall-Administer
  • 要了解有哪些权限组和权限 ID 可用,请转至 Jenkins 控制台中的列表授权页,并在它们提供的表中查找组 ID 和个别权限。
  • 键值对的值是 Red Hat OpenShift Service on AWS 角色列表,权限应应用到,每个角色用逗号分开。
  • 如果要将 Overall Jenkins Administer 权限添加到默认的 adminedit 角色以及您创建的新 Jenkins 角色,则 Overall-Administer 键的值将为 admin,edit,jenkins
注意

当使用 Red Hat OpenShift Service on AWS OAuth 时,Red Hat OpenShift Service on AWS Jenkins 镜像中预先填充的 admin 用户不会授予这些权限。要授予这些权限,Red Hat OpenShift Service on AWS 集群管理员必须在 Red Hat OpenShift Service on AWS 身份提供程序中明确定义该用户,并为该用户分配 admin 角色。

最初建立用户后,可对存储的 Jenkins 用户权限进行更改。Red Hat OpenShift Service on AWS Login 插件轮询 Red Hat OpenShift Service on AWS API 服务器以获取权限,并使用从 Red Hat OpenShift Service on AWS 检索的权限更新存储在 Jenkins 中的每个用户的权限。如果使用 Jenkins UI 为 Jenkins 用户更新权限,则权限更改将在插件下次轮询 Red Hat OpenShift Service on AWS 时被覆盖。

您可通过 OPENSHIFT_permissions_poll_interval 环境变量来控制轮询频率。默认轮询间隔为五分钟。

使用 Oauth 身份验证创建新的 Jenkins 服务的最简单方式是借助模板。

1.1.2. Jenkins 身份验证

如果镜像未使用模板直接运行,则默认使用 Jenkins 身份验证。

Jenkins 首次启动时,配置与管理员用户和密码一同创建。默认用户凭证为 adminpassword。在使用标准 Jenkins 身份验证时,且仅这种情况下,通过设置 JENKINS_PASSWORD 环境变量来配置默认密码。

流程

  • 输入以下命令来创建使用标准 Jenkins 身份验证的 Jenkins 应用程序:

    $ oc new-app -e \
        JENKINS_PASSWORD=<password> \
        ocp-tools-4/jenkins-rhel8
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.