首页 > 解决方案 > 如何仅通过 Jenkinsfile 使作业可编辑并使 GUI 只读?

问题描述

如何防止 GUI 覆盖 Jenkinsfile 配置?除了指定 Jenkinsfile 所需的选项外,是否可以锁定 GUI 中的所有配置选项。

标签: jenkinsjenkins-pipeline

解决方案


您只能做授权粒度允许的事情(授权与身份验证是分开的 -有关更多信息,请参见这篇文章)。授权下{JENKINS_URL}/securityRealm/

要限制访问,您必须将授权配置为以下之一:

  • 基于矩阵的安全性
  • 基于项目的矩阵授权策略
  • 基于角色的策略

您至少需要矩阵授权策略插件。有关更多信息,请查看站点上的Jenkins Security或书籍

如果启用基本 Matrix 授权,它会附带两个角色:匿名用户和经过身份验证的用户。对于任何规模庞大的用户群,使用“基于角色的策略”可能会更好,但前提是相同的。

基本 Matrix 授权具有以下“作业”功能。

  • 建造
  • 取消
  • 配置
  • 创造
  • 删除
  • 发现
  • 移动
  • 工作区

首先,您要添加一个用户(您自己)或组并授予他们总体管理和/或所有权限,以免将您自己锁定。然后,您希望为普通用户删除“Job:Configure”和“Overall:Adminsiter”(根据需要加上其他权限;阅读引用的文档)。现在用户无法编辑作业。

如果您想为用户提供一个 Jenkinsfile 选择来运行作业,那么您可以添加参数化触发器插件,您可以提供他们可以在运行时选择的 Jenkinsfile 参数列表。还存在扩展(搜索插件以获取选项的参数)以获得更好的 UI 约束,例如Filesystem List Parameter,它从文件系统中选择(基于插件描述,而不是实际使用)。

如果使用输入的 Jenkinsfile(而不是签入到 repo),您还可以查看使用Config File Provider来限制集中管理的配置文件。


推荐阅读