我需要使用登录的用户凭据通过 Jenkins UI 执行一些 Jenkins 作业,例如“发布到生产”。原因是,我们有单独的支持团队成员,他们可以访问生产框,而不是开发团队成员。因此,为了将任何代码库部署到生产环境,所有 Windows 部署命令(例如,创建、更新文件、文件夹等)都需要使用有权访问 Production Box 的特定用户凭据来运行。因此,即使是无权访问生产框但作为 Jenkins 管理员的开发团队成员,执行相同的作业也会因“访问被拒绝”而导致失败。仅当支持团队成员使用其凭证来运行该工作时,该工作才会成功。
我尝试使用参数化插件,但无法将密码成功传递到包含 MSDeploy 指令的批处理文件。甚至 Jenkins 控制台日志也会显示其控制台输出中传递的参数,这是一个安全问题。
我检查了基于角色的安全插件,但这对我没有多大帮助。我只需要一个插件,该插件应要求用户在开始构建作业之前提供其凭据,并应使用用户凭据来执行作业,以便我的 MSDeploy 命令能够在支持时将代码部署到生产框上团队成员使用他们的凭证构建该作业。我希望有人支持冒充。
现在,所有 Jenkins 作业都使用 Tomcat 服务配置为在托管 Jenkins 上运行的服务帐户执行。
任何帮助,将不胜感激。
为了防止出现任何混乱,Jenkins 作业将始终以同一操作系统用户运行。基于 Matrix 的安全性适用于登录 Jenkins 服务器的用户并控制创建或启动作业等功能。
您可以将作业配置为使用一组通用生产凭据,然后阻止开发人员调用该作业。
也许更好的方法是将构建代码的过程与部署代码的过程分开。下图(摘自xebia-法国 http://code.google.com/p/xebia-france/wiki/ContinuousDeliveryWorkshop项目)演示了我最喜欢的一些工具如何Rundeck http://rundeck.org/ and Nexus http://www.sonatype.org/nexus/可以集成Jenkins https://wiki.jenkins-ci.org/display/JENKINS/RunDeck+Plugin.
最后,我强烈建议您阅读以下链接:
- 使用Rundeck和Chef构建devops工具链 http://dev2ops.org/2012/05/using-rundeck-and-chef-to-build-devops-toolchains-at-chefcon/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)