#### MCollective架構篇1-MCollective架構的引入
Marionette Collective(MCollective)是一個與Puppet關系密切的服務運行框架。Puppet擅長管理系統的狀態,但agent默認的30分鐘間隔的運行方式使它不合適作為實時管理控制工具使用,而MCollective的功能定位正式面向大規模主機群的實時任務并行處理。它離線消息中間件技術實現檢點間的信息傳遞,大量主機可以基于自身的某些固有屬性(元數據)而非主機名進行分組,這意味著用這些信息按照不同標準將集群分為多個群組,任務執行的目標是一個群組,而不是一臺主機。也可以參考紙飛機的博客關于mcollective的介紹 [http://junqili.com/](http://junqili.com/)
### MCollective特點:
~~~
能夠與小到大型服務器集群交互
使用廣播范式(broadcast paradigm)來進行請求分發,所有服務器會同時收到請求,而只有與請求所附帶的過濾器匹配的服務器才會去執行這些請求。沒有中心數據庫來進行同步,網絡是唯一的真理
打破了以往用主機名作為身份驗證手段的復雜命名規則。使用每臺機器自身提供的豐富的目標數據來定位它們。目標數據來自于:Puppet, Chef, Facter, Ohai 或者自身提供的插件
使用命令行調用遠程代理
能夠寫自定義的設備報告
大量的代理來管理包,服務和其他來自于社區的通用組件
允許寫 SimpleRPC 風格的代理、客戶端和使用 Ruby 實現 Web UIs
外部可插件化(pluggable)實現本地需求
中間件系統已有豐富的身份驗證和授權模型,利用這些作為控制的第一道防線。
重用中間件來做集群、路由和網絡隔離以實現安全和可擴展安裝。
~~~
MCollective 就是一個框架,一個空殼。它除了 MCO 命令之外都可以被替換被自定義。
**備注:**更多信息請參考[http://docs.puppetlabs.com/](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是一個更好的選擇。
### 工作原理圖
備注:更多詳細信息請參考 [http://docs.puppetlabs.com/mcollective/reference/basic/messageflow.html](http://docs.puppetlabs.com/mcollective/reference/basic/messageflow.html)
### 部署介紹
- MCollective安裝分client安裝和server端安裝,其次需要安裝MQ,本實驗選擇RabbitMQ,安裝好之后需要進行相應的設置,然后進行通信。
- 如何和puppet進行整合,需要通過puppet插件實現。
- 本實驗采用的版本為mcollective 2.2.4rabbitmq 3.1.5
- 序
- 第一章:Puppet基礎篇
- 編寫此系列文檔的目的
- 如何學習和使用Puppet
- 安裝Puppet前期的準備工作
- 安裝、配置并使用Puppet
- 如何建立master和agent之間的認證關系
- Puppet更新方式的選型
- 編寫第一個完整測試模塊puppet
- 編寫第二個完整測試模塊yum
- Puppetmaster多環境配置
- 自定義fact實現的四種方式介紹
- 第二章:Puppet擴展篇
- 自定義fact結合ENC(hirea)的應用實踐
- 如何使用虛擬資源解決puppet沖突問題
- 如何擴展master的SSL傳輸性能(apache)
- 如何擴展master的SSL傳輸性能(nginx)
- 通過多進程增強master的負載均衡能力(nginx+mongrel)
- 通過橫向擴展puppetmaster增加架構的靈活性
- puppet代碼與版本控制系統的結合
- Puppet dashboard的部署及測試
- 第三章:MCollective架構篇
- MCollecitve架構的引入
- MCollective+MQ架構的部署
- Puppet插件的部署及測試
- MCollective各種插件的部署及測試
- MCollective安全性設計
- MQ的安全性設計
- 多MQ下MCollective高可用部署
- 第四章:Foreman架構的引入
- Foreman作為自動化運維工具為什么會如此強大
- 安裝前環境準備
- 安裝Foreman1.5架構(all-in-one)
- 安裝Foreman1.6架構(foreman與puppetmaster分離)
- 安裝Foreman1.7架構(源碼,僅測試使用)
- 整合puppetmaster
- Foreman結合mcollective完成push動作
- Foreman結合puppetssh完成push動作
- Foreman的ENC環境與fact環境的對比
- hostgroup如何轉換為本地的fact
- 智能變量與puppet模塊參數化類的結合
- Foreman報告系統的使用
- Foreman-proxy如何做負載均衡
- Foreman上如何展現代碼及文件內容
- Foreman如何和虛擬化管理軟件結合
- 如何借助Foreman完成自動化部署操作系統(一)
- 如何借助Foreman完成自動化部署操作系統(二)
- Foreman CLI(Hammer)工具的使用
- Foreman目前的不足之處