運(yùn)維自動(dòng)化Puppet應(yīng)用與架構(gòu)
《運(yùn)維自動(dòng)化Puppet應(yīng)用與架構(gòu)》由會(huì)員分享,可在線閱讀,更多相關(guān)《運(yùn)維自動(dòng)化Puppet應(yīng)用與架構(gòu)(35頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,Page,?,,*,單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,單擊此處編輯母版標(biāo)題樣式,,Page,?,,*,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,單擊此處編輯母版標(biāo)題樣式,,Page,?,,*,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,單擊此處編輯母版標(biāo)題樣式,,Page,?,,*,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,單擊此處編輯母版標(biāo)題樣式,,Page,?,,*,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,單擊此處編輯
2、母版標(biāo)題樣式,,Page,?,,*,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,單擊此處編輯母版標(biāo)題樣式,,Page,?,,*,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,單擊此處編輯母版標(biāo)題樣式,,Page,?,,*,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,單擊此處編輯母版標(biāo)題樣式,,Page,?,,*,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,單擊此處編輯母版標(biāo)題樣式,,Page,?,,*,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,單擊此處編輯母版標(biāo)題樣式,,Page,?,,*,單擊此處編輯母版文本樣式,,第二級(jí)
3、,,第三級(jí),,第四級(jí),,單擊此處編輯母版標(biāo)題樣式,,Page,?,,*,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,單擊此處編輯母版標(biāo)題樣式,,Page,?,,*,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,Page,?,,*,單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,Page,?,,*,單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,Page,?,,*,單擊此處編輯母版標(biāo)題樣式,,Puppet 應(yīng)用
4、與架構(gòu),,,吳問(wèn)志,網(wǎng)站: puppetfans@,,微博:puppetfans@,引言,機(jī)器越來(lái)越多,,應(yīng)用越來(lái)越復(fù)雜,,架構(gòu)越來(lái)越復(fù)雜,,審記越來(lái)越難,,內(nèi)容概要,1.puppet 介紹,,- 什么是puppet,,- puppet 能做什么,,- puppet 如何做到,,- puppet 目錄結(jié)構(gòu)介紹,,2.運(yùn)維自動(dòng)化工具對(duì)比,,- puppet vs cfengine,,- puppet vs chef,,3.puppet 使用時(shí)注意事項(xiàng),,,,4.puppet 應(yīng)用案例,,-puppet 管理用戶,,-puppet nginx 管理,,-puppet kick 介紹,,-pupp
5、et MCollective 介紹,,- puppet func 介紹,,5.puppet 架構(gòu)與集群,,-puppet 架構(gòu),,-puppet 集群方案,,- puppet 集群核心思想,,-puppet性能測(cè)試方法,,6. QA,,-puppet 未來(lái),,,puppet 介紹,什么是puppet,,,遵循GPL 協(xié)議,(2.,7.0,),,基于ruby 語(yǔ)言開發(fā)的系統(tǒng)配置管理工具,,說(shuō)明性語(yǔ)言表達(dá)系統(tǒng),用庫(kù)實(shí)現(xiàn)配置,,基于C/S架構(gòu),配置客戶端和服務(wù)端,也可以獨(dú)立運(yùn)行,,puppet 對(duì)于系統(tǒng)管理員是抽象,只依賴于ruby與facter.,,默認(rèn)情況下,客戶端每30分鐘連接到puppetm
6、aster,,puppet 能做什么,,,puppet 能管理多達(dá)將40多種資源管理,例如:file,user group, host,package,service,cron,exec,yumrepo適合整個(gè)軟件生命周期管理,。,,注:2.7.0以后,使用(,Apache 2.0 license,),,,注:puppet特殊資源--虛擬資源,,?.,puppet 有個(gè)特殊的Type,例如Package,User等。這個(gè)Type就是告訴puppet被管理的是什么資源。,,,puppet 的適用場(chǎng)景,puppet 是如何工作的,puppet 工作流程,,注:內(nèi)部處理過(guò)程是抽象的,Pup
7、pet,模型參考,Puppet,三層模型,,package { "nginx":,,ensure => installed,,,},puppet 工作流程分拆,Facter介紹,Facter是什么,,facter是內(nèi)置的puppet工具,它提供的一個(gè)標(biāo)準(zhǔn)方式去獲得客戶端環(huán)境變量等相關(guān)信息,,Facter能獲得哪些信息,,,#facter -p,,architecture => x86_64,,id => root,,interfaces => eth0,lo,,ipaddress => 192.168.200.63,,ipaddress_eth0 => 192.168.200.63,,。
8、。。。。。。,,ikernprocessor0 => Intel(R) Xeon(R) CPU E5405 @ 2.00GHz,,prouptime => 27 days,,uptime_days => 27,,uptime_hours => 651,,uptime_seconds => 2344200,,注:這些變量可以直接來(lái)使用,例如: {$::ipaddress}或者$::ipaddress,,當(dāng)然你也可以自定義fact,需要使用ruby來(lái)編寫。,,,,,,開源社區(qū)版和企業(yè)版對(duì)比,,開源社區(qū)版,企業(yè)版,,用戶圖形接口,內(nèi)置,Ec2模塊,內(nèi)置,Ec2模塊,,內(nèi)置,Vm
9、ware vms,,配置管理,-發(fā)現(xiàn)和克隆,配置管理,-操作系統(tǒng),配置管理,-操作系統(tǒng),,配置管理,-用戶賬戶管理,管理應(yīng)用,管理應(yīng)用,內(nèi)置,300+模塊,內(nèi)置,300+模塊,,統(tǒng)一跨平臺(tái)組件安裝,,自動(dòng)配置審記,,業(yè)務(wù)流程自動(dòng)化,網(wǎng)絡(luò)技術(shù)社區(qū)支持,網(wǎng)絡(luò)技術(shù)社區(qū)支持,,7*24 小時(shí)技術(shù)支持,,puppetlabs工程師認(rèn)證支持,,依賴包在一個(gè)目錄下,,平滑升級(jí)和維護(hù)支持,puppet 目錄結(jié)構(gòu)與模塊介紹,puppet 目錄結(jié)構(gòu) (右一),,,,注:manifests/site.pp必須存在,,,,puppet 模塊結(jié)構(gòu)(右二),,,,,注: manifests/init.pp必須存在,,Pu
10、ppet,與其它自動(dòng)化工具對(duì)比,puppet,VS,cfengine,p,uppet,,VS,,chef,安裝配置簡(jiǎn)單,安裝復(fù)雜需要依賴DB,基于ruby開發(fā),Puppet 自有高級(jí)配置語(yǔ)言,基于c語(yǔ)言,語(yǔ)法難懂,學(xué)習(xí)維護(hù)成本高,備份恢復(fù)簡(jiǎn)單,備份恢復(fù)復(fù)雜,用于管理各種資源,重點(diǎn)用于管理文件,底層負(fù)責(zé)建模,,模擬資源之間相互關(guān)系,,,,安裝配置簡(jiǎn)單,安裝配置比較復(fù)雜,基于ruby,用戶不熟悉ruby,也可以使用,使用的是ruby擴(kuò)展,需要用戶熟悉ruby語(yǔ)言,入門難,備份恢復(fù)簡(jiǎn)單,維護(hù)不方便,有眾多開發(fā)者和文檔,文檔或者資料少,有更成熟悉商業(yè)經(jīng)驗(yàn),用戶群相對(duì)少,更多功能,借鑒其思想,是pupp
11、et一個(gè)分支,Puppet,使用注意事項(xiàng),1.,主機(jī)名使用,FQDN,格式命名,,,需要DNS或者h(yuǎn)osts解析,,2.C/S,兩端時(shí)間要同步,,SSL,認(rèn)證依賴于時(shí)間,,3.ssl,認(rèn)證過(guò)后,請(qǐng)不要修改主機(jī)名,,4.Usecachefaiure,,5.,tag 和,tagged,,6.,節(jié)點(diǎn)可以繼承,但不能多重繼承,,7.,類可以繼承與覆蓋,子類可以向父類添加額外屬性值,,8.puppet,支持多環(huán)境部署(分:開發(fā)、測(cè)試、線上),,9.tidy,資源中多條件關(guān)系是或者,而不是,and,,10.選擇正確的版本,Puppet,使用時(shí)注意事項(xiàng),1.節(jié)點(diǎn)設(shè)置tag,,tag("old-slow-se
12、rver"),,if tagged("old-slow-server") {,,notify { "this will succeed": },,},,,2.對(duì)資源設(shè)置tag,,,file { "/etc/ssh/sshd_config":,,...,,notify => Service["ssh"],,,tag => "s,sh,",,,},,,# puppet agent --test --tags,ssh,1,類繼承示例,,class,nginx,::port8,1,inherits,nginx,,{ ....,,},,錯(cuò)誤示例,,class,nginx,::port8,1,inh
13、erits,nginx ,apache,,{,,.... },,,子類向父類添加額外屬性,,Service[",nginx,"] {,,require +> File[,/"etc/nginx/conf.d/nginx81.conf",],,,},,},,,Puppet,的應(yīng)用案例,Puppet,管理用戶(關(guān)于:管理用戶的幾點(diǎn)說(shuō)明,,,a. puppet 支持ldap以及nis集中認(rèn)證,,b.puppet 支持用戶密碼管理,最好以''(單引號(hào))括起來(lái),,c. puppet 建用戶的默認(rèn)是不建家目錄的,需要使用managerhome=>true,,p,uppet,管理,nginx,,pupp
14、et kick,,Puppet MC,ollective,,P,uppet,,func,,,puppet 虛擬資源,以@為前綴,,使用虛擬資源需要配置storeconfig,,虛擬資源使用場(chǎng)景,,,多個(gè)資源需要引用共同的某個(gè)資源實(shí)例,例如A用戶是SA,又是DBA,puppet nginx 應(yīng)用案例,Exec有條件的執(zhí)行:,,creates:指定命令所生成的文件那么命令只會(huì)在所指定的文件不存在的情況的被執(zhí)行,,unless:所設(shè)定的命令返回0時(shí)才執(zhí)行,,onlyif:只會(huì)在onlyif設(shè)定的命令返回0時(shí)才執(zhí)行,,refreshonly:觸發(fā)刷新動(dòng)作。,,資源之間依賴關(guān)系:,,before 、 a
15、fter、 require,,資源之間觸發(fā),,subscribe notify,,友情提示:,,refreshonly,refresh的區(qū)別,,refreshonly:收到多少次通知,就執(zhí)行多少資源,,,refresh:不管有多少次通知,請(qǐng)執(zhí)行一次。,,puppet +kick,puppet kick:主動(dòng)強(qiáng)制客戶端運(yùn)行puppet agent.,,注意:puppet kick 并不關(guān)心客戶端puppet agent 有沒(méi)有執(zhí)行錯(cuò)誤,它成功連接到agent 即返回退出0.,MCollective介紹,官方的解釋:MCollective就是一個(gè)調(diào)度器,可以解決多個(gè)puppet agent同時(shí)向m
16、aster提出請(qǐng)求造成性能,速度下降的問(wèn)題;它可以根據(jù)不同的屬性對(duì)節(jié)點(diǎn)進(jìn)行分類,對(duì)不同分類執(zhí)行不同的任務(wù);它是一個(gè)控制終端,可以使用它控制客戶端和服務(wù)器,因此不需要puppet agent定時(shí)運(yùn)行了.,,,MCollective也是一種Client/Server架構(gòu),而且client和server使用Midware(中間件)進(jìn)行通信,需要java以及activemq支持.,,,Mcollective官文說(shuō)明:,, MCollective 功能,1.管理/控制/執(zhí)行,,服務(wù),,軟件包,,進(jìn)程信息,,Facter facts,,ping,,使用說(shuō)明:,,# mco,,The Marionette
17、Collective version 1.3.2,,/usr/bin/mco: command (options),,Known commands: find pgrep facts ping puppetd help controller rpc inventory service,,需要更多功能,可以安裝更多插件,,Mcollective 使用示例,[root@puppet1 ~]# mco find,,,,puppet1,,,,[root@puppet1 ~]## mco ping,, time=56.11 ms,,
18、 time=95.86 ms,,puppet1 time=96.78 ms,,---- ping statistics ----,,3 replies max: 96.78 min: 56.11 avg: 82.92,,[root@puppet1 ~]# mco puppetd status,,,* [ ===================================================> ] 3 / 3,,, Currently
19、 stopped; last completed run 9663 seconds ago,,puppet1 Currently idling; last completed run 1665580 seconds ago,, Currently idling; last completed run 149 seconds ago,,,Finished processing 3 / 3 hosts in 36.27 ms,,Puppet mcollective使用示例,MColle
20、ct使用示例,,[root@puppet1 ~]# mco pgrep ruby,,,* [ ======================================================> ] 3 / 3,,,,PID USER VSZ COMMAND,,9955 root 112.996 MB ruby /usr/sbin/mcollectived --pid=/var/run/mcollectived.pid,,,,,PID USER VSZ COMMAND,,571
21、7 root 113.801 MB ruby /usr/sbin/mcollectived --pid=/var/run/mcollectived.pid,,25631 root 153.289 MB /usr/bin/ruby /usr/sbin/puppetd --server=puppetmaster1 --log,,---- process list stats ----,,Matched hosts: 2,,Matched processes: 3,,Resident Size: 28.917 MB,,Virtual Size: 3
22、80.086 MB,,Finished processing 3 / 3 hosts in 198.42 ms,puppet +func 管理,Func全稱為Fedora Unified Network Controller(Fedora統(tǒng)一網(wǎng)絡(luò)控制器),由Fedara社區(qū)維護(hù)的一款用于服務(wù)器自動(dòng)化遠(yuǎn)程管理的工具。有如下特性:,,Func 可以在主控機(jī)上一次管理任意多臺(tái)服務(wù)器,或任意多個(gè)服務(wù)器組;,,Func 基于 Certmaster(https://fedorahosted.org/certmaster/)建立了,,Master – Slaves 主從 SSL 證書管控體系,可以將證書
23、自動(dòng)分發(fā)到所有受控服務(wù)器;,,Func 命令行可以直接發(fā)送遠(yuǎn)程命令或者遠(yuǎn)程獲取數(shù)據(jù);,,,Func 開 發(fā) 者 已 經(jīng) 完 成 了 大 多 數(shù) 常 用 任 務(wù) 模 塊 的 開 發(fā) :,,CommandModule 、 FileTrackerModule 、 JBossModule 、IPtablesModule、HardwareModule、MountModule、NagiosCheck、NetappModule、 NetworkTest、ProcessModule、ServiceModule、SysctlModule、RebootModule、 RpmModule、VirtModule、
24、YumModule等等,這些模塊的作用都可以顧名思義,或者參考:https://fedorahosted.org/func/wiki/ModulesList ;,,,任何人都可以通過(guò) Func 提供的 Python API 輕松編寫自己的模塊,以實(shí)現(xiàn)體功能擴(kuò)展。而且 任何 Func 命令行能完成的工作,都能通過(guò) API 編程實(shí)現(xiàn);,,,,Func 通訊基于 XMLRPC 和 SSL 標(biāo)準(zhǔn)協(xié)議。,func 使用示例,# func "@fmgr" call process info "aux" ##查看進(jìn)程,,# func "@fmgr" call process mem ## 查看內(nèi)存,,#
25、 func "@fmgr" call service status puppet ##查看fmgr組中各成員puppet進(jìn)程狀態(tài),,#func "@fmgr" call service stop puppet,,{'puppet2': 0, 'puppet3': 0},,# func "@fmgr" call service start puppet,,,tips: func也是使用ssl認(rèn)證,可以使用puppetmaster上的ssl證書認(rèn)證,參見官方文檔說(shuō)明,,puppet 應(yīng)用QA,1. 客戶端是如何使用?,,node default {,,include nginx,,},,2. 文
26、件備份,,a.backup 決定文件的內(nèi)容在被修改前是否進(jìn)行備份。,,b. 文件服務(wù)器,,a. 默認(rèn)是備份到遠(yuǎn)程,,filebucket { main: server => "puppet" },,File { backup => main },,默認(rèn)保存在/ /var/lib/puppet/clientbucket,,b.備份到本地,,filebucket { 'sky' :,,path=>"/data/backup",,,},,File { backup=>sky },,,,文件備份示例:,,f,ile { "/etc/sudoers":,,mode => "440",,,source
27、=> "puppet:///modules/admin/sudoers",,,backup => ".bak",,,},,,恢復(fù):(哈希值),,cp /var/lib/puppet/clientbucket/c/0/7/,,d/0/a/a/2/c07d0aa2d43d58ea7b5c5307f532a0b1/contents /etc/sudoers,,,,puppet 同步大文件可以使用rsync模塊,Puppet,架構(gòu)與集群,Puppet,普遍部署為,C/S,架構(gòu):,,,,,,,Puppet,成熟的集群方案:,,1.Puppet +nginx,,2.Puppet +,p,asseng
28、er,,3,.Puppet +mongrel,,4,.Puppet+git,(特殊),Puppet,架構(gòu)與集群,Puppet,集群核心思想:,,1).puppetmaster,集群,,,-,分擔(dān),puppetmaster,來(lái)自于客戶端的請(qǐng)求壓力,,,可以采取,Active ,Active,模式,.,,,-,采取反向代理模式,將來(lái)自于,8140,的端口請(qǐng)求分散到多臺(tái)puppetmaster,,2).puppet ssl,證書集群,,,-,分擔(dān),puppetmaster,來(lái)自于客戶端,ssl,證書的請(qǐng)求壓力,,,采取,Active,Standby,模式,.,,,3).,采取獨(dú)立運(yùn)行模式,通過(guò)git
29、 將代碼push到客戶端,客戶端本地執(zhí)行相應(yīng)代碼。,,,,Puppet,架構(gòu)與集群,a.puppetmaster 集群架構(gòu)圖,,Puppet,架構(gòu)與集群,puppetca 集群架構(gòu)圖:,,puppetmaster 并發(fā)性能測(cè)試方法,默認(rèn):centos系列puppet-load.rb在 /usr/share/puppet/ext目錄下。,,測(cè)試puppetmaster性能:,,./ext/puppet-load.rb - --debug --node --server puppet1 --factsdir=/var/lib/puppet/yaml/facts --concurrency 1 --repeat 1 --cert /var/lib/puppet/ssl/certs/puppet1.pem --key /var/lib/puppet/ssl/private_keys/puppet1.pem,,參閱:,,http://www.masterzen.fr/2010/10/18/benchmarking-puppetmaster-stacks/,EC2 客戶端puppet 工作流,,puppet 未來(lái),項(xiàng)目地址:,,
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運(yùn)動(dòng)會(huì)安全工作預(yù)案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個(gè)人工作總結(jié)(可編輯)
- 2024年xx村兩委涉案資金退還保證書
- 2024年憲法宣傳周活動(dòng)總結(jié)+在機(jī)關(guān)“弘揚(yáng)憲法精神推動(dòng)發(fā)改工作高質(zhì)量發(fā)展”專題宣講報(bào)告會(huì)上的講話
- 2024年XX村合作社年報(bào)總結(jié)
- 2024-2025年秋季第一學(xué)期初中歷史上冊(cè)教研組工作總結(jié)
- 2024年小學(xué)高級(jí)教師年終工作總結(jié)匯報(bào)
- 2024-2025年秋季第一學(xué)期初中物理上冊(cè)教研組工作總結(jié)
- 2024年xx鎮(zhèn)交通年度總結(jié)
- 2024-2025年秋季第一學(xué)期小學(xué)語(yǔ)文教師工作總結(jié)
- 2024年XX村陳規(guī)陋習(xí)整治報(bào)告
- 2025年學(xué)校元旦迎新盛典活動(dòng)策劃方案
- 2024年學(xué)校周邊安全隱患自查報(bào)告
- 2024年XX鎮(zhèn)農(nóng)村規(guī)劃管控述職報(bào)告