我需要使用登录的用户凭证通过Jenkins UI执行一些Jenkins工作,例如"Release to Production".原因是,我们有单独的支持团队成员,他们可以访问生产框而不是开发团队成员.因此,为了将任何代码库部署到生产环境,所有Windows部署命令(例如,创建,更新文件,文件夹等)都需要使用可以访问Production Box的特定用户凭据运行.因此,即使是没有访问Production框但是Jenkins Admin的Dev团队成员,执行相同的工作也会因"Access Denied"而导致失败.只有当支持团队成员使用其凭证运行时,该工作才能成功.
我尝试使用参数化插件但无法将密码成功传递到包含MSDeploy指令的批处理文件.甚至Jenkins控制台日志也会显示其控制台输出中传递的参数,这是一个安全问题.
我检查了基于角色的安全插件,但这对我没什么帮助.我只需要一个插件,它应该要求用户在开始构建作业之前提供他们的凭证,并且应该使用用户凭证来执行作业,这样我的MSDeploy命令就能够在生产框上部署代码,当支持时团队成员使用他们的凭证构建该Job.我希望有人支持冒充.
现在,所有Jenkins Jobs都将使用Tomcat服务配置为托管Jenkins的服务帐户执行.
任何帮助,将不胜感激.
为了防止出现任何混淆,Jenkins作业将始终作为相同的OS用户运行.基于Matrix的安全性适用于登录Jenkins服务器并控制创建或启动作业等功能的用户.
您可以将作业配置为使用一组通用生产凭据,然后阻止开发人员调用该作业.
也许更好的方法是将构建代码的进程与部署代码的进程分开.下图(取自xebia-france项目)演示了我最喜欢的一些工具Rundeck和Nexus如何与Jenkins集成.

最后,我强烈建议您阅读以下链接:
嗨,我知道我在这个线程上迟到了,但是我刚遇到这个问题并且很难解决它,所以我想我可以分享我设法设置的内容。
首先要做的事情是:如果您想“作为特定用户”(具有所有正确的权限)运行 Jenkins 作业,最简单的方法是以该用户身份运行 Jenkins SLAVE。
那么您很可能会偶然发现以下情况:您可能希望在与 windows services相同的 windows 机器上运行多个从属服务器。这很好,只要每个奴隶都有自己的Remote root directory并且可能也有特定的“标签”。
一旦您设法将您的从属服务器作为 Windows 服务运行,请启动服务控制台(运行 services.msc)。编辑新创建的服务属性,转到登录选项卡。选择“登录为:此帐户”并输入您的帐户凭据。
干杯:)
| 归档时间: | 
 | 
| 查看次数: | 16239 次 | 
| 最近记录: |