使用 MCollective 的即時 Puppet 部署
注意:我不確定這個問題屬於哪裡。也許它更適合Server Fault,但由於我主要是出於黑客和家庭網路的目的,所以我在這裡問。另外,它可能會在不到 10 -100秒的時間內從現場被火焰控制,這就是我避免使用 Server Fault 的原因。
我正在尋找設置並開始使用 Puppet Master 和幾個 Puppet 客戶端來獲得與 Puppet 與實際主人一起工作的感覺。預設情況下,Puppet 客戶端實例每 30 分鐘更新一次(據我所知),向 master 詢問他們的最新配置並在它出現時應用它。
我聽說 MCollective 可以立即進行這些更改,因為它使用消息隊列和並行性將命令實時推送到客戶端。
我一直試圖找出如何使用 Puppet Master 和 Puppet Clients 來做到這一點,但似乎 MCollective 是一個更大的項目,而不僅僅是 Puppet Master 的實時外掛。
如何設置一個簡單的 Puppet Master、一個 MCollective 伺服器(和消息隊列)和我的 Puppet 客戶端以實時更改 Puppet 配置?
(我大致了解如何
apt-get install redis-server puppetmaster mcollective
,但我希望了解將 MCollective 與 Puppet Master 集成的實際工作原理。)
我沒有玩過這個,但這聽起來像你正在尋找的東西:
摘抄
該代理管理 puppet 代理,與舊的 puppetd 外掛不同,它支持 Puppet 3 以及最近對其鎖定和狀態文件所做的更改。
除了對 Puppet 3 的基本支持之外,它還添加了許多新功能,其中大部分都可以在 Puppet 2.7 和 3 下使用。
- 支持 noop 執行或 no-noop 執行
- 支持限制執行到某些標籤
- 支持splay, no splay, splaylimits
- 支持指定自定義環境
- 支持指定自定義主控主機和埠
- 禁用時支持 Puppet 3 功能,例如鎖定消息
- 使用新的摘要外掛在適當的地方提供方便的摘要
- 使用新的驗證外掛提供更豐富的輸入驗證和更好的錯誤
- 目前 puppet 代理狀態和最近執行狀態的數據源
還有這段摘錄:
執行所有啟用的 Puppet 節點
通常,在送出更改後,您希望在基礎架構的性能限制內盡快將更改推廣到您的基礎架構。
Puppet Master 的性能通常歸結為應用它可以維持的目錄的最大並發 Puppet 節點。
使用 MCollective 基礎架構,我們可以確定目前啟用了多少機器並應用了目錄。
因此,要對整個基礎架構進行 Puppet 執行,同時保持並發 Puppet 執行盡可能接近 10 個節點,您可以:
$ mco puppet runall 10