puppet自動化運維用戶管理傳文件改密碼shell腳本_第1頁
puppet自動化運維用戶管理傳文件改密碼shell腳本_第2頁
puppet自動化運維用戶管理傳文件改密碼shell腳本_第3頁
puppet自動化運維用戶管理傳文件改密碼shell腳本_第4頁
puppet自動化運維用戶管理傳文件改密碼shell腳本_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

系統(tǒng)環(huán)境:

服務(wù)器JCS系統(tǒng)IP地址「備注

nfstest*3centos5,5X64?,2^Puppetdien"

test5nspcentos5.5X64*,4-'PuppetServe”

軟件包:

軟件包外,下戴地址。備注/

facter^http://downloads.pu/facter/facter-1.6.5.tar.gz*J

Puppet"http;//downl0ad5?puppetlabs,com/puppet/puppet-2,6?13,tdr,gz.'

環(huán)境安裝:

Puppel是用ruby語言寫的,所以要安裝ruby環(huán)境,服務(wù)器端與客戶端都要安裝,我這的環(huán)

境沒有裝ruby,所以用yuin安裝一下。要精細(xì)化安裝的話,需要安裝4個包。

(root@testsns~]#yumyinstallruby*

精細(xì)化安裝Ruby環(huán)境

I.puppet是基于ruby開辟。所以要安裝ruby語言環(huán)境。

找到相應(yīng)版本對應(yīng)的ruby的rpm包(下以redhai5.4為例)

rpmivhruby-libs-1.8.5-5.el5_2.3.i386.rpm

rpmivhruby-1.8.5-5.el5_2.3.i386.rpm

2.Rdoc的安裝。

如果需要查看匡助文檔,需要安裝此包。有一點特殊說明,此包在AS4上未找到相關(guān)的rpm,

所以建議服務(wù)端使用5.()以上的版本。

rpniivhruby-irb-1.8.5-5.cl5_2.3.i386.rpm

rpmivhruby-rdoc-1.8.5-5.el5_2.3.i386.rpm

Server端安裝:

1、時間同步

ntpdate

2^安裝Facler用來獲取‘客戶端系統(tǒng)信息(如hostname,ip,OS-Version,fqdn等)

[root@testsnsopt]#tarzxvffacter-1.6.5.tar.gz

[root@testsnsopt]#cdfacter-1.6.5

[root@teslsnsfacter-1.6.5]#rubyinstall.rb

[root@lestsnsfacter-1.6.5J#cd..

[root@tcstsnsopt]#tarzxvfpuppet-2.6.13.tar.gz

|root@tcstsnsopt]#cdpiippet-2.6.13

froot@testsnspuppet-2.6.131#rubyinstall.rb

[root@testsnspuppet-2.6.131#cpconf/auth.conf/etc/puppet/

[root@testsnspuppet-2.6.13]#cpconfVredhat/fileserver.conf/etc/puppet/

[root@testsnspuppet-2.6.13]#cpconf/redhat/puppet.conf/etc/puppet/

[root@testsnspuppet-2.6.13]#cpcontVredhat/server.init/elc/init.d/puppelmaster

[root@testsnspuppet-2.6.13]#chmod+x/etc/init.d/puppetinaster

[root@testsnspuppet-2.6.13]#chkconfig-addpuppetmaster

[root@testsnspuppet-2.6.13]#chkconfigpuppetmasteron

[root@teslsns

puppet-2.6.13]#mkdir-p/etc/puppet/manifests

3^生成pupput用戶

lroot@testsnsopt]#puppct:nastcrd-inkusers

4、啟動

[root@testsnsopt]#/etc/init.d/puppetmasterstart

Slave端安裝:

1、時間同步

ntpdate

和服務(wù)器端安裝方法一樣,先安裝ruby環(huán)境,再安裝facter和puppet,只是在

puppet拷貝配置文件時要注意。

2、安裝Facter用來獲取客戶端系統(tǒng)信息(如hostname,ip,OS-Vcrsion,fqdn等)

[root@te5t5n$opt]#tarzxvffacter-1.6.S.tar.gZ4j

(root@testsnsopt]?gdfacter-1.6.5*

[root@testsn5facter-1.6.5]ffRjb^install.rb*,

[rcx>t^testsnsfacter-1.6.5]#cd

[root@testsnsopt]?tarzxvfpuppet-2.6.13.tar.gz*

[root@testsnsopt)#cdpuppet-2.6.13*1

[root^Jnfstestpuppet-2.6.13)?ry^lnstall.rb4

(root@nfstestpuppet?2613樨里conf/auth.coM/etc/puppet/**

[root@nfstestpuppet-2.6.13)ffcficcxTf/namespaceauth.conf/etc/puppet/*J

[root@nfstestpuppet-2.6.13)#egconf/redhat/puppet.conf/etc/puppet/**

[root@nfstestpuppet-2.6.13]ffcpconf/redhat/dient.init/etc/init.d/puppet*

[root@nfstestpuppet-2.6.13]ffghrnodtx/etc/init,d/puppeb1

[root^nfstestpuppet2.€.13]lfvi/etc/pvppct/puppet.conf*

…內(nèi)容如下

lagcntj

Listen=true

Server=testsns

好,不用修改每臺服務(wù)器的hosis文件。

2nfstest

4testsns

6、開放端口

關(guān)閉雙方的防火墻及selinux,或者力,放8140(server服務(wù)器端口),8139(client服務(wù)器端口)。

相互作pinghostnametelnethostname8140testhostname8139等,看網(wǎng)絡(luò)及hosts是否正常

認(rèn)證:

客戶端發(fā)送請求

Puppeted—testservertestsns

服務(wù)器查看

Puppetcalist

服務(wù)器端簽名

Puppetcas對所有客戶端全部簽名

Puppetcasnfstesl〃只簽名某個客戶端

功能模塊介紹及實例操作

文件分發(fā):

通過puppet可以向被管理機上推送文件,方法是使用file類型的source屬性I:修

改/elc/p叫)pet、fileserver.conf

2:修改/ctc/puppct/manifests/sitc.pp

實例:要把sener服務(wù)器上/opt目錄下的mysql-5.1.49-linux-i686-icc-glibc23.tar.gz傳輸至client

服務(wù)器的/opt目錄下,文件名不變。

第一步:Vi/etc/puppel/fileserver.conf

[files]

path/opt/

allow/24

第二步:vi/elc/puppet/manilests/site.ppfile

source=>

第三步:在client客戶端執(zhí)行更新命令

puppctd-test-servertestsns止二處“$puppctscrvcr”是puppetServer

端的名稱,即hostname,網(wǎng)上教程都是在hosts里指定,生產(chǎn)環(huán)境下用內(nèi)部的DNS上作解析,

像我公司一個www平臺就有70臺linux服務(wù)器,一個個添加hosls,不搞死人去.

修改文件屬性:

實例:把/lmp/dd142/puppel-2613.iar.gz文件的權(quán)限改為puppet用戶,并設(shè)置權(quán)限為

666o

第一步:編輯Server端的site.pp

vi/etc/puppet/manifests/site.pp

…內(nèi)容如下

file

mode=>666,

)

第二步:在client端執(zhí)行命令

puppetd—test—servertestsns

執(zhí)行SHELL命令或者shell和本:

實例:通過p叩pet分發(fā)執(zhí)行shell腳本,在客戶端的。pt目錄下新建一目錄shelkiir。第一步:

編輯Server端的site.pp

vi/ctc/puppct/manifcsts/sitc.pp

在此只講Puppet,因為它簡單,強大,流行。

什么是puppet?

puppet是一種Linux、Unix平臺的集中配置管理系統(tǒng),使用自有的puppei描述語言,可管理

配置文件、用戶、ciw任務(wù)、軟件包、系統(tǒng)服務(wù)等。puppet把這些系統(tǒng)實體稱之為資源,puppet

的設(shè)計目標(biāo)是簡化對這些資源的管理以及妥善處理資源間的依賴關(guān)系。

puppei采用C/S星狀的結(jié)構(gòu),所有的客戶端和一個或者幾個服務(wù)器交互。每一個客戶端周期

的(默認(rèn)半個小時)向服務(wù)器發(fā)送請求,獲得其最新的配置信息,保證和該配置信息同步。

每個puppet客戶端每半小時(可以設(shè)置)連接一次服務(wù)器端,下載最新的配置文件,并且嚴(yán)格

按照配置文件來配置服務(wù)器.配置完成以后,puppet客戶端可以反饋給服務(wù)器端一個消息.如

果出錯,也會給服務(wù)器端反饋一個消息.

為什么要開辟puppet

系統(tǒng)管理員都喜歡自己寫點小工具來讓自己的工作完成的更快或者更好,不管是在大企業(yè)

管理大量的服務(wù)器還是只管理兩三臺機器.但是很少人會把他們的工具發(fā)布出來.也就是是

說極少有工具能被重用,或者說不少工具就只能在所在的組織內(nèi)部實用.拷貝給別的組織,他

們也用不上.也就是說,每一個系統(tǒng)管理員,在一個新的公司,都會另起爐灶開辟一套基于

ssh,for循環(huán)的系統(tǒng)來匡助自己完成系統(tǒng)管理任務(wù).

開辟puppet是為了讓系統(tǒng)管理員可以相互交流和共享成熟的工具,避免重復(fù)的勞動.通過以下

兩個特性來實現(xiàn)這一目標(biāo):

提供一個簡潔的但是強大的框架來完成系統(tǒng)管理任務(wù)

系統(tǒng)管理任務(wù)可以描述成puppet語言,因此可以相互分享代碼,就像分享其他語言的代碼一

樣,比如python,c等

因此,作為系統(tǒng)管理員的你可以更快的完成工作,因為你可以用puppet來處理所有的管理細(xì)節(jié)

甚至你還可以下載其他管理員的puppet代碼來讓你的工作完成的更快.

使用puppet的穩(wěn)定性

puppet與其他手工操作工具有一個最大的區(qū)別就是puppet的配置具有穩(wěn)定性,因此你可以多

次執(zhí)行puppet,一旦你更新了你的配置文件,p叩pet就會根據(jù)配置文件來更改你的機器配置,

通常每30分鐘檢杳一次.puppet會讓你的系統(tǒng)狀態(tài)同配置文件所要求的狀態(tài)保持一致.比如

你配置文件里面要求ssh服務(wù)必須開啟.假如不小心ssh服務(wù)被關(guān)閉了,那末下一次執(zhí)行

puppet的時候,puppet會發(fā)現(xiàn)這個異常,然后會開啟ssh服務(wù).以使系統(tǒng)狀態(tài)和配置文件保持一

致.p叩pet就象一個魔術(shù)師、會讓你的混亂的系統(tǒng)收斂到puppet配置文件所想要的狀態(tài).

可以使用puppet管理服務(wù)器的整個生命周期,從初始化到退役.不同于傳統(tǒng)的例如sun的

Jumpstart或者redhat的Kickstart,puppet可以長年讓服務(wù)器保持最新狀態(tài).只要一開始就正確的

配置他們,然后再也不用去管他們.通常puppet用戶只需要給機器安裝好puppet并讓他們運行,

然后剩余的工作都由puppet來完成.

puppet的細(xì)節(jié)和原理

puppei的目的是讓你只集中于你要管理的目標(biāo),而忽略實現(xiàn)的細(xì)節(jié),例如命令名,參數(shù)或名文

件格式.puppet把系統(tǒng)里面的用戶,軟件包,服務(wù)看做是資源puppet的作用就是管理這些資

源以及資源之間的相互聯(lián)系.

底層支撐工具Providers,puppet有不少的資源類型,例如文件,用戶,軟件包,服務(wù),不同

的操作系統(tǒng)上對資源的管理命令是不一樣的,例如debian下面用叩l-get安裝軟件jedhat下面

用yum安裝軟件.因此puppet對同一資源的管理可以有多個實現(xiàn),配置資源的時候,可以明確

的指定用什么provider.例如在redhat上配置一個package資源的時候,可以指定provider是yum

Factcr變量

在puppet客戶端分析代碼的時候,會把從factcr傳送過來的對應(yīng)的值賦值給變量.你可以單獨

手工執(zhí)行facter這個命令,這個命令會打印出它所采集到的關(guān)于主機的信息,例如ip地址等等.

factor把采集到值發(fā)送給puppet服務(wù)器端,服務(wù)器端就可以根據(jù)不同的條件來對不同的節(jié)點

機器生成不同的puppet配置文件.最重要的一個就是服務(wù)器的主機名.

工作方式與流程

puppet既可以在單機上使用,也可以以c/s結(jié)構(gòu)使用.在大規(guī)模使用puppet的情況下,通常使用

C/S結(jié)構(gòu).在這種結(jié)構(gòu)中puppet客戶端只是指運行puppet的服務(wù)器,puppel服務(wù)器端是只運行

puppetmaster的服務(wù)器.

puppet客戶端首先會連接到puppet服務(wù)器端,并且通過factcr工具把客戶端的基本配置信息發(fā)

送給服務(wù)器端.服務(wù)器端追過分析客戶端的主機名,通過node定義,找到該主機的配置代碼,

然后編譯配置代碼,把編譯好的配置代碼發(fā)回客戶端,客戶端執(zhí)行代碼完成配置.并且把代碼

執(zhí)行情況反饋給puppet服務(wù)器端.

修改系統(tǒng)配置

puppet通過管理資源的方式來管理系統(tǒng),例如管理某個軟件是否要安裝,是安裝最新的還是

安裝了就行.管理某個服務(wù)是否開啟,管理某個文件的屬生內(nèi)容等等.所有的資源都有

對應(yīng)的幾個屬性可以設(shè)置.通過設(shè)置屬性的方式來管理貨源.有i種特殊的屬性可以用在

所有的資源上面,這種屬性叫做metaparams(元參數(shù)或者元屬性).

資源之間的關(guān)系

支持資源之間的關(guān)系配置是puppet的關(guān)鍵特性之一.一個資源的變更可以對另一個資源產(chǎn)生

一個動作.例如/elc/apache.conf這個資源有改動,可以讓/elc/inii.d/叩ache這個資源reload一下.

假如一個資源依賴另一個資源,那末puppet會優(yōu)先配置被依賴的資源網(wǎng)此如果你的配置文件

沒有準(zhǔn)備好,對應(yīng)的服務(wù)是不會先啟動的.

puppet語言資源

puppet的全部就是管理資源,因此puppet語言的焦點就是處理這些資源,下面是一個基本的管

理單個資源的例子.

上面的列子給出了定義一個資源所需要的所有組件,類型,名字和屬性.定義了一個file

資源,資源的liUe(標(biāo)題)是資源的屬性里面設(shè)置了該文件屬于那個用戶

和組,以及文件的權(quán)限.

也可以在一個大括號里面定義多個資源,通過分號來區(qū)分.

避免重復(fù)配置

puppet的編譯器會避免在不同的代碼段里面管理同一個資源,如果在不同的代碼段對同一個

資源進(jìn)行配置,執(zhí)行puppet的時候你會得到一個語法錯誤.puppel探測這種沖突的情況是

通過判斷資源類型和資源的title(標(biāo)題);如果兩個資源有相同的資源類型和title;那末就認(rèn)為

這兩個資源是表示同一個資源.

你可以把多個相關(guān)的資源定義在一起,組成一個類.可以在其他的代碼段include這個

類.puppet還支持有限制的類的繼承,作用就是在子類里面的屬性可以覆蓋父類里面的屬性.字

符串

幾乎所有的東西和符號在puppet里面都被看做是字符串,包括數(shù)字和布爾值.但是如果你

用引號把tine和false引起來,他們會被當(dāng)做字符串,例如你想賦值給某個資性的字

符串.

變量

puppet除facter變量外,也可以自定義變量,但不允許你在同一個類里面對一個變量進(jìn)行兩

次賦值.

Smyvar=value123

條件語句

Puppet支持常見的條件語句,使得你能根據(jù)不同的條件導(dǎo)入不同的資源定義。如if、case、此

外puppet從版本0.24.6開始支持比較運算符。

數(shù)組

puppet甘常有限的支持?jǐn)?shù)組這種類型,你可以創(chuàng)建數(shù)組,并且給他們賦值,但是你不能刪除它

們.數(shù)組用的最多的情況就是上面ssh例子里面,資源依賴哪種情況.或者是一次管理多個相

同類型的資源.例如:user{[bin,adm]:ensure=>present

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論