jenkins - 如何仅通过 Jenkinsfile 使作业可编辑并使 GUI 只读?
问题描述
如何防止 GUI 覆盖 Jenkinsfile 配置?除了指定 Jenkinsfile 所需的选项外,是否可以锁定 GUI 中的所有配置选项。
解决方案
您只能做授权粒度允许的事情(授权与身份验证是分开的 -有关更多信息,请参见这篇文章)。授权下{JENKINS_URL}/securityRealm/
。
要限制访问,您必须将授权配置为以下之一:
- 基于矩阵的安全性
- 基于项目的矩阵授权策略
- 基于角色的策略
您至少需要矩阵授权策略插件。有关更多信息,请查看站点上的Jenkins Security或书籍。
如果启用基本 Matrix 授权,它会附带两个角色:匿名用户和经过身份验证的用户。对于任何规模庞大的用户群,使用“基于角色的策略”可能会更好,但前提是相同的。
基本 Matrix 授权具有以下“作业”功能。
- 建造
- 取消
- 配置
- 创造
- 删除
- 发现
- 移动
- 读
- 工作区
首先,您要添加一个用户(您自己)或组并授予他们总体管理和/或所有权限,以免将您自己锁定。然后,您希望为普通用户删除“Job:Configure”和“Overall:Adminsiter”(根据需要加上其他权限;阅读引用的文档)。现在用户无法编辑作业。
如果您想为用户提供一个 Jenkinsfile 选择来运行作业,那么您可以添加参数化触发器插件,您可以提供他们可以在运行时选择的 Jenkinsfile 参数列表。还存在扩展(搜索插件以获取选项的参数)以获得更好的 UI 约束,例如Filesystem List Parameter,它从文件系统中选择(基于插件描述,而不是实际使用)。
如果使用输入的 Jenkinsfile(而不是签入到 repo),您还可以查看使用Config File Provider来限制集中管理的配置文件。
推荐阅读
- sas - 与本地 PC 文件交互,SAS EG 7.1
- angular - 然后用 Promise 测试 Angular 路由器
- python - 如何使用python从pdf的索引页面跟踪内容?
- ios - 可以访问最后一张 Face ID 图像的 iOS 代码吗?
- c - 尽管使用 float 数据类型,乘法始终会导致 0
- reactjs - Redux Action Creator 和 Dispatch 与语法混淆
- javascript - 机器人计算自己的反应 discord.js
- python - 如何减少python中稀疏向量的尺寸?
- python - 我可以在 PyTest 日志输出中抑制“实时日志调用”分隔符吗?
- python - 名称“create_dm”未定义