天天看點

MCollective架構篇3-Puppet插件的部署及測試

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

MCollective可以使用多種方式進行擴充。最普遍的一種擴充MCollective的方式就是重用已經寫好的agent插件。這些小的Ruby庫可以讓MCollective在整個叢集中執行自定義的指令。

一個agent插件通常包含一個Ruby庫,它必須被分發到所有運作MCollective agent的節點上。另外,一個資料定義檔案(DDL)提供了插件接受的傳入參數的具體描述,整個DDL檔案需要放在MCollective用戶端系統 上。最後,一個使用指定的agent插件運作MCollective的腳步也需要被安裝到所有的MCollective用戶端系統上。

1.1 安裝puppet agent插件

MCollective本身并不包含一個可以立即使用的Puppet agent插件,需要安裝使用。這一插件可以讓操作員在需要時運作Puppet agent。他不需要等待Puppet agent的預設運作間隔,也不需要使用其他工具來開始這些任務

1.1.1 安裝MCollective的Agent插件

1.1.2 載入Agent插件

1.1.3 驗證Agent插件是否被載入

1.1.4 從MCollective中運作Puppet

備注:當使用MCollective運作Puppet時,要求在所有被管理的節點上Puppet agent守護程序都需要被關閉。在每次使用mco puppet -v runonce指令調用puppetd agent時,MCollective都會産生一個新的Puppet程序。這個程序會和任何已經運作的Puppet agent守護程序産生功能性的重複。

1.2 安裝facter插件(測試多次發現存在不穩定性)

注意:通過facter插件擷取節點facter變量資訊不是很穩定,是以可将節點facts資訊通過inline_template寫入/etc /mcollective/facts.yaml中,并在/etc/mcollective/server.cfg中設定factsource = yaml,這樣MCollective用戶端隻需要每次讀取這個檔案中的facter變量即可。而且在本地目錄/var/lib/puppet/yaml /facts/也會生成一份節點的facter資訊,子產品部分資訊如下:

1.3 使用中繼資料定位主機

1.3.1 使用預設facter中繼資料定位主機

1.3.1.1 觸發所有系統為RedHat,版本為5.7的所有節點puppetd守護程序

1.3.1.2 觸發所有系統為RedHat,kernel版本為2.6.18的所有節點puppetd守護程序

1.3.2 使用自定義facter中繼資料定位主機

備注:使用自定義facter中繼資料可以更加靈活的定位主機,如何定義fact可參考博文《通過自定義fact增強MCollective推送更新中繼資料的靈活性》

1.3.2.1 在agent1上定義facter my_apply1和my_apply2

1.3.2.2 在agent2上定義facter my_apply2和my_apply3

1.3.2.3 在MCollective用戶端測試節點自定義facter是否正确

1.3.2.4 通過自定義facter定位主機觸發更新