puppet運(yùn)維自動(dòng)化之puppet基礎(chǔ)知識(shí)介紹
【puppet基礎(chǔ)導(dǎo)讀】
puppet,這是目前運(yùn)維主流的運(yùn)維自動(dòng)化工具,大多數(shù)運(yùn)維管理人員都聽(tīng)說(shuō)過(guò),或者在使用以及在正在考慮使用中。puppet可以配合cobbler,puppet也可以配合func實(shí)現(xiàn)運(yùn)維自動(dòng)化,簡(jiǎn)單化,化繁雜為簡(jiǎn)單。
1.什么是puppet
puppet是一種Linux、Unix平臺(tái)的集中配置管理系統(tǒng),使用ruby語(yǔ)言,可管理配置文件、用戶(hù)、cron任務(wù)、軟件包、系統(tǒng)服務(wù)等。puppet把這些系統(tǒng)實(shí)體稱(chēng)之為資源,puppet的設(shè)計(jì)目標(biāo)是簡(jiǎn)化對(duì)這些資源的管理以及妥善處理資源間的依賴(lài)關(guān)系。
2.puppet的語(yǔ)法
由于puppet是由ruby寫(xiě)的,因此如ruby語(yǔ)法非常相近,關(guān)于ruby的介紹:請(qǐng)參閱http://ruby-lang.org
3.如何獲得puppet模塊
puppet實(shí)驗(yàn)室提供下載:http://projects.puppetlabs.com/projects/1/wiki/Downloading_Puppet
4.puppet能管理哪些資源:
puppet介紹里有寫(xiě)過(guò),他能管理file(文件),user(用戶(hù)),group(組),package(軟件包),mount(掛載),schedule和cron(計(jì)劃任務(wù)),service(服務(wù)),tidy(清理),yumrepo(yum倉(cāng)庫(kù)),sshkey(ssh認(rèn)證)等常用資源。
5.puppet如何安裝,配置。
1.Puppet在RedHat/CentOS系統(tǒng)上安裝
1).安裝ruby環(huán)境:yuminstallrubyruby-rdoc
2).安裝puppet:yum-yinstallpuppetpuppet-server
6.Puppet的工作模式
Puppet是一個(gè)C/S架構(gòu)的配置管理工具,在中央服務(wù)器上安裝puppet-server軟件包(被稱(chēng)作Puppetmaster)。在需要管理的目標(biāo)主機(jī)上安裝puppet客戶(hù)端軟件(被稱(chēng)作PuppetClient)。當(dāng)客戶(hù)端連接上Puppetmaster后,定義在Puppetmaster上的配置文件會(huì)被編譯,然后在客戶(hù)端上運(yùn)行。每個(gè)客戶(hù)端默認(rèn)每半個(gè)小時(shí)和服務(wù)器進(jìn)行一次通信,確認(rèn)配置信息的更新情況。如果有新的配置信息或者配置信息已經(jīng)改變,配置將會(huì)被重新編譯并發(fā)布到各客戶(hù)端執(zhí)行。也可以在服務(wù)器上主動(dòng)觸發(fā)一個(gè)配置信息的更新,強(qiáng)制各客戶(hù)端進(jìn)行配置。如果客戶(hù)端的配置信息被改變了,它可以從服務(wù)器獲得原始配置進(jìn)行校正。
7.puppet配置文件介紹
主配置文件(puppet.conf):
1).配置文件命名空間:
- main通用配置選項(xiàng)
- puppetd客戶(hù)端配置選項(xiàng)
- puppetmasterd服務(wù)端配置選項(xiàng)
2).main命名空間選項(xiàng):
- confdir配置文件目錄,默認(rèn)在/etc/puppet
- vardir動(dòng)態(tài)數(shù)據(jù)目錄,默認(rèn)在/var/lib/puppet
- logdir日志目錄,默認(rèn)在/var/log/log
- rundirpuppetPID目錄,默認(rèn)在/var/run/puppet
- statedirstate目錄,默認(rèn)在$vardir/state
- statefilestate文件,默認(rèn)在$statedir/state.yaml
- ssldirSSL證書(shū)目錄,默認(rèn)在$vardir/ssl
- trace發(fā)生錯(cuò)誤時(shí)顯示跟蹤信息,默認(rèn)false
- filetimeout檢測(cè)配置文件狀態(tài)改變的時(shí)間周期,單位秒,默認(rèn)15秒
- syslogfacility指定syslog功能為user級(jí),默認(rèn)為daemon級(jí)
3).puppetmasterd命名空間選項(xiàng):
- user后臺(tái)進(jìn)程執(zhí)行的用戶(hù)
- group后臺(tái)進(jìn)程執(zhí)行的組
- mainfestdirmainfests文件存儲(chǔ)目錄,默認(rèn)為$confdir/mainfests
- mainfestmainfest站點(diǎn)文件的名字,默認(rèn)為site.pp
- bindaddress后臺(tái)進(jìn)程綁定的網(wǎng)卡地址接口
- masterport后臺(tái)進(jìn)程執(zhí)行的端口,默認(rèn)為8140
4).puppet命名空間選項(xiàng):
- serverpuppetpuppet服務(wù)器名,默認(rèn)為puppet
- runintervalsecondspuppet應(yīng)用配置的時(shí)間間隔,默認(rèn)1800秒(0.5小時(shí))
- puppetdlockfiefilepuppetlock文件位置,默認(rèn)$statedir/puppetdlock
- puppetportport后臺(tái)進(jìn)程執(zhí)行的端口,默認(rèn)8139
- 文件服務(wù)配置文件(fileserver.conf):
[files] path/var/lib/puppet/files allow192.168.1.* allow*.test.com deny*.example.com
path定義文件存放路徑,通過(guò)allow/deny來(lái)控制訪問(wèn)權(quán)限。
8.puppet命令集
1).puppet用于執(zhí)行用戶(hù)所寫(xiě)?yīng)毩⒌膍ainfests文件
#puppet-l/tmp/manifest.logmanifest.pp
2).puppetd運(yùn)行在被管理主機(jī)上的客戶(hù)端程序
#puppetd–serverpuppet
3).puppetmasterd運(yùn)行在管理機(jī)上的服務(wù)器程序
#puppetmasterd
4).puppetcapuppet認(rèn)證程序
#puppetca-l test1.test.com +test2.test.com #puppetca-stest1.test.com##給test1.test.com簽名
5).puppetrun用于連接客戶(hù)端,強(qiáng)制運(yùn)行本地配置文件
#puppetrun-p10–hosthost1–hosthost2-tremotefile-twebserver
6).filebucket客戶(hù)端用于發(fā)送文件到puppetfilebucket的工具
#filebucket-b/tmp/filebucket/my/file
7).ralsh轉(zhuǎn)換配置信息到puppet配置代碼
#ralshusersky
【puppet基礎(chǔ)總結(jié)】
puppet基礎(chǔ)知識(shí)是學(xué)習(xí)puppet的必經(jīng)之路,puppet有更多,更好,更強(qiáng)大的功能等待著各位去發(fā)現(xiàn)。尤其后面如果要自定義函數(shù),或者深入puppet的話(huà),需要了解下ruby的基本語(yǔ)法。配合ruby可以使系統(tǒng)管理變得更輕松。