樹結構如下:
|-- 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,
}