使用ansible实现jenkins的连续交付 总结

使用ansible实现jenkins的连续交付 总结,jenkins,ansible,continuous-delivery,Jenkins,Ansible,Continuous Delivery,我有一本ansible的剧本,做了一些很棒的事情。这是因为我已经设置了ssh,允许我在服务器上传播惊人的东西。我想让jenkins在一个成功的构建结束时自动交付惊人的效果 这失败了,因为jenkins没有与我相同的ssh功能。如何使用ansible和jenkins实现应用程序的连续交付 选项:授权项目插件 我安装了这个插件,这样如果我触发作业,它就会像我一样运行 在“配置全局安全性”下启用了“以触发生成的用户身份运行” 在我的项目中启用了“配置生成授权”和“以触发生成的用户身份运行” 添加了

我有一本ansible的剧本,做了一些很棒的事情。这是因为我已经设置了ssh,允许我在服务器上传播惊人的东西。我想让jenkins在一个成功的构建结束时自动交付惊人的效果

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

选项:授权项目插件

我安装了这个插件,这样如果我触发作业,它就会像我一样运行

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

由用户名“我的名字”启动

以我的名字跑步

在工作区中构建我的路径

+哇

詹金斯

我希望我的用户名在那里,而不是詹金斯

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

选项:给jenkins用户NOPASSWD sudo jenkins账户是一个系统账户,默认情况下没有tty。我可以让它成为一个完整的用户帐户,授予sudo访问权,等等。但这似乎比模拟用户帐户更大的安全问题

选项:docker 选项:ansible塔
  • 詹金斯版本1.617
  • 授权项目插件版本1.1.0

在Jenkins中,我通常签出ansible playbook文件夹,并使用Jenkins shell命令运行它

您可以做的是将您的私有ssh密钥放在与playbook相同的文件夹中,并添加一个ansible.cfg文件,在其中定义用户和ssh_密钥位置

[defaults]
hostfile = hosts
remote_user = userXX
private_key_file = .ssh_key
host_key_checking = False
祝你好运