Puppet

使用 MCollective 的即時 Puppet 部署

  • June 17, 2014

注意:我不確定這個問題屬於哪裡。也許它更適合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

引用自:https://unix.stackexchange.com/questions/137475