File 資源
1 管理系統本地檔案
u設定檔案權限和屬性
u管理檔案内容,可以基于模闆的内容管理
u支援管理目錄
u從遠端伺服器複制整個目錄到本地
依賴
該資源類型沒有依賴
平台
該資源類型支援所有平台
2 參數
backup
決定檔案的内容在被修改前是否進行備份。利用filebucket對檔案進行備份,按檔案的md5sum進行歸類,便于恢複檔案的時候找到檔案。可以把檔案備份到puppet用戶端,也可以通過設定backpup => bucket_name 把檔案備份到網絡上的其他機器上.如果backup的值
是一個點号”.”開頭的字元串,puppet會把檔案備份在同一個目錄下,備份檔案的擴充名就是backup裡面的那個字元串.如果設定backup=>false,該檔案不做備份
puppet 自動在本地建立目錄,并且把要修改的檔案備份到那裡,如果要備用到網絡上面的機器進行備份,必須地filebucket進行配置,例如
filebucket { main:
server =>puppet
}
puppetmaster 預設也會建立一個filebucket,一旦你按照上面的代碼進行了配置,同時也需要在其他代碼中就可以使用網絡上面的filebucket
file { “/my/file”:
soruce => “/path/in/nfs/or/something”,
backup => main
}
上面的代碼會讓檔案備份到puppetmaster所在機器上,即puppet的主伺服器
這樣就不用每個機器上都建立一個本地的filebucket,每個版本的檔案通常隻備份一次,通常你可以手工的回複你備份的檔案
checksum
怎樣檢查檔案是否被修改,這個狀态用來在複制檔案的時候使用,這裡有幾種檢測檔案的方式,包括md5,mtime,time,timestamp等,預設的檢查是用md5
content
把檔案的内容設定為content參數後面的字元串,新行,tab,空格可用escaped syntax 表示.這個參數主要用于提供一種簡潔的機遇模闆的檔案内容。例如
defineresolve(namserver1,nameserver2,domain,search) {
$str = “search$search
domain$domain
nameserver$nameserver1
nameserver$nameserver2”
file {“/etc/resolv.conf”:
content => $str
}
ensure
如果檔案本來不存在是否要建立檔案,可以設定的值是absent和present,file和directory,如果指定present,就不會檢查該檔案是否存在,如果不存在就建立該檔案,如果指定absent,
就會删除該檔案(如果recurse => true,就會删除目錄)如果提供的值不是上面的4種,那麼就會建立一個檔案的符号連結,下面的代碼就将建立一個符号連結
file {“/etc/inetd.conf”:
ensure =>”/etc/inet/inetd.conf”
也可以設定相對路徑的符号連結
file {“/etc/inetd.conf”:
ensure => “inet/inetd.conf”
force
force 目前的唯一作用是用在把一個目錄變成一個連結,可用的值四ture 和false
group
指定該檔案的使用者組,值可以是gid 或者組名
ignore
當recursion方法複制一個目錄的時候,可以用ignore來設定過濾條件,符合過濾條件的檔案不被複制,使用ruby自帶的比對法則,是以shell級别的過濾表達式完全支援,如[A-G]*
links
定義操作符合連結檔案。可以設定的值是follow和manage;檔案拷貝的時候,設定follow,會拷貝檔案的内容,而不是指拷貝符号連結本身,如果設定manage,會拷貝符合連結本身
mode
mode用于設定檔案的權限
owner
設定檔案的屬主
path
指定要管理檔案的路徑,必須用引号引起來,這也是一個資源的namevar,通常path等于資源的title
recurse
設定是否以及如何進行遞歸操作,可以設定的值是false,true,inf,remote
recurselimit
遞歸的深度,設定的值可以比對/^[0-9]+$/
replace
是否覆寫已經存在的檔案。可以設定的值是(true,yes),(false,no) 注true和yes一樣,false和no是一樣
Selrange
檔案内容是否屬于Selinux那個組成部分,隻适于開啟了Selinux的機器
SElrole
檔案所屬的Selinux角色
SEltype
檔案所屬的Selinux type
SELuser
檔案所屬的Selinux user
source
拷貝一個檔案覆寫目前檔案,用checksum來判斷是否有必要進行複制,可以設定的值是一個引用的完整的檔案路徑,或者是URI,目前支援的UIL隻有puppet和file,這是一個對檔案常用的操作,可以讓puppet 修改系統的配置檔案
class sendmail {
file { “/etc/mail/sendmail.cf”;
source => “puppet://server/module/sendmail.cf”
sourceselect
選擇拷貝目錄級别,預設,source四遞歸的
target
是為建立連結的。可以設定的值為notlink
type
檢查檔案是否隻讀
本文轉自 freehat08 51CTO部落格,原文連結:http://blog.51cto.com/freehat/1263687,如需轉載請自行聯系原作者