我一直在阅读有关使用 R10K 和 Puppet 来使用 git 管理我的环境的信息。
根据这个博客R10K 的一些功能被内置到了后续版本的 puppet 中:
由于 R10k 如此流行且被广泛部署,因此,一个从 R10k 部署简单升级的环境解决方案成为了目标,目录环境就此诞生。
这让我开始思考是否应该使用 R10K。因此,我开始阅读有关使用Puppet 文档中的控制 repos。根据文档,我可以使用 R10K 或 Code Manager:
如果您已经有 Puppetfile,现在就可以配置代码管理。代码管理配置步骤有所不同,具体取决于您使用的是 Code Manager(推荐)还是 r10k。
我从来没有听说过 Code Manager,所以我去了描述代码管理器的页面在 Puppet 文档中。根据此页面,Code Manager 在底层使用 R10K。
我从文档中得到的印象是,Code Manager 现在是 Puppet 的内置功能?是这样吗,还是需要安装?
注意:我使用的是 Puppet 社区版,而不是企业版。
答案1
代码管理器是 PE 独有的功能,它并未内置于 Puppet 中。
代码管理器基本上是一个当你的 Git 服务器上发生事件时触发的 API。
Gitlab 工作流程示例:
- 有人将拉取请求合并到控制仓库的生产分支中
- Gitlab 向代码管理器 API 发送 JSON 负载
- 代码管理器 API 读取有效负载,发现它是用于生产分支的
- 代码管理器为生产分支触发 R10k Run
我正在简化,因为还有其他步骤(错误检查、身份验证等)但这本质上就是正在发生的事情。
对于开源用户,r10k repo 中有一个功能较少的代码管理器类工具:https://github.com/voxpupuli/puppet-r10k#webhook-support
它的工作方式类似,但功能较少,并且不受官方支持。但它的工作流程类似:Sinatra 应用程序监听 JSON 负载,当它收到负载时,它会触发并为给定分支运行 R10k。