站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的部署與應(yīng)用

        1、 案例概述

        作為一名系統(tǒng)管理員,維護(hù)服務(wù)器正常運(yùn)行是最基本的職責(zé),在管理幾臺(tái)到幾十臺(tái)服務(wù)器時(shí),大部分管理員喜歡自己寫(xiě)小工具來(lái)維護(hù),但隨著服務(wù)器的數(shù)量曾多,任務(wù)量也逐漸增多,這時(shí)就需要簡(jiǎn)潔的、強(qiáng)大的框架來(lái)完成系統(tǒng)管理的任務(wù),為了實(shí)現(xiàn)這一目的,我們引入了一些工具,這些工具是可編程的,系統(tǒng)管理員只需要為這個(gè)工具寫(xiě)上幾行代碼,它便會(huì)自動(dòng)的完成所有的工作,這批工具就是運(yùn)維自動(dòng)化puppet,它可以針對(duì)多臺(tái)服務(wù)器進(jìn)行統(tǒng)一操作,如部署統(tǒng)一的軟件、進(jìn)行統(tǒng)一上線維護(hù)等,而且能快速完成上線部署,減少人力及人力誤操作風(fēng)險(xiǎn)。

        2、 Puppet的工作原理

        Puppet的目錄是讓管理員只集中于要管理的目標(biāo),而忽略實(shí)現(xiàn)的細(xì)節(jié)。Puppet即可以運(yùn)行在單機(jī)上,也可以以C/S結(jié)構(gòu)使用。在大規(guī)模使用puppet的情況下,通常使用C/S結(jié)構(gòu),在這種結(jié)構(gòu)中puppet客戶端只運(yùn)行puppeclient,puppet服務(wù)端只運(yùn)行puppemaster。

        1puppet具體的工作原理

        Puppet的搭建和應(yīng)用從入門(mén)到精通

         

             

        1)      客戶端puppet調(diào)用fast探測(cè)出主機(jī)的一些變量,如主機(jī)名、內(nèi)存大小、IP地址等。Puppet把這些信息使用SSL連接發(fā)送給服務(wù)器端

        2)      服務(wù)器端的puppetmaster通過(guò)fast工具分析檢測(cè)客戶端的主機(jī)名,然后找到項(xiàng)目的主配置文件manifest里面對(duì)應(yīng)的node配置,并對(duì)該部分內(nèi)容進(jìn)行解析,fast發(fā)送過(guò)來(lái)的信息可以作為變量處理,node牽扯到的代碼才被解析,沒(méi)牽扯到的不解析,解析分為語(yǔ)法檢查,如果語(yǔ)法沒(méi)錯(cuò),繼續(xù)解析,解析結(jié)果生成一個(gè)結(jié)果‘偽代碼’,然后把‘偽代碼’發(fā)給客戶端

        3)      客戶端收到‘偽代碼’并且執(zhí)行,客戶端把執(zhí)行結(jié)果發(fā)給服務(wù)器

        4)      服務(wù)器端把客戶端的執(zhí)行結(jié)果寫(xiě)入日志

        2puppet工作過(guò)程中的注意事項(xiàng)

        1)      為了保證安全,Client和Master之間是基于SSL和證書(shū)的,只有經(jīng)Master證書(shū)認(rèn)證的Client可以與Master通信

        2)      Puppet會(huì)讓系統(tǒng)保持在人們所期望的某種狀態(tài)并一直維持下去,如檢測(cè)某個(gè)文件并保證其一直存在,保證SSH服務(wù)始終開(kāi)啟,如果文件被刪除了或者ssh服務(wù)關(guān)閉了,puppet下次執(zhí)行時(shí)(默認(rèn)30分鐘)會(huì)重新創(chuàng)建該文件或者啟動(dòng)SSH服務(wù)

        3、 項(xiàng)目環(huán)境

         Puppet的搭建和應(yīng)用從入門(mén)到精通

         

        主機(jī)

        操作系統(tǒng)

        IP地址

        主要軟件

        Puppetmaster

        CentOS6.5

        192.168.31.83

        Ruby-rdoc-1.8.7.352

        Ruby-libs-1.8.7.352

        Ruby-irb-1.8.7.352

        Ruby-1.8.7.352

        Puppet-2.7.21.tar.gz

        Facter-1.7.1.tar.gz

        Puppetclient1

        Centos6.5

        192.168.31.184

        Ruby-rdoc-1.8.7.352

        Ruby-libs-1.8.7.352

        Ruby-irb-1.8.7.352

        Ruby-1.8.7.352

        Puppet-2.7.21.tar.gz

        Facter-1.7.1.tar.gz

        Puppetclient2

        Centos6.5

        192.168.31.79

        Ruby-rdoc-1.8.7.352

        Ruby-libs-1.8.7.352

        Ruby-irb-1.8.7.352

        Ruby-1.8.7.352

        Puppet-2.7.21.tar.gz

        Facter-1.7.1.tar.gz

        NTP server

        Centos6.5

        192.168.31.224

         

        4、 項(xiàng)目實(shí)施

        1、        搭建puppetmaster

        1)      規(guī)劃服務(wù)器主機(jī)名

        在小的規(guī)模puppet環(huán)境下,一般修改/etc/hosts文件,然而在上千臺(tái)服務(wù)器的環(huán)境中,我們要搭建自己的DNS服務(wù)器來(lái)實(shí)現(xiàn)服務(wù)通過(guò)主機(jī)名來(lái)進(jìn)行通信,此項(xiàng)目我們通過(guò)修改/etc/hosts文件來(lái)實(shí)現(xiàn)

        Puppet的搭建和應(yīng)用從入門(mén)到精通

                      修改HOSTNAME=master.zjz.cn

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通   

                      添加一下幾行:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

                      還有一種方式來(lái)修改主機(jī)名,不用重啟系統(tǒng)的方式

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        2)      時(shí)間同步服務(wù)器

        由于facter使用SSL證書(shū),依賴時(shí)間同步,所以需要搭建NTP服務(wù)器

        一、搭建NTP Server

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        打開(kāi)ntp的配置文件添加下面兩行

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        其作用是當(dāng)/etc/ntp.conf中定義的server都不可用時(shí),將使用local時(shí)間作為NTP服務(wù)提供給NTP客戶端

        啟動(dòng)NTP服務(wù),并設(shè)置為開(kāi)機(jī)自啟

         Puppet的搭建和應(yīng)用從入門(mén)到精通

        二、Puppetmaster 作為NTP客戶端配置

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        三、安裝ruby

        一定按照一下先后順序安裝,先安裝compat-readline5,也可以一并安裝

        首先新建一個(gè)掛載系統(tǒng)盤(pán)的目錄(因?yàn)槲覀儼惭b的包,在系統(tǒng)盤(pán)中有,使用rpm直接安裝)

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        掛載系統(tǒng)盤(pán)

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        切換到掛載目錄的Packages目錄中

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        開(kāi)始安裝

        Puppet的搭建和應(yīng)用從入門(mén)到精通

              安裝完成后,查看版本

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        四、Puppet、facter安裝

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        通過(guò)facter工具分析檢測(cè)客戶端傳輸過(guò)來(lái)的信息

        安裝facter

        a)      解壓源碼包

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        新建一個(gè)存放安裝包的目錄,下載源碼包

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        b)      編譯安裝源碼包

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        安裝puppet:

        (一)  解壓源碼包

        先下載源碼包

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        (二)  編譯安裝

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        (三)  復(fù)制配置文件

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        (四)  修改文件屬性

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        (五)  創(chuàng)建puppet主目錄

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        注意:這兩個(gè)目錄的名稱是固定的

        五、Puppet服務(wù)證書(shū)請(qǐng)求與簽名

        生產(chǎn)環(huán)境中iptables默認(rèn)是關(guān)閉的

        Master端配置

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        (一)  修改配置文件

        在【main】標(biāo)題下添加以下一行:配置服務(wù)器模塊的路徑

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        (二)  啟動(dòng)puppet主程序

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        2、        搭建puppetclient

        首先配置puppetclient1,步驟如下:

        1)      規(guī)劃服務(wù)器主機(jī)名

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        添加一下幾行

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        確保可以通過(guò)域名ping同puppetmaster,即ping master.zjz.cn

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        2)      服務(wù)器時(shí)間同步

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        3)      安裝ruby

        一定按照一下順序安裝,先安裝compat-readline5,也可以一起安裝

         Puppet的搭建和應(yīng)用從入門(mén)到精通

        安裝同master安裝步驟

        安裝完成后檢查版本

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        4)      Puppet、facter安裝

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        通過(guò)facter工具分析檢測(cè)客戶端傳輸過(guò)來(lái)的信息

        安裝facter:

        一、解壓源碼包

        Puppet的搭建和應(yīng)用從入門(mén)到精通

         Puppet的搭建和應(yīng)用從入門(mén)到精通

        二、編譯安裝源碼包

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        安裝puppet:

        一、解壓源碼包

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        二、編譯安裝源碼包

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        三、復(fù)制配置文件

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        四、修改文件屬性

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        五、Puppet服務(wù)證書(shū)請(qǐng)求與簽名

        生產(chǎn)環(huán)境中iptebles默認(rèn)是全部關(guān)閉的

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppetclient1和puppetclient2一樣,如下操作

        修改client配置文件

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        在【main】標(biāo)題下加上一行,設(shè)置服務(wù)器的域名

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppetclient2和puppetclient1配置過(guò)程類(lèi)似,注意將主機(jī)名修改為client2

        申請(qǐng)和注冊(cè)

        Client端:

        分別在puppetclient1和puppetclient2上進(jìn)行注冊(cè)

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        此時(shí)可以按Ctrl+C結(jié)束,因?yàn)閜uppet一直在等待任務(wù),但是已經(jīng)從server查看到了申請(qǐng)信息

        Master端

        查看申請(qǐng)注冊(cè)的客戶端:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        將未注冊(cè)的客戶端進(jìn)行注冊(cè)

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        可以通過(guò)目錄查看已注冊(cè)的客戶端

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        此時(shí)客戶端已經(jīng)完成了證書(shū)的請(qǐng)求和簽名

        3、        配置實(shí)例

        1.      配置一個(gè)測(cè)試節(jié)點(diǎn)

        節(jié)點(diǎn)信息:/etc/puppet/manifests/nodes

        模塊信息:/etc/puppet/modules

        為了保護(hù)Linux的ssh端口爆破,批量修改客戶端sshd端口,將端口22修改為9922,并實(shí)現(xiàn)重啟工作

        創(chuàng)建ssh模塊,模塊目錄為ssh,模塊下面有三個(gè)文件:mainfests、templates和files

        Mainfests里面必須要包含一個(gè)init.pp文件,這是該模塊的初始文件,導(dǎo)入一個(gè)模塊的時(shí)候,會(huì)從init.pp開(kāi)始執(zhí)行。可以把所以的代碼寫(xiě)到init.pp文件里面,也可以分成多個(gè)pp文件,init再去包含其他文件,定義class類(lèi)名的時(shí)候必須是ssh,這樣能實(shí)現(xiàn)調(diào)用

        Files目錄是該模塊的文件發(fā)布目錄,puppet提供一個(gè)文件的分發(fā)機(jī)制,類(lèi)似rsync的模塊

        Templates目錄包含erb模型文件,這個(gè)和file資源的template屬性有關(guān)(很少用)

        Master端:

        1)      創(chuàng)建需要的必要的目錄

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        此時(shí)/etc/puppet/modules/ssh/目錄下結(jié)構(gòu):

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        2)      創(chuàng)建模塊配置文件install.pp

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        輸入一下信息:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        3)      創(chuàng)建模塊配置文件config.pp

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        輸入一下信息:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        4)      創(chuàng)建模塊配置文件service.pp

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        輸入一下信息:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        5)      創(chuàng)建模塊主配置文件init.pp

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        輸入一下信息:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        此時(shí)/etc/puppet/modules/ssh/manifests目錄下有四個(gè)文件:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        6)      建立服務(wù)器端ssh統(tǒng)一維護(hù)文件

        由于服務(wù)器端和客戶端的sshd_config文件默認(rèn)一樣,此時(shí)將服務(wù)器端/etc/ssh/sshd_config復(fù)制到模塊默認(rèn)路徑

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        7)      創(chuàng)建測(cè)試節(jié)點(diǎn)配置文件,并將ssh加載進(jìn)去

        Puppet的搭建和應(yīng)用從入門(mén)到精通 

        輸入一下信息:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        8)      將測(cè)試節(jié)點(diǎn)載入puppet,即修改site.pp

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        輸入一下信息:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        9)      修改服務(wù)端維護(hù)的sshd_config配置文件

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        10)  重新啟動(dòng)puppet

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        2.      客戶端主動(dòng)拉取

        一般在小規(guī)模自動(dòng)化集群中,如代碼上線需要重啟服務(wù)時(shí),為了防止網(wǎng)站暫時(shí)性的無(wú)法訪問(wèn)的問(wèn)題,每臺(tái)客戶端運(yùn)行一次puppet agent –t命令,選擇模式根據(jù)客戶端集群規(guī)模的大小,根據(jù)經(jīng)驗(yàn),一般運(yùn)維工程師puppet服務(wù)器到各客戶端會(huì)建立ssh信任,然后自定義shell腳本,ssh批量讓客戶端執(zhí)行puppet同步命令

        Client端:

        192.168.31.184(puppetclient1)端執(zhí)行命令如下:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        此時(shí)在Client端已經(jīng)執(zhí)行成功,驗(yàn)證如下:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        查看服務(wù)器ssh服務(wù)是否重啟,端口是否生效:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        3.      服務(wù)器推送同步

        當(dāng)大規(guī)模部署時(shí)采用服務(wù)器推送模式

        Client端:

        192.168.31.79(puppetclient2)端修改:

        1)      修改配置文件:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        最后一行添加如下:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        修改auth.conf

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        最后一行添加如下:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        2)      啟動(dòng)puppet客戶端

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        查看/etc/ssh/sshd_config的內(nèi)容如下:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        確認(rèn)啟動(dòng)ssh服務(wù):

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Master端:

        3)      開(kāi)始往客戶端推送

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        4)      校驗(yàn)結(jié)果:

        此時(shí)Client端已經(jīng)執(zhí)行成功,驗(yàn)證如下:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        查看服務(wù)器ssh服務(wù)是否重啟,端口是否生效:

        Puppet的搭建和應(yīng)用從入門(mén)到精通

        5、 注意說(shuō)明

        如果分不清在那一臺(tái)主機(jī)上做的操作,我們可以根據(jù)主機(jī)名來(lái)進(jìn)行判斷,其中puppetclient2上一開(kāi)始安裝的操作因?yàn)楹蚿uppetclient1上類(lèi)似就是修改主機(jī)名不一樣,所以安裝步驟省略掉了,不會(huì)影響整體的操作,本文中也介紹了一寫(xiě)原理的問(wèn)題,希望對(duì)大家有幫助。

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 欧洲精品色在线观看| 国产成人精品日本亚洲专| 99国产精品永久免费视频| 久久99精品久久久久久齐齐| 国产精品精品自在线拍 | 日韩av无码久久精品免费| 久久夜色精品国产www| 97精品国产高清自在线看超| 91精品国产乱码久久久久久| 久久亚洲日韩精品一区二区三区| 人人妻人人澡人人爽精品欧美 | 久久亚洲国产精品五月天婷| 北条麻妃国产九九九精品视频| 91精品全国免费观看青青| 无码国内精品人妻少妇| 亚洲精品国产日韩无码AV永久免费网 | 久久久WWW免费人成精品| 国产精品99久久精品爆乳| 国产精品成人观看视频免费| 精品国产一区二区三区无码 | 91精品无码久久久久久五月天| 久久久久四虎国产精品| 国产精品高清视亚洲精品| 91探花福利精品国产自产在线| 精品无码AV无码免费专区| 人妻AV一区二区三区精品| 亚洲∧v久久久无码精品| 亚洲国产精品久久久天堂 | 青春草无码精品视频在线观 | 九九热精品在线| 精品一区二区三区四区| 高清免费久久午夜精品| 国产福利91精品一区二区三区| 国产成人亚洲综合无码精品| 97精品国产手机| 久久国产精品久久久| 午夜精品成年片色多多| 国产精品你懂的在线播放| 国产亚洲精品成人a v小说| 狠狠色伊人久久精品综合网| 久久精品成人欧美大片|