Puppet 基礎
- Puppet架構:C/S架構
- Puppet資源:以下為常用資源
- Puppet在master/agent模型下的簡化的流程圖:
- puppet單機模式下流程圖:
- puppet資料傳輸:
- puppet資源定義文法結構:
Puppet架構:C/S架構
Puppet資源:以下為常用資源
資源名 | 資源含義 |
---|---|
file | 代表檔案或者目錄 |
package | 代表程式包 |
service | 代表服務 |
user | 代表使用者 |
group | 代表組 |
cron | 代表定時任務 |
exec | 代表指令 |
yumrepo | 代表yum倉庫 |
Puppet在master/agent模型下的簡化的流程圖:
puppet單機模式下流程圖:
與master/agent模式唯一不同是從本機擷取manifest
puppet資料傳輸:
伺服器之間使用https協定進行傳輸,puppet中會有自建的CA,以保證資料加密傳輸
puppet資源定義文法結構:
type{‘title’:
attribute1 => value1,
attribute2 => value2,
attribute2 => value3,
...
attributeN => valueN,
}
檢視puppet中支援的所有資源
puppet describe -l
檢視某個資源都支援哪些屬性以及屬性用法
puppet describe [ type]
例子:puppet describe user
檢視某個資源的大概資訊
puppet describe -s [type]
例子:puppet describe -s user
檢視某個資源的元屬性
puppet describe -s -m [type]
例子:puppet describe -s -m user
name屬性是一種特殊屬性,它可省略,當省略name屬性時,資源的名稱即為title的值,如下圖:
user{'xp_test':
ensure => present,
uid => 700,
shell => '/bin/bash',
home => '/home/xp_test'
}
特殊屬性分為三類:
第一種特殊屬性:
名稱變量,英文為namevar,大多數資源的namevar為name屬性。當省略namevar對應的屬性時,其屬性值與對應的title值相同。
第二種特殊屬性:
ensure屬性,用于定義資源的目标狀态,不同的資源,ensure對應的值可以不同,表達的意思也可以不同。
第三種特殊屬性:
元參數,或者稱為“元屬性”,英文為metaparameter,當我們為資源設定為元屬性時,往往希望通過元屬性影響puppet的行為。典型如軟體包與服務的依賴關場景中。