我正在研究 Puppet 作为我们未来在我们商店中的部署和配置工具,但现在我被困在如何通过 Puppet 部署来制作一个聪明的持续集成/交付工具链。
在我们的任何环境(dev、test、qa、demo、prod)中,我们都有一系列组件。我们需要能够单独部署每个组件,甚至可能同时部署。
我想要一种方法来启动(通过脚本)单个组件包(= Puppet 模块)的部署并收集其输出和成功状态。仅仅等待预定的代理拉取,或者在环境中的每个节点上执行“puppet agent --test”是不够的,因为它可能会获取其他待处理的更改(我不知道是否还有其他组件在部署过程)。
在我的工具链中,我希望单独记录组件 A 和组件 B 的部署输出和状态,而不是混淆。
所以我的问题是:我可以使用 puppet 一次部署一个命名包(模块)吗?
如果没有,当我沿着这条路行驶时,我在哪里拐错了?
我意识到使用复制到每个节点的模块和清单的无主 Puppet 设置也许可以做到,但恕我直言,无主 Puppet 设置有悖于 Puppet 的目的。
PS:我认为在 Damon Edwards 的将 DevOps 工具集成到服务交付平台中的非常有启发性的视频中,我想要实现的被称为“定向编排” (时间戳在 22:30 左右)。