使用 MCollective 進行即時 Puppet 部署

使用 MCollective 進行即時 Puppet 部署

註:我不確定這個問題屬於哪裡。也許它更適合伺服器故障,但由於我主要是為了黑客和家庭網路目的而詢問,所以我在這裡詢問。另外,它可能會在不到 10 -100秒的時間內被火焰控制離開站點,這就是我避免使用伺服器故障的原因。

我正在尋找設定並開始嘗試擁有 Puppet Master 和幾個 Puppet 用戶端,以體驗與真正的 Master 一起使用 Puppet 的感覺。預設情況下,Puppet 客戶端實例(據我所知)每 30 分鐘更新一次,向主伺服器詢問最新配置並在配置失敗時套用它。

我聽說 MCollective 基本上可以立即進行這些更改,因為它使用訊息佇列和並行性將命令即時推送到客戶端。

我一直在嘗試找出如何使用 Puppet Master 和 Puppet Clients 來做到這一點,但似乎 MCollective 是一個比 Puppet Master 的即時插件更大的專案。

如何設定一個簡單的 Puppet Master、MCollective 伺服器(和訊息佇列)和我的 Puppet 用戶端以即時取得 Puppet 配置的變更?

(我大致了解如何操作apt-get install redis-server puppetmaster mcollective,但我希望了解如何將 MCollective 與 Puppet Master 整合起來。)

答案1

我沒有玩過這個,但這聽起來像是你正在尋找的:

摘抄

該代理管理 puppet 代理,與舊的 puppetd ​​插件不同,該代理支援 Puppet 3 以及最近對其鎖定和狀態檔案所做的更改。

除了對 Puppet 3 的基本支援之外,還添加了許多新功能,其中大多數功能都可以在 Puppet 2.7 和 3 下使用。

  • 支援 noop 運行或 no-noop 運行
  • 支援限制運行到某些標籤
  • 支援splay、不splay、splaylimits
  • 支援指定自訂環境
  • 支援指定自訂master主機和連接埠
  • 支援 Puppet 3 功能,例如停用時鎖定訊息
  • 使用新的摘要插件在適當的情況下提供方便的摘要
  • 使用新的驗證插件提供更豐富的輸入驗證和更好的錯誤
  • 目前 Puppet 代理程式狀態和最近運行狀態的資料來源

還有這段摘錄:

運行所有已啟用的 Puppet 節點

通常,在提交變更後,您希望在基礎架構的效能限制範圍內盡快將變更推廣到您的基礎架構。

Puppet Master 的效能通常取決於應用其可以維持的目錄的最大並發 Puppet 節點數。

使用 MCollective 基礎設施,我們可以確定目前啟用並套用目錄的電腦數量。

因此,要對整個基礎架構進行 Puppet 運行,使並發 Puppet 運行一次盡可能接近 10 個節點,您可以執行以下操作:

  $ mco puppet runall 10

相關內容