零基礎學習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定位主機觸發更新