概括
我有一个 ansible 剧本,它做了一些很棒的事情。这很有效,因为我已经设置了 ssh 以允许我在我的服务器上传播令人敬畏的东西。我想设置 jenkins 以在成功构建结束时自动提供令人敬畏的功能。
这失败了,因为 jenkins 没有我所拥有的 ssh 能力。如何使用 ansible 和 jenkins 实现应用程序的持续交付?
选项:授权项目插件
https://wiki.jenkins-ci.org/display/JENKINS/Authorize+Project+plugin
我安装了这个插件,这样如果我触发工作,它就会像我一样运行。
- 在配置全局安全性下启用“以触发构建的用户身份运行”
- 在我的项目中启用了“配置构建授权”和“以触发构建的用户身份运行”
- 添加了构建步骤以运行 shell 命令
whoami
控制台输出说:
由用户我的名字开始
以我的名义奔跑
在工作空间中构建我的路径
+ 哇哇
詹金斯
我会在那里期待我的用户名,而不是詹金斯。
更新:我确实了解到这个插件是为 jenkins 应用程序授权而设计的,而不是系统身份验证。jenkins 用户需要sudo user
作为任何脚本执行的一部分。
选项:给 jenkins 用户 NOPASSWD sudo
jenkins
acct 是系统账号,默认没有tty 。我可以使它成为一个完整的用户帐户,授予 sudo 访问权限等,但这似乎比冒充用户帐户更大的安全问题。
选项:码头工人
选项:ansible 塔
- 詹金斯 1.617 版
- 授权项目插件版本 1.1.0