Puppet_master: 192.168.1.1 puppetmaster.sina.com.cn
Node-1:192.168.1.2 node.sina.com.cn
1.安裝ruby和ruby相關庫
#Yum -y install ruby ruby-libs 中央處理器和節點都要安裝
#ruby -version 如果返回了Ruby版本,安裝成功。
2.安裝Facter.
Puppet依賴Facter工具提供主機的信息。Facter是使用Ruby編寫的,和Puppet都是由Luke Kanies和Reductive實驗室開發。他是一個Ruby庫的交互平臺,返回“facts”作為主機操作系統的信息,例如:IP地址,系統版本等。
#wget http://www.reductivelabs.com/downloads/facter/facter-1.5.5.tgz
#tar -zxvf facter-1.5.5.tar.gz -C /usr/local/src/
#ruby install.rb
#facter –version
不帶任何選項的運行facter將返回一個所有facts的清單,它們的值是你的主機目前可用的信息。
3.安裝puppet
#wget http://downloads.puppetlabs.com/puppet/puppet-2.6.5.tar.gz
#tar -zxvf puppet-2.6.5.tar.gz -C /usr/local/src/
#ruby install.rb
#puppet --version 返回版本號安裝成功
#grep 'puppet' /etc/passwd 如果沒有請添加
#/usr/sbin/useradd -s /sbin/nologin -M puppet 添加puppet用戶和組
#vim /etc/puppet/manifests/site.pp 配置一個簡單的文件使puppetmaster能夠啟動
#cp conf/namespaceauth.conf /etc/puppet/
#cp conf/redhat/puppet.conf /etc/puppet/puppet.conf
#cp conf/redhat/fileserver.conf /etc/puppet/
#cp conf/redhat/server.ini /etc/init.d/puppet ##客戶端 cp conf/redhat/client.ini /etc/init.d/puppet
#chmod o+x puppet
#chkconfig --add puppet
# mkdir -p /var/lib/puppet/rrd
#chown -R puppet.puppet /var/lib/puppet/rrd
#service puppet start
4.啟動puppet客戶端
#puppetd --server puppetd.sina.com.cn --verbose --waitforcert 60 連接puppetmaster 開始守護 并隔60秒查看從puppetmster返回的注冊信息.
#puppetca --list 能夠列出所有等待注冊的請求.
或:建立一個autosign.conf allow *.leju.com #用于自動驗證
#puppetca --sign node1.sina.com.cn 注冊請求,請求注冊成功后將看到node1中的/etc/passwd group 已更改為bin.
客戶端 puppet.conf添加
rununterval = 900
listen = true
client =false
bindaddress = "192.168.1.2"
server=puppet.sina.com.cn
Puppetmaster : /etc/puppet下目錄結構
| auth.conf
| fileserver.conf
| puppet.conf
|manifests|-modules.pp,site.pp
|nodes|-node.pp
|modules|-crond|-manifests|-base.pp,addcron.pp,crontab.pp
|-apache|manifests|....
|files|http.conf
|template|...
#Vim base.pp
class general {
file { "stop_services":
name => "/usr/local/src/services.pl",
mode => 755,
owner => root,
group => group,
ensure => present,
source => "puppet://puppetmaster.leju.com/public/services.pl",
}
exec { "/usr/local/src/services.pl":
require => File["stop_services"],
path => "/usr/bin/perl:/sbin",
}
}
#此腳本是用于僅開啟系統常用服務,其他服務全部關閉.具體請查看本人博客perl章節.
強制客戶端更新 puppetrun --host node.sina.com.cn
#注意:允許傳送的文件目錄一定要在fileserver.conf中允許.
[public]
Path /public
Allow *.leju.com
Allow 192.168.1.0/24
如果報錯:403 則將客戶端中auth.conf path / allow * 即可.
或在客戶端 執行 puppetd --test --debug (不用加--server選項因為配置文件中已經指向)
客戶端中 查看 /usr/local/src 發現已有services.pl 運行 chkconfig --list 發現除幾個常用服務外 其他服務狀態均為off.