Puppet常用資源:
常用的資源主要有以下幾個:
file:主要負責管理檔案
package:軟體包的安裝管理
service:系統服務的管理
cron:配置自動任務計劃
exec:遠端執行運作指令
更多資源詳細資料,可參見:http://puppet.wikidot.com
寫一個預設配置:vi /etc/puppet/manifests/site.pp
一、File資源:
file {
"/tmp/test.txt":
content => "hello";
}
意思是在/tmp建立一個test.text檔案,檔案内容為hello。
二、Package資源:
package {
["screen","ntp"]:
ensure => "installed";
"pppoe":
ensure => "absent";
定義的意思是yum install screen 和ntp服務,并且解除安裝pppoe安裝包。
三、Service資源:
service {
"sshd":
ensure => running;
"nfs":
ensure => stopped;
}
意思是定義啟動sshd服務,停止nfs服務。
四、 Cron資源:
cron{
"ntpdate":
command => "/usr/sbin/ntpdate pool.ntp.org",
user => root,
hour => 0,
minute => 0,
意思是在用戶端寫入一個計劃任務:0 0 * * * /usr/sbin/ntpdate pool.ntp.org 自動同步時間!
五、向用戶端推送本地腳本:
首先修改vi /etc/puppet/fileserver.conf 檔案,添加如下三行:
[files]
path /etc/puppet/files
allow *
然後cp所需要的腳本到 /etc/puppet/files目錄,沒有這個目錄則建立!
"/tmp/nginx_install.sh":
source => "puppet://master.puppet.com/files/nginx_install.sh",
group => root,
owner => root,
mode => "755"
}
意思是把 /etc/puppet/files/nginx_install.sh這個腳本推送到用戶端的/tmp/下!
六、Exec遠端執行腳本:
如第五步,我們把nginx_install.sh推送過去後,這時候我們就可以執行了如下:
exec {
"/tmp/nginx_install.sh":
cwd => "/tmp",
path => ["/usr/bin","/usr/sbin","/bin","/bin/sh"],
這樣的配置後,你可以在用戶端測試,測試結果已經自動安裝完nginx!如下結果
[root@master tmp]# puppetd --server=master.puppet.com --test
info: Caching catalog for master.puppet.com
info: Applying configuration version '1337450399'
notice: /Stage[main]//Node[default]/Exec[/tmp/nginx_install.sh]/returns: executed successfully
notice: Finished catalog run in 49.96 seconds
但是這裡有個地方需要注意,這每次同步都會執行這個腳本,是以我們要設定一個參數,如果nginx_install.sh有更新才執行:
subscribe => File["/tmp/nginx_install.sh"],
refreshonly => true;
七、執行指令:
###更新sysctl.conf
file { "/etc/sysctl.conf":
source => "puppet://master.puppet.com/files/sysctl.conf",
owner => "root",
group => "root",
mode => 644,
}
"sysctl refresh kernel config":
path => ["/usr/bin", "/usr/sbin", "/bin", "/sbin"],
command => "/sbin/sysctl -p",
subscribe => File["/etc/sysctl.conf"],
refreshonly => true
}
有更新才在用戶端執行!如果沒有更新則不執行!
本文轉自 freeterman 51CTO部落格,原文連結:http://blog.51cto.com/myunix/1104197,如需轉載請自行聯系原作者