我是 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 应用它们。
感谢您的帮助。