如何限制Jenkins中模板的配置权限?

如何限制Jenkins中模板的配置权限?

我正在设置一个 Jenkins 服务器来构建 Unity 项目,因此除了一些参数(例如 Unity 版本)之外,所需的构建作业基本上总是相同的。

为了更容易配置新建作业,我创建了一个名为“TEMPLATE_JOB”的作业,因此对于未来的作业,我只需在创建新作业时选择“从模板复制”即可。

接下来我发现作业生成器插件它基本上做了同样的事情,但甚至更优雅一些。它基本上复制自身,用给定的值替换所需参数,当然还更改新生成的作业名称。

现在我的问题如下:

前面提到的两种解决方案都有一个大问题。由于它们是模板,配置是复制的,我不希望普通用户能够对它们进行任何更改,但仍能使用它们创建新的作业。

因此我尝试使用它Project-based Matrix Authorization Strategy来限制普通用户配置模板作业。

但是如果我限制用户配置模板/作业生成器,那么权限和限制也会被复制=>用户可以创建作业,但不能再重新配置他们自己创建的作业。


我想要的是

  • 只有管​​理员可以配置模板/作业生成器。
  • 所有普通用户都可以配置生成的作业。

Jenkins 中是否有任何安全模型可以提供我尝试存档的功能?

答案1

据我所知,没有安全模型本身可以做到这一点,但你可以很容易地用下面的方法做到这一点:

  • 不要给予普通用户创建新作业的权限。
  • 创建一个模板作业,并且不给普通用户编辑它的权限。
  • 创建另一个新作业,该作业从模板作业创建新作业。使其成为参数化作业,并使用用户传入的参数来配置新作业。授予普通用户运行此作业的权限。

所以现在,每当普通用户想要创建新工作时,他们都可以运行这个“创建新工作”工作。

您可能还想了解Jenkins文件共享库,通过将作业定义写为代码并将通用代码放入共享配置中,允许更灵活的作业配置。

如果你从模板创建的作业恰好是针对新的 Git 存储库的,你可能还需要查看分支源插件BitbucketGitHub,通过发现 Bitbucket 或 GitHub 组织中的存储库自动创建新的 Jenkins 作业。

相关内容