Puppet 之 相關概念和命令介紹
puppet是一種Linux、Unix、windows平臺的集中配置管理系統,使用自有的puppet描述語言,可管理配置文件、用戶、cron任務、軟件包、系統服務等。puppet把這些系統實體稱之為資源,puppet的設計目標是簡化對這些資源的管理以及妥善處理資源間的依賴關系。
puppet采用C/S星狀的結構,所有的客戶端和一個或幾個服務器交互。每個客戶端周期的(默認半個小時)向服務器發送請求,獲得其最新的配置信息,保證和該配置信息同步。每個puppet客戶端每半小時(可以設置)連接一次服務器端, 下載最新的配置文件,並且嚴格按照配置文件來配置客戶端. 配置完成以後,puppet客戶端可以反饋給服務器端一個消息. 如果出錯,也會給服務器端反饋一個消息。
雙license授權,官網:https://puppet.com/products/open-source-projects,官方安裝,可以通過配置yum倉庫安裝,另外服務包在epel源裏有,可以直接通過yum安裝,命令:yum install puppet
本文將介紹puppet的相關概念和命令使用
2 相關概念
puppet的工作模型:
工作模型有兩種:
單機模型(standalone):手動應用清單;
master/agent:由agent周期性地向Master請求清單並自動應用於本地;server端要安裝server和agent包;
程序環境:
配置文件:/etc/puppet/puppet.conf
主程序:/usr/bin/puppet
puppet主程序將所有的程序集成在一個主程序裏,用子命令來實現相關功能的調用,和之前的linux哲學思想不一樣,linux哲學思想是每一個程序文件只實現一個功能
資源抽象的緯度:
即RAL如何抽象資源:
RAL由“類型”和提供者(provider)共同實現;其中
類型:具有類似屬性的組件,例如package、service、file;
將資源的屬性或狀態與其實現方式分離;
僅描述資源的目標狀態,也即期望其實現的結果狀態,而不是具體過程;
資源定義:
向資源類型的屬性賦值來實現,可稱為資源類型實例化;
定義了資源實例的文件即清單,manifest;
manifests:分為:resource(資源清單) 和 node(站點清單)
定義資源的語法:鍵值對,attribute1為可用參數,title就是資源的名字,同一類型的資源名字不能相同,這個是必須要定義的參數的值
type {'title':
attribute1 => value1,
atrribute2 => value2,
……
}
其中資源屬性(attribute)中的三個特殊屬性:
Namevar: 可簡稱為name;,名稱變量(namevar),name可省略,此時將由title表示;
ensure:定義資源的目標狀態;
Provider:指明資源的管理接口,默認可不指定,會根據系統自動選擇
資源引用:
Type['title']:引用類型的首字母必須大寫;如Package['redis'],字母P大寫
元參數:
metaparameters,有如下兩種
依賴關系:before 和 require,定義先後關系,當某個條件執行後,才會執行接下去的資源;
通知關系:notify 和 subscribe,通知相關的其它資源進行“刷新”操作;
3 相關命令
puppet程序:格式
Usage: puppet <subcommand> [options] <action> [options]
相關subcommand介紹如下:
help 顯示 Puppet 幫助.
apply 應用本地的puppet清單
describe 顯示有關資源類型的幫助
agent puppet agent守護進程
master puppet master守護進程
module 在Puppet Forge上創建,安裝和搜索模塊
puppet help
puppet help <subcommand> :查看特定子命令的幫助.
puppet help <subcommand> <action>: 查看特定子命令action的幫助.
puppet apply
puppet apply:將獨立Puppet資源清單應用於本地系統。standalone模式下,資源清單在本地
格式如下:
puppet apply [-d|--debug] [-v|--verbose] [-e|--execute] [--noop] <file>
puppet describe
puppet describe:打印有關Puppet資源類型,提供者和元參數的幫助。
格式如下
puppet describe [-h|--help] [-s|--short] [-p|--providers] [-l|--list] [-m|--meta] [type]
-l:列出所有資源類型;
-s:顯示指定類型的簡要幫助信息;
-m:顯示指定類型的元參數,一般與-s一同使用;
Puppet 之 相關概念和命令介紹