Openstack + Chef + Jenkins持续交付

时间:2014-03-26 16:31:35

标签: jenkins chef openstack continuous-delivery

我是Openstack和Chef工具的新手。 我正在尝试设置一个持续交付流程,我想象下面的内容:

从Jenkins创建一个我们有Jobs的管道:

  • Job1 :编译,运行单元测试+静态分析,并将RPM构建/工件部署到Artifactory中。
  • Job2 :从Artifactory下载RPM文件并将它们全部保存到Yum存储库中。
  • Job3 :在Openstack中清理并重新创建Lab基础结构(路由器,专用网络,带有干净图像的节点)。之后,清理并重新注册Chef-Server中的那些节点,指定每个节点将具有的运行列表烹饪书。
  • Job4 :使用在Job3中创建的基础架构运行功能和集成测试。发布结果。

我怀疑的是如何实现Job3,我看到实现这个的方法是在Jenkins配置Openstack命令行中使用nova和neutron,而Chef也使用knife和chef-client命令,但是对于我而言应该可以访问OpenStack控制器服务器和所有Chef节点。 有没有更简洁的方法来实现这个,而不仅仅使用命令行,像Jenkins插件,厨师食谱或其他方式? 我不喜欢添加Jenkins配置的是不受版本控制,我想要像执行所有Openstack和Chef基础架构设置的主厨配方,并在版本控制下使用这些配方。但我不知道如何用食谱实现所有这些,以及如何从Jenkins应用它们。 我的想法是正确的还是有其他方法来实现这种方法?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

对于配置和编排应用程序基础结构,我建议使用Heat。单个YAML文件描述了您所需的应用程序环境。

openstack文档描述了nova服务器如何configured using chef at boot time使用cloud-init。

希望这有帮助

答案 1 :(得分:0)

还要考虑使用集成到Openstack中的CloudMunch来提供持续的交付和部署。

免责声明:我在CloudMunch工作。