一 puppet 簡介
puppet 是用ruby 開發的,開源的集中配置管理工具。puppet 是一個C/S結構。能夠幫助系統管理者對系統,進行軟體包更新,管理配置檔案,系統服務,cron 任務,以及對系統中使用者管理等等。puppet 是個典型的星型架構,clients 預設情況下是每30分鐘請求一次server端,确認是否有新的變更操作指令。在配置puppet 環境的時候,需要使用dns 如果沒有dns 的可以修改hosts 檔案,確定puppet master和puppetclient 都能夠正确解析對方。
puppet 工作流程如下:
1 用戶端puppetd 調用facter,facter 探測出主機的一些變量,如主機名稱,記憶體大小,ip位址等。puppetd 把這些資訊通過ssl 連接配接發送到伺服器端
2 伺服器端的puppetmaster 檢測用戶端的主機名,然後找到manifest裡面對應的node配置,并對該部分内容進行解析,facter送過來的資訊可以作為變量處理,node牽涉到的代碼才解析,其他沒有牽涉的代碼不解析。解析分為幾個階段,文法檢查,如果文法錯誤就報錯。如果文法沒有錯誤,就繼續解析,解析的結果生成一個中間的“僞代碼“,然後把僞代碼發送給用戶端;
3 用戶端接收到僞代碼,并執行,用戶端吧執行結果發送給伺服器端;
4 伺服器端包用戶端的執行結果寫入日志
二 所需軟體,
ruby-2.0.0-p195.tar.gz
facter-1.6.18.tar.gz
puppet-3.2.1.tar.gz
三 配置安裝
1 首先删除系統自帶的ruby 因為我的OS Version 為RHEL5.0,為在後面安裝foreman 或者puppet-dashboard,故這裡更新了ruby
#yum remove ruby-*
#tar xf ruby-2.0.0-p195.tar.gz
#cd ruby-2.0.0-p195
#./configure –prefix=/usr/local/ruby && make && makeinstall
2 安裝facter
# tar xf facter-1.6.18.tar.gz
#cd facter-1.6.18
#/usr/local/ruby/bin/rubyinstall.rb
3 安裝puppet
#tar xf puppet-3.2.1.tar.gz
#cd puppet-3.2.1
#/usr/local/ruby/bin/ruby install.rb
4 配置puppet
#cd ext/redhat
#cp puppet.conf fileserver.conf /etc/puppet/
#cp logrotate /etc/logrotate.d/puppetmaster
#cp server.init /etc/init.d/puppetmaster
#chmod 700 /etc/init.d/puppetmaster
#cp server.sysconf ig /etc/sysconfig/puppetmaster
#useradd puppet
#cp ../../conf/{auth.conf,tagmail.conf} /etc/puppet/
5 建立指令連接配接
#ln -sf /usr/local/ruby/bin/{bundle,erb,extlookup2hiera,facter,gem,irb,puppet,rake,rdoc,ri,ruby,testrb} /usr/bin
6 puppet 配置檔案詳解
#cd /etc/puppet
#ls
auth.conf
files
fileserver.conf #puppet檔案伺服器配置檔案
manifests #puppet主檔案所在目錄
modules #puppet 的子產品所在檔案
namespaceauth.conf
puppet.conf #puppet 的主配置檔案
本文轉自 freehat08 51CTO部落格,原文連結:http://blog.51cto.com/freehat/1213217,如需轉載請自行聯系原作者