puppet 2 資源介紹

2021-09-07 17:26:29 字數 4144 閱讀 9785

puppet- 資源介紹:

group的常用屬性:

ensure: present, absent

name: 組名

gid: gid

system: 是否為系統組;true, yes; false, no

user的常用屬性:

ensure: present, absent

name: 使用者名稱

uid: uid

system: 是否為系統使用者;

gid: 基本組;

groups: 附加組;

home: 家目錄;

password: 密碼;

shell: 預設shell;

comment: 注釋資訊;

expiry: 賬號過期期限 不常用

file的常用屬性:

管理檔案從屬關係、許可權及其內容。

管理的型別有:

普通檔案

目錄 符號連線等(通過ensure屬性指定)

如果管理普通檔案,檔案內容可以:

直接用content屬性直接給出,

recurse: 屬性是布林型。因此recurse屬性 只有在ensure 屬性為directory時才有意義。

content:直接生成的檔案內容;

ensure: file, directory, link, absent, present

target: 符號鏈結檔案的鏈結目標;一般當ensure屬性為link時才需要指定此屬性,表示從**鏈結,一旦定義target,那麼content和source就沒有用了,沒有任何意義。

owner: 屬主

group: 屬組

mode: 許可權,支援八進位制個石泉縣,以及u,g,o的賦權方式

path:目標路徑,指定檔案放哪建議使用絕對路徑

force: 強制刪除;僅用於ensure為absent時; 不是必須屬性

purge: 清除指定目錄中存在的,但是在puppet中未定義的檔案;

replace:是否替換已經存在的檔案;

exec的常用屬性:

執行一外部命令,命令應該具有「冪等性」 (可以多次執行,不會損壞結果)

冪等性:

1. 命令本身具有 「冪等性」。 (yum update ,apt-get update)

2. 資源有onlyif,unless,creates 等屬性以實現命令的條件式執行。

onlyif 僅在什麼時候執行

unless 除非什麼條件下執行

creates 剛剛建立時執行比如建立目錄/建立檔案

3. 資源有refreshonly 屬性,實現只有訂閱的資源發生變化時才執行。只有在重新整理時執行:只有這個資源依賴的其他資源改變了,這個命令才執行.用於執行命令;但通常僅應該用於必須執行命令才能完成操作時(puppet本身無法完成此功能);

核心屬性

command: 要執行的命令,通常應該使用絕對路徑;

creates:檔案。 此屬性跟的檔案不存在時才執行命令。加入command 是建立 檔案,那麼執行的條件是這個檔案不存在

onlyif:給定測試命令。僅在此命令執行成功即執行狀態碼返回為0,才執行command命令

unless:給定測試命令。 和onlyif相反,僅當測試命令執行狀態碼不為0時,才執行command命令

cwd: 目錄, 在哪個目錄下執行命令

path:為非絕對路徑的命令指定搜尋路徑; 類似 環境變數 [path1,path2],如果不定義此屬性,則必須給出命令的絕對路徑。

user:

group:

refresh: 跟命令,預設為收到依賴的資源的事件時會重新執行此命令;但此屬性可以修改此預設行為;(定義命令接收到重新整理通知時怎樣操作,跟的也是命令,預設命令在執行一次,可以自定義,加入此命令為建立目錄,當接收到重新整理通知時,你可以先刪除在建立。簡單點就時 重新整理時執行的命令。)

refreshonly: 此資源不會自動被執行,除非被依賴的資源發生了改變;(僅在收到refresh通知時,才執行此資源,布林型值)

returns: 指定狀態返回值;指定期望得到的返回值,當返回非此值時表示命令執行失敗,預設為0, 一般不需要定義

tries: 嘗試執行次數 ,預設一次 根據returns 判斷是否成功

timeout: 超時時長

notify 最簡單的資源,就是顯示資訊

核心屬性

message 要傳送的訊息的內容,還是name/namevalue

notify

cron的常用屬性: 定義任務計畫/管理任務計畫

ensure: present, absent

command: 週期性執行的命令;

environment: 定義path環境變數;

hour:

minute:

month:

monthday:

weekday:

package的常用屬性:

管理程式包: 解除安裝,安裝,公升級

ensure:installed, latest,version(2.3.1-2.el7) ,present, absent

name: 程式包名稱

source:包檔案的路徑,可以是本地檔案系統路徑,也可以是個url;puppet:///modules/module_name/filename

provider 指定採用哪種方式安裝程式包,如在centos系統中預設採用yum進行安裝。現在想通過rpm進行安裝,安裝的源就是source屬性所指定的檔案,那麼就必須使用provider屬性 定義成rpm了。所以說 只有當provider 設定了 ,source屬性才有意義。那麼又乙個實際應用的問題,當你採用rpm進行安裝時,需要解決依賴關係,那麼怎麼解決依賴關係呢。這時候我們就需要使用exec資源了。yum install指定本地安裝檔案,那麼會使用本地的rpm包進行安裝,同時又能解決依賴關係。最後你會發現使用exec資源是萬能的。當編譯安裝的時候 還是要採用exec資源進行.

其他屬性用的都不多了

範例:

package,

}

service 管理服務的

service的常用屬性:

binary: 指定執行檔案

ensure:

true, running 啟動

false, stopped 停止

enable: 是否開機自動啟動

name:服務名稱

path: 服務指令碼路徑 我們知道,在linux系統下有兩種啟動方式, 一種是直接呼叫二進位制執行檔案,另外一種就是用系統中的服務管理命令,比如centos6中的service。所以當你不指定binary檔案時,這個path就是指centos系統中的service命令呼叫哪個執行檔案。我們知道一般service管理的服務命令都在/etc/init.d/目錄下。如 /etc/init.d/httpd 檔案。另外還有當用service進行管理服務時會有restart,status,start ,stop等選項。但是 puppet 並不知道你有沒有這些命令所以才會有 hasrestart ,hasstop,hasstart, hasstatus屬性,都是布林值型。當你把這些值設定為false時,服務又有需求接受refresh 重新整理後進行restart,那你怎麼辦呢。所以又需要我們自己在資源中定義start,stop, restart, status等屬性,屬性值為命令

hasrestart: 是否支援restart引數

hasstatus: 是否支援status引數

pattern: 指明用於搜尋此服務相關程序的模式,當指令碼不支援restart/status時,用於確定服務是否處於執行狀態。如果你的服務不支援stop,那就需要kill掉程序,那kill 的時候我們知道有的服務啟動的程序有好幾個,就需要匹配需要kill 掉的每個程序的,這個應該也是用pattern

start:

stop:

restart: reload

status:

notify/subscribe 通知/訂閱舉例

puppet 基礎 資源

常用資源 user group package file service exec cron notify 使用者組資源 使用者資源 ensure present,gid 102 allowdupe true,ensure present,uid 501 allowdupe true,當進行使用者管...

Puppet 系統服務資源

puppet自動化 服務資源 service資源 管理系統執行的服務程序 不幸的是不同的系統管理服務的方式是多樣的 有些系統上面對於服務管理很簡單 有些系統提供複雜的強大的服務管理功能 puppet 提供最基本的服務管理 你也可以指定 provider,使用一些特性.引數 binary 執行服務的命...

puppet高階指南 service資源詳解

service資源 通過service資源不但可以啟動,重啟和關閉程式的守護程序,監控程序狀態,還可以將守護程序加入到自啟動中。1 service資源常用屬性 service 資源標題 binary enable ensure hasrestart hasstatus name path patte...