puppet組織架構

Dus發表於2015-10-15
   樹結構如下: 
       |-- puppet.conf   #主配置配置檔案 
       |-- fileserver.conf #檔案伺服器配置檔案 
       |-- auth.conf     #認證配置檔案 
       |-- autosign.conf # 自動驗證配置檔案 
       |-- tagmail.conf  #郵件配置檔案(將錯誤資訊傳送) 
       |-- manifests     #檔案儲存目錄(puppet 會先讀取該目錄的.PP 檔案) 
       |   --nodes 
       |   |    | puppetclient.pp 
       |   |-- site.pp   #定義puppet 相關的變數和預設配置。 
       |   |-- modules.pp  #載入class 類模組檔案(include syslog) 
       |-- modules        #定義模組 
       |   -- syslog     #以syslog 為例 
       |        |-- file 
       |        |-- manifests 
       |        |   |-- init.pp #class 類配置
       |        |--- templates    #模組配置目錄 
       |        |   |-- syslog.erb #erb 模板

重要概念

資源:定義目標狀態的核心元件;

核心資源包括:notify、package、group、user、file、exec、cron、service等;

模組:以資源為核心,是類的集合,如mod1,mod2

節點:以被管理主機為為核心,如node1,node2

puppet利用模組+節點的方式,實現目標狀態的定義

manifest:清單,用於定義並儲存資源,是一個資源組織工具;

facter:獲取各被管理節點資源使用情況的方式;

常見結構整理

看了網上無數資料,通過億圖畫出了以下三種結構,紅色的表示根目錄,桔色的表示目錄,藍色的表示檔案。因為我處於探索puppet中,所以不好說誰好誰壞,根據我目前個人的理解,我覺得圖二比較適合我公司用,linux伺服器不多,只有70臺左右,其它幾百臺伺服器都是windows,用不上puppet。圖一,太過於簡單,如果節點伺服器一多,結構勢必會有點亂,圖三,過於精細化,對上千臺伺服器的規模有用。

編寫base.pp

功能說明:安裝cron包並啟動服務

vim base.pp
----------------------
class cron::base {   
package { cron:  
name => $operatingsystem ?  
{#facter 獲取客戶端作業系統確定包的名稱  
ubuntu => "cron",  
debian => "cron",  
redhat => "vixie-cron",  
centos => "vixie-cron", },  
ensure => present,  
}  

相關文章