MCollective架構篇1-MCollective架構的引入

零基礎學習Puppet自動化配置管理系列文檔html

Marionette Collective(MCollective)是一個與Puppet關係密切的服務運行框架。Puppet擅長管理系統的狀態,但agent默認的30 分鐘間隔的運行方式使它不合適做爲實時管理控制工具使用,而MCollective的功能定位正式面向大規模主機羣的實時任務並行處理。它離線消息中間件 技術實現檢點間的信息傳遞,大量主機能夠基於自身的某些固有屬性(元數據)而非主機名進行分組,這意味着用這些信息按照不一樣標準將集羣分爲多個羣組,任務 執行的目標是一個羣組,而不是一臺主機。 也能夠參考紙飛機的博客關於mcollective的介紹 http://junqili.com/java

MCollective特色:

可以與小到大型服務器集***互

使用廣播範式(broadcast paradigm)來進行請求分發,全部服務器會同時收到請求,而只有與請求所附帶的過濾器匹配的服務器纔會去執行這些請求。沒有中心數據庫來進行同步,網絡是惟一的真理

打破了以往用主機名做爲身份驗證手段的複雜命名規則。使用每臺機器自身提供的豐富的目標數據來定位它們。目標數據來自於:Puppet, Chef, Facter, Ohai 或者自身提供的插件

使用命令行調用遠程代理

可以寫自定義的設備報告

大量的代理來管理包,服務和其餘來自於社區的通用組件

容許寫 SimpleRPC 風格的代理、客戶端和使用 Ruby 實現 Web UIs

外部可插件化(pluggable)實現本地需求

中間件系統已有豐富的身份驗證和受權模型,利用這些做爲控制的第一道防線。

重用中間件來作集羣、路由和網絡隔離以實現安全和可擴展安裝。

MCollective 就是一個框架,一個空殼。它除了 MCO 命令以外均可以被替換被自定義。數據庫

備註:更多信息請參考http://docs.puppetlabs.com/安全

Middleware(RabbitMQ、ActiveMQ)介紹

RabbitMQ是一個實現了高級消息排隊協議(AMQP)的消息隊列服務。RabbitMQ基於OTP(Open Telecom Platform,開發電信平臺)進行構建,並使用Erlang語言和運行時環境來實現。 ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息總線。ActiveMQ 是一個徹底支持JMS1.1和J2EE 1.4規範的 JMS Provider實現服務器

備註:MCollective是基於Apache ActiveMQ中間件來進行開發和測試的,然而其對java和XML格式的配置文件的依賴使咱們將更多的注意力和興趣轉移到RabbitMQ中間件服務 上。若是考慮到性能和擴展性,部署ActivemMQ是一個更好的選擇。微信

工做原理圖

mcollective觸發更新圖mcollective觸發更新圖網絡

備註:更多詳細信息請參考 http://docs.puppetlabs.com/mcollective/reference/basic/messageflow.html 框架

部署介紹

  • MCollective安裝分client安裝和server端安裝,其次須要安裝MQ,本實驗選擇RabbitMQ,安裝好以後須要進行相應的設置,而後進行通訊。ide

  • 如何和puppet進行整合,須要經過puppet插件實現。工具

  • 本實驗採用的版本爲 mcollective 2.2.4 rabbitmq  3.1.5

返回主目錄

交流方式:

微信公衆號:puppet2014,可微信搜索加入,也能夠掃描如下二維碼進行加入

微信公衆號微信公衆號

QQ交流羣:296934942

相關文章
相關標籤/搜索