使jenkins能够持续交付ansible

时间:2015-08-24 20:03:49

标签: jenkins ansible continuous-delivery

摘要

我有一个可以做一些很棒的安莎剧本。这是有效的,因为我已经设置了ssh以允许我在我的服务器上传播令人敬畏的东西。我想设置jenkins在成功构建结束时自动提供令人敬畏的功能。

这失败了,因为jenkins没有相同的ssh功能。如何使用ansible和jenkins实现我的应用程序的持续交付?

选项:authorize-project-plugin

https://wiki.jenkins-ci.org/display/JENKINS/Authorize+Project+plugin

我安装了这个插件,这样如果我触发这个工作就会以我的身份运行。

  • 在配置全局安全性下启用“以触发构建的用户身份运行”
  • 在我的项目中启用“配置构建授权”和“以触发构建的用户身份运行”
  • 添加了构建步骤以运行shell命令whoami

控制台输出显示:

  

由用户我的名字

启动      

我的名字

运行      

在工作区中构建我的路径

     

+ whoami

     

詹金斯

我原本期望我的用户名,而不是詹金斯。

更新:我确实知道这个插件是用于jenkins应用程序授权,而不是系统身份验证。 jenkins用户需要sudo user作为任何脚本执行的一部分。

选项:给jenkins用户NOPASSWD sudo

jenkins帐户是系统帐户,默认情况下不是tty。我可以将它设为完整的用户帐户,授予sudo访问权限等,但这似乎比冒充用户帐户更安全。

选项:docker

选项:ansible tower

  • jenkins version 1.617
  • 授权项目插件版本1.1.0

1 个答案:

答案 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
祝你好运!