Puppet 4 是否包含程式碼管理器?
我一直在閱讀有關使用 R10K 和 Puppet 來使用 git 管理我的環境的文章。
根據這個部落格,R10K 的一些功能被內置到更高版本的 puppet 中:
由於 R10k 如此流行和廣泛部署,因此從 R10k 部署簡單升級的環境解決方案成為目標,目錄環境誕生了。
這讓我懷疑我是否應該使用 R10K。因此,我開始閱讀Puppet 文件中有關控制儲存庫的使用。根據文件,我可以使用 R10K 或程式碼管理器:
如果您已經有 Puppetfile,您現在可以配置程式碼管理。程式碼管理配置步驟會有所不同,具體取決於您使用的是程式碼管理器(推薦)還是 r10k。
我從未聽說過 Code Manager,所以我去了 Puppet 文件中描述 Code Manager 的頁面。根據此頁面,程式碼管理器在引擎蓋下使用 R10K。
我從文件中得到的印像是程式碼管理器現在是 Puppet 的內置功能?是這種情況還是需要安裝的東西?
注意:我使用的是 Puppet 的社區版,而不是企業版。
程式碼管理器是一個僅限 PE 的功能,它沒有內置在 Puppet 中。
Code Manager 基本上是一個 API,它會在 Git 伺服器上發生事件時觸發。
使用 Gitlab 的範例工作流程:
- 有人將拉取請求合併到控制倉庫的生產分支中
- Gitlab 在程式碼管理器 API 上觸發 JSON 有效負載
- 程式碼管理器 API 讀取有效負載,發現它是用於生產分支的
- 程式碼管理器觸發生產分支的 R10k 執行
我正在簡化,因為還有其他步驟(錯誤檢查、身份驗證等),但這基本上就是正在發生的事情。
對於開源使用者,在 r10k 儲存庫中有一個功能較少的類似程式碼管理器的工具:https ://github.com/voxpupuli/puppet-r10k#webhook-support
它的工作方式類似,但功能較少且不受官方支持。但這是一個類似的工作流程:Sinatra 應用程序偵聽 JSON 有效負載,當它收到一個它觸發並為給定分支執行 R10k。