1

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

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

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

我的疑问是如何实现 Job3,我看到的实现方式是在 Jenkins 配置 Openstack 命令行中使用 nova 和 neutron,对于 Chef 也使用 knife 和 chef-client 命令,但对于所有这些我都可以访问到 OpenStack 控制器服务器和所有 Chef 节点。有没有更整洁的方法来实现这一点,而不仅仅是使用命令行,比如 Jenkins 插件、厨师食谱或其他方式?我不喜欢在 Jenkins 配置中添加不受版本控制的东西,我想要执行所有 Openstack 和 Chef 基础设施设置的厨师食谱之类的东西,并将这些食谱置于版本控制之下。但我不确定如何使用食谱来实现所有这些,以及如何从 Jenkins 应用它们。

感谢您的帮助。

4

2 回答 2

0

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

免责声明:我在 CloudMunch 工作。

于 2014-04-16T10:44:20.090 回答
0

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

openstack 文档描述了如何在启动时使用 cloud-init 使用 chef 配置 nova 服务器。

希望这可以帮助

于 2014-03-28T01:47:44.920 回答