我有一个可以做一些很棒的安莎剧本。这是有效的,因为我已经设置了ssh以允许我在我的服务器上传播令人敬畏的东西。我想设置jenkins在成功构建结束时自动提供令人敬畏的功能。
这失败了,因为jenkins没有相同的ssh功能。如何使用ansible和jenkins实现我的应用程序的持续交付?
https://wiki.jenkins-ci.org/display/JENKINS/Authorize+Project+plugin
我安装了这个插件,这样如果我触发这个工作就会以我的身份运行。
whoami
控制台输出显示:
由用户我的名字
启动以我的名字
运行在工作区中构建我的路径
+ whoami
詹金斯
我原本期望我的用户名,而不是詹金斯。
更新:我确实知道这个插件是用于jenkins应用程序授权,而不是系统身份验证。 jenkins用户需要sudo user
作为任何脚本执行的一部分。
jenkins
帐户是系统帐户,默认情况下不是tty。我可以将它设为完整的用户帐户,授予sudo访问权限等,但这似乎比冒充用户帐户更安全。
答案 0 :(得分:3)
在Jenkins中,我通常会检查我的ansible playbook文件夹并使用jenkins shell命令运行它。
您可以做的是将您的私人ssh密钥放在与Playbook相同的文件夹中,并添加一个ansible.cfg文件,您可以在其中定义用户和ssh_key位置。
[defaults]
hostfile = hosts
remote_user = userXX
private_key_file = .ssh_key
host_key_checking = False
祝你好运!