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 授权列表中,其中的 OpenShift Container Platform Role
规定了用户拥有的特定 Jenkins 权限。
具有 Admin
角色的用户拥有传统 Jenkins 管理用户权限,具有 edit
或 view
角色的用户的权限会逐渐减少。如需 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 首次启动时,配置与管理员用户和密码一同创建。默认用户凭证为 admin
和 password
。在使用标准 Jenkins 身份验证时,且仅这种情况下,通过设置 JENKINS_PASSWORD
环境变量来配置默认密码。
使用标准 Jenkins 身份验证创建新 Jenkins 应用程序:
$ oc new-app -e \ JENKINS_PASSWORD=<password> \ openshift/jenkins-2-centos7