Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

4.2.3. 配置和自定义

4.2.3.1. 身份验证

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

  • 由 OpenShift Login 插件提供的 OpenShift Container Platform Oauth 身份验证。
  • 由 Jenkins 提供的标准身份验证。
4.2.3.1.1. OpenShift Container Platform OAuth 身份验证

OAuth 身份验证 通过在 Jenkins UI 中 配置 Configure Global Security 面板,或者将 Jenkins Deployment Config 上的 OPENSHIFT_ENABLE_OAUTH 环境变量设置为非 false 来激活。这会激活 OpenShift Login 插件,该插件从 pod 数据或通过与 OpenShift Container Platform API 服务器交互来检索配置信息。

有效凭证由 OpenShift Container Platform 身份提供程序控制。例如,如果 Allow All 是默认身份提供程序,您可以为用户名和密码提供任何非空字符串。

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

登录时,有效用户会自动添加到 Jenkins 授权列表中,其中的 OpenShift Container Platform Role 规定了用户拥有的特定 Jenkins 权限。

具有 Admin 角色的用户拥有传统 Jenkins 管理用户权限,具有 editview 角色的用户的权限会逐渐减少。如需 OpenShift 角色到 Jenkins 权限映射的特定信息,请参阅 Jenkins 镜像源存储库 README

注意

使用 OpenShift Container Platform OAuth 时,OpenShift Container Platform Jenkins 镜像中预填充了管理特权的 admin 用户不会被授予这些权限,除非 OpenShift Container Platform 集群管理员在 OpenShift Container Platform 身份提供程序中明确定义了该用户,并将 admin 角色分配给用户。

最初创建用户后,可以更改 Jenkins 用户权限。OpenShift Login 插件轮询 OpenShift Container Platform API 服务器以获取权限,并利用从 OpenShift Container Platform 检索的权限更新存储在 Jenkins 中的每个用户的权限。如果 Jenkins UI 用于为 Jenkins 用户更新权限,则权限更改将在插件下次轮询 OpenShift Container Platform 时被覆盖。

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

使用 OAuth 身份验证创建新 Jenkins 服务的最简单方法是 使用模板,如下所述。

4.2.3.1.2. Jenkins 标准身份验证

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

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

使用标准 Jenkins 身份验证创建新 Jenkins 应用程序:

$ oc new-app -e \
    JENKINS_PASSWORD=<password> \
    openshift/jenkins-2-centos7