版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
puppet環(huán)境搭建手冊
Puppet+MCollective
環(huán)境搭建手冊
V1.0
IT管理服務部
2014.10.10
編號日期描述版本作者審核
12014.10.10創(chuàng)建文檔1.0鞠向明
目錄
一、Puppet介紹6
1.為什么要開發(fā)puppet6
2.作為工具的puppet7
3.穩(wěn)固性7
4.puppet的細節(jié)與原理8
5.底層支撐工具Providers8
6.修改系統(tǒng)配置9
7.資源之間的關(guān)系9
8.exec資源9
9.puppet語言9
10.語言的其他特性13
11.puppet語言高級特性15
12.語言教程16
13.典型的puppet使用方法16
14.總結(jié)17
二、安裝puppet17
1.更新yum源17
2.配置主機名17
3.安裝puppet月員務端18
1)安裝軟件包18
2)瞬正安裝包18
3)修改主機配置文件18
4)配置文件服務19
5)啟動puppet-server服務19
4.安裝Puppet客戶端19
1)安裝軟件包19
2)配置主機名19
3)酉己置puppet客戶端20
4)啟動客戶端后臺進程20
5.測試連接20
6.節(jié)點富里21
三、Puppet參考文檔21
四、MCollective介紹21
1.簡介21
2.MCollective特點22
五、安裝MCollective23
1.server端安裝23
1)安裝軟件包23
2)酉己置activemq23
3)酉己置mcollective24
4)啟動24
2.client安裝酉己置:25
1)安裝軟件包25
2)配置客戶端25
3)啟動客戶端25
3.查看連接情況26
4.其他使用命令26
六、Rsync安裝26
1.Rsync介紹26
2.安裝rsync27
3.酉己置rsync27
1)^^/etc/rsyncd.conf28
2)設(shè)定/etc/rsyncd.secrets密碼文件29
3)設(shè)定rsyncd.motd文件30
4.rsyncd.conf配置文件詳解30
1)全局定義30
2)模塊定義32
5.啟動rsync服務器33
6.防火蛭置34
7.通過rsync客戶端來同步數(shù)據(jù)35
8.一些實例36
9.FAQ41
七、一鍵安裝client腳本44
一、Puppet介紹
關(guān)于puppet各資源及其用法,請參考上述網(wǎng)址。
1.為什么要開發(fā)puppet
系統(tǒng)管理員都喜歡自己寫點小工具來讓自己的工作完成的更快或者者更好,
不管是在大企業(yè)管理大量的服務器還是只管理兩三臺機器.但是很少人會把他
們的工具公布出來.也就是是說極少有工具能被重用,或者者說很多工具就只能
在所在的組織內(nèi)部有用.拷貝給別的組織,他們也用不上.也就是說,每個系統(tǒng)管
理員,在一個新的公司渚B會另起爐灶開發(fā)一套基于sshzfor循環(huán)的"系統(tǒng)"來幫助
自己完成系統(tǒng)管理任務.
開發(fā)puppet是為了讓系統(tǒng)管理員社區(qū)能夠相互交流與共享成熟的工具,避
免重復的勞動.通過下列兩個特性來實現(xiàn)這一目標:
1.提供一個簡潔的但是強大的框架來完成系統(tǒng)管理任務
2.系統(tǒng)管理任務能夠描述成puppet語言,因此能夠相互分享代碼,就像分享
其他語言的代碼一樣,比如python,c等
因此,作為系統(tǒng)管理員的你能夠更快的完成工作,由于你能夠用puppet來處
理所有的管理細節(jié).甚至你還可下列載其他管理員的puppet代碼來讓你的工作
完成的更快.
2.作為工具的puppet
puppet是一個配置管理工具,典型的,puppet是一個C/S結(jié)構(gòu),當然,這
里的C能夠有很多,因此,也能夠說是一個星型結(jié)構(gòu).所有的puppet客戶端同一
個服務器端的puppet通訊每個puppet客戶端每半小時(能夠設(shè)置)連接一次
服務器端,下載最新的配置文件,同時嚴格按照配置文件來配置服務器.酉己置完
成以后,puppet客戶端能夠反饋給服務器端一個消息.假如出錯,也會給服務器
端反饋一個消息.
回
3.穩(wěn)固性
puppet與其他手工操作工具有一個最大的區(qū)別就是puppet的配置具有穩(wěn)
固性,因此你能夠多次執(zhí)行puppet,一旦你更新了你的配置文件,puppet就會
根據(jù)配置文件來更換你的機器配置,通常每30分鐘檢查一次.puppet會讓你的
系統(tǒng)狀態(tài)同配置文件所要求的狀態(tài)保持一致.比如你配置文件里面要求ssh服
務務必開啟.假如不小心ssh服務被關(guān)閉了,那么下一次執(zhí)行puppet的時
候,puppet會發(fā)現(xiàn)這個特殊,然后會開啟ssh服務.以使系統(tǒng)狀態(tài)與配置文件
保持一致.puppet就象一個魔術(shù)師,會讓你的混亂的系統(tǒng)收斂到puppet配置文
件所想要的狀態(tài).
能夠使用puppet管理服務器的整個生命周期,從初始化到退役.不一致于傳
統(tǒng)的比如sun的Jumpstart或者者redhat的Kickstart,puppet能夠長年讓
服務器保持最新狀態(tài).只要一開始就正確的配置他們,然后再也不用去管他們.通
常puppet用戶只需要給機器安裝好puppet并讓他們運行,然后剩余的工作都
由puppet來完成.
4.puppet的細節(jié)與原理
puppet的目的是讓你只集中于你要管理的目標,而忽略實現(xiàn)的細節(jié),比如命
令名,參數(shù)或者者文件格式.puppet把系統(tǒng)里面的用戶,軟件包,服務看作是"資
源",puppet的作用就是管理這些資源與資源之間的相互聯(lián)系.
5.底層支撐工具Providers
puppet有很多的資源類型,比如文偉用戶漱件包服務,不一致的操作系
統(tǒng)上對資源的管理命令是不一樣的,比如debian下面用apt-get安裝軟
件,redhat下面用yum安裝軟件.
因此puppet對同一資源的管理能夠有多個實現(xiàn),配置資源的時候,能夠明
確的指定用什么provider.比如在redhat上配置一個package資源的時候,
能夠指定provide是yum.
6.修改系統(tǒng)配置
puppet通過管理資源的方式來管理系統(tǒng),比如管理某個軟件是否要安裝,
是安裝最新的還是安裝了就行.管理某個服務是否開啟,管理某個文件的屬性,
內(nèi)容等等,所有的資源都有對應的幾個屬性能夠設(shè)置.通過設(shè)置屬性的方式來
管理資源.有一種特殊的屬性能夠用在所有的資源上面,這種屬性叫做
metaparams(元參數(shù)或者者元屬性).
7.資源之間的關(guān)系
支持資源之間的關(guān)系配置是puppet的關(guān)鍵特性之一.一個資源的變更能夠?qū)α硪粋€資
源產(chǎn)生一個動作.比如/etc/apache.conf這個資源有改動,能夠讓/etc/init.d/apache這個資源
reload一下.
假如一個資源依靠另一個資源,那么puppet會優(yōu)先配置被依靠的資源,因此假如你的配置
文件沒有準備好,對應的服務是不可能先啟動的.
8.exec資源
有的時候候,沒有合適的資源來管理服務器上的配置,為了處理這個情況,puppet提供一
個叫做exec的資源類型.利用這個資源,你能夠執(zhí)行外部命令.比如你能夠用svnadmin命令
來創(chuàng)建一個svn庫.
9.puppet語言
資源
puppet的全部就是管理資源,因此puppet語言的焦點就是處理這些資源,下面
是一個基本的管理單個資源的例子.
file{'Vetc/hosts":
owner=root,
group=root,
mode=644
)
上面的列子給出了定義一個資源所需要的所有組件,類型,名字與屬性.定義了一
個file資源,資源的title(標題)是"/etc/hosts",資源的屬性里面設(shè)置了該
文件屬于那個用戶與組,與文件的權(quán)限.
也能夠在一個大括號里面定義多個資源,通過分號來區(qū)分.
file{
"/etc/sudoers":
owner="root",
group="root",
mode=644;
"/usr/sbin/sudo":
owner="root”,
group="root",
mode=4111
)
避免重復配置
puppet的編譯器會避免在不一致的代碼段里面管理同一個資源,假如在不一致
的代碼段對同一個資源進行配置,執(zhí)行puppet的時候你會得到一個語法錯誤.
puppet探測這種沖突的情況是通過推斷資源類型與資源的title(標題);假如
兩個資源有相同的資源類型與title;那么就認為這兩個資源是表示同一個資源.
類class
下面討論如何組合各類資源,把多個有關(guān)的資源定義在一起,構(gòu)成一個類.比如
下面的代碼.
classsudo{
package{sudo:ensure=installed}
file{
'Vetc/sudoers1':
owner="root",
group="root",
mode=644;
'7usr/sbin/sudon:
owner="root11,
group="root",
mode=4111
)
)
你在別的代碼段includesudo這個類,就會把sud。這個軟件包(package那
里定義)安裝好,與兩個配置文件設(shè)置好.
Inheritance繼承
puppet支持有限制的類的繼承,但是它只有一個唯一的作用就是:子類里面
的屬性能夠覆蓋父類里面的屬性.下面是一個勉強正確的例子.
classbase{
file{〃/my/file〃:content=template("base.erb〃)}
}
classsubinheritsbase{
#overridethecontent
File[〃/my/file〃]{content=template("other.erb〃)}
注意,在子類里面的資源類型的定義是用的大寫的File:表示對這個資源重新定義,假如用小
寫的file;就會引起前面說的資源的重復配置的情況彳導到一個語法錯誤.
一個復雜的真實的例子
生活總是不容易阿,真實環(huán)境中,一個包經(jīng)常關(guān)聯(lián)到幾個服務,同時又關(guān)聯(lián)到不一
致的配置文件.幾乎所有的類unix系統(tǒng)里面都有ssh服務.通常,你不只是想安
裝ssh包,而且你還想啟動ssh服務.看看下面的例子
上面的代碼安裝好ssh包,并開啟ssh服務,由于在不一致的操作系統(tǒng)上面,ssh的配置文件名
字不一樣,因此還能夠通過推斷操作系統(tǒng)的類型來指定資源的title(標題).那么操作系統(tǒng)的
類型是怎么推斷的呢?下面就會解釋這個問題.
FacterVariablesfacter變量
在上面的ssh代碼里面,我們引入了一些新的東西,首先是$operatingsystem這個變量.這個
變量被引用,在puppet分析代碼的時候,會把從facter傳送過來的對應的值賦值給這個變量.
你能夠單獨手工執(zhí)行facter這個命令,這個命令會打印出它所收集到的關(guān)于主機的信息,比如
ip地址等等.facter把收集到值發(fā)送個puppet服務器端,服務器端就能夠根據(jù)不一致的條件來
對不一致的機器生成不一致的puppet配置文件.最重要的一個就是服務器的主機名.
selectors選擇器
另一個新東西就是?{.?.}這個語法,通過對?前面的變量與括號里面的選擇項進行對比,
然后把相應的值賦值給資源,比如上面的例子,Soperalingsystem如何是Solaris,那么ssh這個
資源的name屬性就是"openssh";假如不匹配,就賦值成defualt的指,匹配將區(qū)分大/」號.
titlevsname(標題與名字)
假如你足夠細心,你會發(fā)現(xiàn)我們資源指定了第2個名字,比如上面的service資源ssh.
注意,冒號前面的名字叫做title(標題),標題的作用讓作者標識不一致的資源,是寫給人與
puppet語法分析器看的.因此配置資源相互關(guān)系的時候.也是用資源的title,name是指定這個
資源的具體路徑,是寫給計算機看的.通常,name會默認與title的值一樣.因此.你能夠省略
name.只有情況特殊的時候才設(shè)置name屬性.
資源之間的關(guān)系
最后,我們來分析所有資源直接的關(guān)系酒己置文件,包,服務.最后一行的File[sShd_config]語法
指定了一個資源參考,注意這里是用的資源的title,這樣你就不用指定資源的全路徑.
subscribe=[Package[ssh],File[sshd_config]]這個語句表示,假如package"ssh"或者者文件"
sshd_config”有修改,servicessh需要重啟.
10.語言的其他特性
真相
幾乎所有的東西與符號在puppet里面都被看作是字符串,包含數(shù)字與布爾值.
但是假如你用弓I號把true與false引起來,他們會被當做字符串,比如你想賦值
給某個資性"yes"的字符串.
變量
我們已經(jīng)看過什么是變量了,當然,你還能夠直接給他賦值,比如
$myvar=value
puppet不同意你在同一個類里面對一個變量進行兩次賦值.
更多的條件語句
我們已經(jīng)在前面介紹過了選擇器(selectors),在為變量選擇特定的值的時候非常有用,
Puppet同時也支持條件語句,使得你能根據(jù)不一致的條件導入不一致的資源定義(resource
specifications):
caseSoperatingsystem{
Darwin:{file{"/some/file":ensure=>present}}
default:{file{,7other/file°:ensure=>present}}
)
與選擇器(selectors)配合,case語句能夠進行case-insensitive匹配。
這里還有一個簡單的if/else結(jié)構(gòu):
if$should{
file{"/some/file1':ensure=>present}
}else{
file{Vother/file":ensure=>present}
)
另外,Puppet從版本0.24.6開始支持匕瞰運算符。
數(shù)組
puppet非常有限的支持數(shù)組這種類型,你能夠創(chuàng)建數(shù)組,同時給他們賦值,但是
你不能刪除它們.數(shù)組用的最多的情況就是上面ssh例子里面,資源依靠哪種情
況.或者者是一次管理多個相同類型的資源.比如:
user{[bin,adm]:ensure=present}
函數(shù)
puppet支持簡單的函數(shù)語法,比如
notice("Thisisalogmessage")
11.puppet語言高級特性
定義
puppet里面有一個非常有用的語法結(jié)構(gòu),叫做"definitions",通過
definitions能夠把多個資源包裝成一個資源,或者者把一個資源包裝成一個模
型,便于使用.比如,在debian里面管理一個apache虛擬機非常簡單,把一個虛
擬主機的配置文件放到/etc/sites-available/里面,然后做一個符號鏈接到
/etc/sites-enabled目錄.你能夠為你每個虛擬主機復制同樣的配置代碼,但是
假如你使用下面的代碼就會更好與更簡單.
definevirtual_host($docroot,$ip,$order=500,$ensure="enabled"){
$file="/etc/sites-available/Sname.conf1
#Thetemplatefillsinthedocroot,ip,andname,
file{$file:
content=>template(nvirtual_host.erb"),
notify=>Service[apache]
)
file{"/etc/sites-enabled/Sorder-Sname.conf1:
ensure=>Sensure?{
enabled=>$file,
disabled=>absent
然后,你就能夠使用這個定義來管理一個apache虛擬主機,如下面代碼所示
你能夠在其他地方重用這個定義,另一個定義的用法就是包裝一組exec資源,
讓使用者更加清晰思路.比如下面的代碼實現(xiàn)了一個svn庫的創(chuàng)建的定義.
#Createanewsubversionrepository.
definesvnrepo($path){
exec{ncreate-svn-$nameH:
command=>'Vusr/bin/svnadmincreate$path/$name",
creates=>"$path/$name"#onlyrunifthisfiledoesnotexist
)
)
然后,你能夠在其他地方用下面的代碼來創(chuàng)建一個svn庫
svnrepo{puppet:path=>"/var/lib/sYn',)
nodes節(jié)點
最后一個關(guān)于puppet語言的語法是節(jié)點定義(nodedefinition),節(jié)點定
義很象類定義,也支持繼承特性.當一個節(jié)點(puppet客戶端)連接到puppet服
務器端,puppet解析器會查找這個節(jié)點的node代碼片斷,然后利用這個代碼片
斷來生成該客戶端的配置代碼.puppet里面主機名來標明一個主機,因此主機名
在puppet里面相當重要.假如puppet找不到匹配該主機名的node定義,就
會用默認的節(jié)點定義來配置該主機.在node里面使用主機名,需要用單引號把
主機名括起來.
12.語言教程
13.典型的puppet使用方法
puppet既能夠在單機上使用,也能夠以c/s結(jié)構(gòu)使用在大規(guī)模使用puppet
的情況下,通常使用c/s結(jié)構(gòu).在這種結(jié)構(gòu)中puppet客戶端只是指運行puppet
的服務器,puppet服務器端是只運行puppetmaster的服務器.
puppet客戶端首先會連接到puppet服務器端,同時通過facter工具把客
戶端的配置信息發(fā)送給服務器端.服務器端通過分析客戶端的主機名,通過
node定義,找到該主機的配置代碼,然后編譯配置代碼,把編譯好的配置代碼發(fā)
回客戶端.客戶端執(zhí)行代碼完成配置.同時把代碼執(zhí)行情況反饋給puppet服務
器端.
14.總結(jié)
二、安裝puppet
Puppet是一款開源的工具,使用自有的puppet描述語言,可管理配置文件、用戶、
cron任務、軟件包、系統(tǒng)服務等,實現(xiàn)自動化部署。
安裝環(huán)境:Redhat5.5
安裝方式:yum
1.更新yum源
2.配置主機名
puppet的客戶端與服務器是通過ssl鏈接的,在服務器有一個自簽名的根證書,在安
裝軟件的時候自動生成。
注意:
要在安裝軟件往常先設(shè)置主機名,由于生成證書的時候,要把主機名寫入證書。
vi/etc/hosts
3.安裝puppet服務端
i)安裝軟件包
yuminstallmysql-server
yum-yinstallpuppet-serverpuppet
使用yum安裝會自動解決依靠關(guān)系,安裝ruby環(huán)境。
2)驗證安裝包
[root@puppetserver?]#rpm-qalgrepmysql-server
mysql-server-5.0.95-5.e15_9
[root@puppetserver?拼rpm-qalgreppuppet-server
puppet-server-3.6.2-1.el5
[root@puppetserver~]#rpm-qalgreppuppet
puppet-3.6.2-l.el5
puppetlabs-release-5-1
puppet-server-3.6.2-l.e!5
3)修改主機配置文件
進入目Wetc/puppet/manifests
編輯主機配置文件
Visite.pp
import"nodes/*.pp”
新建節(jié)點文件夾:mkdirnodes/
在nodes下面新建一個默認節(jié)點文件default_node.pp,新建一個file資源供測試。
內(nèi)容如下
file{
"/tmp/test_puppet_Ol.log":
content=>
"hello
thisismyfirstmanifestfile
,
mode=>0644;
)
4)配置文件服務
vi/etc/puppet/fileserver.conf
[MyFileService]文件服務名
path/opt/MyFileService文件服務的目錄設(shè)定
allow*權(quán)限設(shè)定
5)啟動puppet-server服務
[root@puppetservermanifests]#servicepuppetmasterstart
Startingpuppetmaster:fOK]
[root@puppetservermanifests]#servicepuppetmasterstatus
puppet(pid14516)isrunning...
4.安裝Pu叩et客戶端
1)安裝軟件包
yuminstallpuppet
2)配置主機名
vi/etc/hosts
3)配置puppet客戶端
4多改酉己置文彳牛/etc/puppet/puppet.conf:
runinterval=1800同步間隔秒數(shù)
4)啟動客戶端后臺進程
servicepuppetstart
這樣puppetclient會在后臺執(zhí)行,每到默認1800秒會主動與server同步一次。
5.測試連接
每個客戶端的證書要通過根證書簽名才能與服務器連接。
因此首先要在客戶端執(zhí)行下面的命令來請求服務器簽名證書。
Puppetagent-test
登錄到服務器端,執(zhí)行下面的命令查看是否有客戶端的證書請求:
puppetcertlist—all
假如看到了客戶端的證書請求,用下面的命令對所有證書請求簽名:
puppetcert-signpuppet_client(客戶端主機名)#這條命令加客戶端主機名就能簽字,
自此能夠通信。
再次執(zhí)行
Puppetagent—test
就會從server端得到manifest文件,在客戶端指定位置生產(chǎn)一個文件。
查看/tmpZtest_puppet_01.log即可驗證。
6.節(jié)點管理
puppet如何區(qū)分不一致的客戶端,同時給不一致的服務端分配manifest呢?
在/etc/puppet/manifests/nodes/目錄下,每臺服務器建立一個節(jié)點文件:
[root@puppetservermanifests]#Is/etc/puppet/manifests/nodes/*.pp
puppet使用node資源做這件情況,node后面跟客戶端的主機名。
三、Puppet參考文檔
英文
四、MCollective介紹
1.簡介
MCollective是一個構(gòu)建服務器編排(ServerOrchestration)與并行工作執(zhí)行系統(tǒng)的框架。
首先,MCollective是一種針對服務器集群進行可編程操縱的系統(tǒng)管懂得決方案。在這
一點上,它的功能類似:Func,Fabric與Capistranoo
其次,MCollective的設(shè)計打破基于中心存儲式系統(tǒng)與像SSH這樣的工具,不再僅
僅癡迷于SSH的For循環(huán)。它使用公布訂閱中間件(PublishSubscribeMiddleware)這
樣的現(xiàn)代化工具與通過目標數(shù)據(jù)(metadata)而不是主機名(hostnames)來實時發(fā)現(xiàn)網(wǎng)絡(luò)資源
這樣的現(xiàn)代化理念。提供了一個可擴展的而且迅速的并行執(zhí)行環(huán)境。
MCollective工具為命令行界面,但它可與數(shù)千個應用實例進行通信,而且傳輸速度驚
人。不管部署的實例位于什么位置,通信都能以線速進行傳輸,使用的是一個類似多路傳
送的推送信息系統(tǒng)。MCollective工具沒有可視化用戶界面,用戶只能通過檢索來獲取需
要應用的實例。PuppetDashboard提供有這部分功能。
2.MCollective特點
?能夠與小到大型服務器集群交互
?使用廣播范式(broadcastparadigm)來進行請求分發(fā),所有服務器會同時收到請求,而只
有與請求所附帶的過濾器匹配的服務器才會去執(zhí)行這些請求。沒有中心數(shù)據(jù)庫來進行同步,
網(wǎng)絡(luò)是唯一的真理
?打破了以往用主機名作為身份驗證手段的復雜命名規(guī)則。使用每臺機器自身提供的豐富
的目標數(shù)據(jù)來定位它們。目標數(shù)據(jù)來自于:Puppet,Chef,Facter,Ohai或者者自身提供的插
?使用命令行調(diào)用遠程代理
?能夠?qū)懽远x的設(shè)備報告
?大量的代理來管理包,服務與其他來自于社區(qū)的通用組件
?同意寫SimpleRPC風格的代理、客戶端與使用Ruby實現(xiàn)WebUis
?外部可插件化(pluggable)實現(xiàn)本地需求
?中間件系統(tǒng)已有豐富的身份驗證與授權(quán)模型,利用這些作為操縱的第一道防線。
?重用中間件來做集群、路由與網(wǎng)絡(luò)隔離以實現(xiàn)安全與可擴展安裝。
五、安裝MCollective
1.server端安裝
1)安裝軟件包
首先要確保源在,沒有的話請安裝,如下(
puppetyumredhat6xcentos6):
yuminstallmcollective-*-y
yuminstallactivemqactivemq-info-provider-y
2)酉已置activemq
vi/etc/activemq/activemq.xml
找至!Jauthenticationuser修改用戶名與密碼:默認是:admin,secret
找到transportConnector修改其中的
name=',stomp+nio"uri=wstomp+nio://:61637&
gt;為name="stomp"uri="stomp://:61637>
3)酉己置mcollective
vi/etc/mcollective/server.cfg
plugin.stomp.host=localhost##mcollectiveserverIP0
plugin.stomp.user=mcollective##這個是activemq.xml里的用戶名
plugin.stomp.password=secret##這個是activemq.xml里定義的密碼
vi/etc/mcollective/client.cfg
plugin.stomp.host=localhost##mcollectiveserverIP
plugin.stomp.user=mcollective##這個是activemq.xml里的用戶名
plugin.stomp.password=secret##這個是activemq.xml里定義的密碼
4)啟動
/etc/init.d/activemqstart
/etc/init.d/mcollectivestart
chkconfigmcollectiveon
chkconfigactivemqon
2.client安裝配置:
1)安裝軟件包
yuminstallmcollective-*-y
2)配置客戶端
vi/etc/mco11ective/server.cfg
指向的
plugin.stomp.host=04##mcoolectiveIPO
plugin.stomp.user=mcollective##這個是activemq.xml里的用戶名
plugin.stomp.password=secret##這個是activemq.xml里定義的密碼
vi/etc/mcollective/client.cfg
##指向的
plugin.stomp.host=04mcoolectiveIPO
plugin.stomp.user=mcollective##這個是activemq.xml里的用戶名
plugin.stomp.password=secret##這個是activemq.xml里定義的密碼
3)啟動客戶端
/etc/init.d/mcollectivestart
chkconfigmcollectiveon
3.查看連接情況
在server端執(zhí)行:
mcofind或者者是mcoping即可找到client
4.其他使用命令
重啟syslog服務:mcoservicesyslogrestart
安裝軟件:mcopackage-vinstallscreen##-v顯示全面信息
創(chuàng)建文件:mcorpcfilemgrtouchfile=/tmp/test.txt
刪除文件:mcorpcfilemgr-vremovefile=/tmp/test.txt
查看文件狀態(tài):mcorpcfilemgrstatusfile=/etc/puppet/puppet.conf
幫助:mcohelp
六、Rsync安裝
1.Rsync介紹
rsync,remotesynchronize顧名思意就明白它是一款實現(xiàn)遠程同步功能的軟件,它
在同步文件的同時,能夠保持原先文件的權(quán)限、時間、軟硬鏈接等附加信息。rsync是用
"rsync算法”提供了一個客戶機與遠程文件服務器的文件同步的快速方法,而且能夠通過
ssh方式來傳輸文件,這樣其保密性也非常好,另外它還是免費的軟件。
rsync包含如下的一些特性:
?能更新整個目錄與樹與文件系統(tǒng);
?有選擇性的保持符號鏈鏈、硬鏈接、文件屬于、權(quán)限、設(shè)備與時間等;
?關(guān)于安裝來說,無任何特殊權(quán)限要求;
?關(guān)于多個文件來說,內(nèi)部流水線減少文件等待的延時;
?能用rsh、ssh或者直接端口做為傳輸入端口;
?支持匿名rsync同步文件,是理想的鏡像工具;
2.安裝rsync
Yuminstallrsync
Yuminstallxinetd
3.配置rsync
rsync的要緊有下列三個配置文件rsyncd.conf(主配置文件)、rsyncd.secrets(密碼文
件)、rsyncd.motd(rysnc服務器信息)
服務器配置文件(/etc/rsyncd.conf),該文件默認不存在,請創(chuàng)建它。
具體步驟如下:
#touch/etc/rsyncd.conf
#創(chuàng)建rsyncd.conf,這是rsync服務器的配置文件。
#touch
#創(chuàng)建rsyncd.secrets,這是用戶密碼文件。
/etc/rsyncd.secrets
chmod600/etc/rsyncd/rsyncd.secrets
將rsyncd.secrets這個密碼文件的文件屬性設(shè)為root
擁有,且權(quán)限要設(shè)為600,否則無法備份成功!
#touch/etc/rsyncd.motd
1)設(shè)趙etc/rsyncd.conf
rsyncd.conf是rsync服務器要緊配置文件。我們先來個簡單的示例,后面在全面說明各
項作用。
比如我們要備份服務器上的/home與/opt,在/home中我想把easylife與samba目錄
排除在外;
#DistributedunderthetermsoftheGNUGeneralPublicLicensev2
#Minimalconfigurationfileforrsyncdaemon
#Seersync(l)andrsyncd.conf(5)manpagesforhelp
#Thislineisrequiredbythe/etc/init.d/rsyncdscript
pidfile=/var/run/rsyncd.pid
port=873
address=192,168.1.171
#uid=nobody
#gid=nobody
uid=root
gid=root
usechroot=yes
readonly=yes
#limitaccesstoprivateLANs
hostsallow=192,168.1.0//
hostsdeny=*
maxconnections=5
motdfile=/etc/rsyncd.motd
#Thiswillgiveyouaseparatelogfile
#logfile=/var/log/rsync.log
#Thiswilllogeveryfiletransferred-upto85,000+peruser,persync
#transferlogging=yes
logformat=%t%a%m%f%b
syslogfacility=Iocal3
timeout=300
[rhel4home]
path=/home
list=yes
ignoreerrors
authusers=root
secretsfile=/etc/rsyncd.secrets
comment=ThisisRHEL4data
exclude=easylife/samba/
[rhel4opt]
path=/opt
list=no
ignoreerrors
comment=ThisisRHEL4opt
authusers=easylife
secretsfile=/etc/rsyncd/rsyncd.secrets
注:關(guān)于authusers是務必在服務器上存在的真實的系統(tǒng)用戶,假如你想用多個用戶以,
號隔開,比如authusers=easylife,root
2)iS^/etc/rsyncd.secrets密碼文件
密碼文件格式很簡單,rsyncd.secrets的內(nèi)容格式為:
用戶名:密碼
我們在例子中rsyncd.secrets的內(nèi)容如下類似的;在文檔中說,有些系統(tǒng)不支持長密碼,
自己嘗試著設(shè)置一下吧。
easylife:keer
root:mike
chownroot.rootrsyncd.secrets#修改屬主
chmod600rsyncd.secrets#修改權(quán)限
注:1、將rsyncd.secrets這個密碼文件的文件屬性設(shè)為root擁有,且權(quán)限要設(shè)為600,否
則無法備份成功!出于安全目的,文件的屬性必需是只有屬主可讀。
2、這里的密碼值得注意,為了安全你不能把系統(tǒng)用戶的密碼寫在這里。比如你的系統(tǒng)用戶
easylife密碼是000000,為了安全你能夠讓rsync中的easylife為keero這與samba
的用戶認證的密碼原理是差不多的。
3)設(shè)定rsyncd.motd文件
它是定義rysnc服務器信息的,也就是用戶登錄信息。比如讓用戶明白這個服務器是誰提
供的等;類似ftp服務器登錄時,我們所看到的ftp……。當然這在全局定
義變量時,并不是務必的,你能夠用#號注掉,或者刪除;我在這里寫了一個rsyncd.motd
的內(nèi)容為:
++++++++++++++++++++++++++++++++++++++++++++++
Welcometousethersyncservices!
20022009
++++++++++++++++++++++++++++++++++++++++++++++
4.rsyncd.conf配置文件詳解
1)全局定義
在rsync服務器中,全局定義有幾個比較關(guān)健的,根據(jù)我們前面所給的配置文件
rsyncd.conf文件;
pidfile=/var/run/rsyncd.pid注:告訴進程寫到/var/run/rsyncd.pid文件中;
port=873注:指定運行端口,默認是873,您能夠自己指定;
address=71注:指定服務器IP地址
uid=nobody
gid=nobdoy
注服務器端傳輸文件時,要發(fā)哪個用戶與用戶組來執(zhí)行,默認是nobody。假如用nobody
用戶與用戶組,可能遇到權(quán)限問題,有些文件從服務器上拉不下來。因此我就偷懶,為了方
便,用了rooto只是您能夠在定義要同步的目錄時定義的模塊中指定用戶來解決權(quán)限的問
題。
usechroot=yes
注:用chroot,在傳輸文件之前,服務器守護程序在將chroot到文件系統(tǒng)中的目錄中,
這樣做的好處是可能保護系統(tǒng)被安裝漏洞侵襲的可能。缺點是需要超級用戶權(quán)限。另外對符
號鏈接文件,將會排除在外。也就是說,你在rsync服務器上,假如有符號鏈接,你在備
份服務器上運行客戶端的同步數(shù)據(jù)時,只會把符號鏈接名同步下來,并不可能同步符號鏈接
的內(nèi)容;這個需要自己來嘗試
readonly=no
readonly
指定是否同意客戶上傳文件,若為yes則不同意上傳;若為no同時服務器目錄也具有讀寫
權(quán)限則同意上傳.
writeonly
指定是否同意客戶下載文件.若為yes則不同意下載;若為no同時服務器目錄也具有讀權(quán)限則
同意下載
#limitaccesstoprivateLANs
hostsallow=192,168.1.0//
注:在您能夠指定單個IP,也能夠指定整個網(wǎng)段,能提高安全性。格式是ip與ip之間、
ip與網(wǎng)段之間、網(wǎng)段與網(wǎng)段之間要用空格隔開;
maxconnections=5
注:客戶端最多連接數(shù)
motdfile=/etc/rsyncd/rsyncd.motd
注:motdfile是定義服務器信息的,要自己寫rsyncd.motd文件內(nèi)容。當用戶登錄時
會看到這個信息。比如我寫的是:
++++++++++++++++++++++++++++++++++++++++++++++
Welcometousethersyncservices!
20022009
++++++++++++++++++++++++++++++++++++++++++++++
logfile=/var/log/rsync.log
注:rsync服務器的日志;
transferlogging=yes
注:這是傳輸文件的日志
logformat=%t%a%m%f%b
syslogfacility=Iocal3
timeout=300
2)模塊定義
模塊定義什么呢?要緊是定義服務器哪個目錄要被同步。每個模塊都要以[name]形式。這
個名字就是在rsync客戶端看到的名字,事實上有點象Samba服務器提供的共享名。而
服務器真正同步的數(shù)據(jù)是通過path指定的。我們能夠根據(jù)自己的需要,來指定多個模塊。
每個模塊要指定認證用戶,密碼文件、但排除并不是務必的
下面是前面配置文件模塊的例子:
[rhel4home]#模塊它為我們提供了一個鏈接的名字,在本模塊中鏈接到了/home目錄;
要用[name]形式
path=/home#指定文件目錄所在位置,這是務必指定的
authusers=root#認證用戶是root,是務必在服務器上存在的用戶
Iist=yes#list意思是把rsync服務器上提供同步數(shù)據(jù)的目錄在服務器上模塊是否顯示
列出來。默認是yeso假如你不想列出來,就n。;假如是no是比較安全的,至少別人
不明白你的服務器上提供了什么目錄。你自己明白就行了;
ignoreerrors#忽略10錯誤
secretsfile=/etc/rsyncd.secrets#密碼存在哪個文件
comment=linuxsirhomedata#注釋能夠自己定義
exclude=beinan/samba/
注:exclude是排除的意思,也就是說,要把/home目錄下的easylife與samba排除在
外;easylife/與samba/目錄之間有空格分開
[rhel4opt]
path=/opt
list=no
comment=optdir
authusers=beinan
secretsfile=/etc/rsyncd/rsyncd.secrets
ignoreerrors
5.啟動rsync服務器
啟動rsync服務器相當簡單,有下列幾種方法
A、-daemon參數(shù)方式,是讓rsync以服務器模式運行
#/usr/bin/rsync--daemon—config=/etc/rsyncd/rsyncd.conf#--config用于
指定rsyncd.conf的位置,假如在/etc下能夠不寫
B、xinetd方式
通過servicexinetdrestart來重啟rsync服務
修改services加入如下內(nèi)容
#nano-w/etc/services
rsync873/tcp#rsync
rsync873/udp#rsync
這一步通常能夠不做,通常都有這兩行(我的RHEL4與GENTOO默認都有)。修改的目的
是讓系統(tǒng)明白873端口對應的服務名為rsynce如沒有的話就自行加入。
設(shè)定/etc/xinetd.d/rsync,簡單例子如下:
#default:off
#description:Thersyncserverisagoodadditiontoamftpserver,asit\
#allowscrcchecksummingetc.
servicersync
{
disable=no
socket_type=stream
wait=no
user=root
server=/usr/bin/rsync
server_args=-daemon
log_on_failure+=USERID
}
上述,要緊是要打開rsync圄固daemon,一旦有rsyncclient要連接日寺,xinetd會把它
轉(zhuǎn)介給rsyncd(port873)。然后servicexinetdrestart,使上述設(shè)定生效.
6.防火墻設(shè)置
Linux防火墻是用iptables,因此我們至少在服務器端要讓你所定義的rsync服務器端口
通過,客戶端上也應該讓通過。
#iptables-AINPUT-ptcp-mstate—stateNEW-mtcp—dport873-jACCEPT
#iptables-L查看一下防火墻是不是打開了873端口
假如你不太懂防火墻的配置,能夠先serviceiptablesstop將防火墻關(guān)掉。當然在生產(chǎn)環(huán)
境這是很危險的,做實驗才能夠這么做喲!
7.通過rsync客戶端來同步數(shù)據(jù)
語法詳解
在配置完rsync服務器后,就能夠從客戶端發(fā)出rsync命令來實現(xiàn)各類同步的操作。rsync
有很多功能選項,下面就對介紹一下常用的選項:
rsync的命令格式能夠為:
1.rsync[OPTION]...SRC[SRC]...[USER@]HOST:DEST
2.rsync[OPTION]...[USER@]HOST:SRCDEST
3.rsync[OPTION]...SRC[SRC]...DEST
4.rsync[OPTION]...[USER@]HOST::SRC[DEST]
5.rsync[OPTION]...SRC[SRC]...[USER@]HOST::DEST
6.rsync[OPTION]...rsync://[USER@]HOST[:PORT]/SRC[DEST]
rsync有六種不一致的工作模式:
1.拷貝本地文件;當SRC與DES路徑信息都不包含有單個冒號":"分隔符時就啟動這種工
作模式。
2.使用一個遠程shell程序(如rsh、ssh)來實現(xiàn)將本地機器的內(nèi)容拷貝到遠程機器。當
DST路徑地址包含單個冒號":"分隔符時啟動該模式。
3.使用一個遠程shell程序(如rsh、ssh)來實現(xiàn)將遠程機器的內(nèi)容拷貝到本地機器。當
SRC地址路徑包含單個冒號":"分隔符時啟動該模式。
4.從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啟動該
模式。
5.從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含"::"分隔符時啟動
該模式。
6.列遠程機的文件列表。這類似于rsync傳輸,只是只要在命令中省略掉本地機信息即可。
-a以archive模式操作、復制目錄、符號連接相當于-rlptgoD
rsync中的參數(shù)
-r是遞歸
-I是鏈接文件,意思是拷貝鏈接文件;-P表示保持文件原有權(quán)限;-t保持文件原有的時
候間;-g保持文件原有用戶組;-o保持文件原有屬主;-D相當于塊設(shè)備文件;
-z傳輸時壓縮;
-P傳輸進度;
-V傳輸時的進度等信息,與-P有點關(guān)系,自己試試。能夠看文檔;
-essh的參數(shù)建立起加密的連接。
-u只進行更新,防止本地新文件被重寫,注意兩者機器的時鐘的同時
-progress是指顯示出全面的進度情況
--delete是指假如服務器端刪除了這一文件,那么客戶端也相應把文件刪除,保持真正的
一致
-password-file=/password/path/file來指定密碼文件,這樣就能夠在腳本中使用而無
需交互式地輸入驗證密碼了,這里需要注意的是這份密碼文件權(quán)限屬性要設(shè)得只有屬主可
讀。
8.一些實例
B1、列出rsync服務器上的所提供的同步內(nèi)容;
首先:我們看看rsync服務器上提供了什么可用的數(shù)據(jù)源
#rsync-list-onlyroot@::
++++++++++++++++++++++++++++++++++++++++++++++
Welcometousethersyncservices!
20022009
++++++++++++++++++++++++++++++++++++++++++++++
rhel4homeThisisRHEL4data
注:前面是rsync所提供的數(shù)據(jù)源,也就是我們在rsyncd.conf中所寫的[rhel4home]模
塊。而''ThisisRHEL4data〃是由[rhel4home]模塊中的comment=ThisisRHEL4
data提供的;為什么沒有把rhel4opt數(shù)據(jù)源列出來呢?由于我們在[rhel4opt]中已經(jīng)把
list=no了。
$rsync-list-onlyroot@192,168.145.5::::「hel4home
++++++++++++++++++++++++++++++++++++++++++++++
Welcometousethersyncservices!
20022009
++++++++++++++++++++++++++++++++++++++++++++++
Password:
drwxr-xr-x40962009/03/1521:33:13.
-rw-r-r-10182009/03/0202:33:41ks.cfg
-rwxr-xr-x212882009/03/1521:33:13wgetpaste
drwxrwxr-x40962008/10/2821:04:05cvsroot
drwx40962008/11/3016:30:58easylife
drwsr-sr-x40962008/09/2022:18:05giddir
drwx40962008/09/2914:18:46quserl
drwx40962008/09/2714:38:12quser2
drwx40962008/11/1406:10:19test
drwx40962008/09/2216:50:37vbirdl
drwx40962008/09/1915:28:45vbird2
后面的root@ip中,root是指定密碼文件中的用戶名,之后的::rhel4home這是
rhel4home模塊名
B2、rsync客戶端同步數(shù)據(jù);
#rsync-avzProot@::rhel4homerhel4home
Password:這里要輸入root的密碼,是服務器端rsyncd.secrets提供的。在前面的例子
中我們用的是mike,輸入的密碼并不回顯,輸好就回車。
注:這個命令的意思就是說,用root用戶登錄到服務器上,把rhel4home數(shù)據(jù),同步到
本地當前目錄rhel4home上。當然本地的目錄是能夠你自己定義的。假如當你在客戶端
上當前操作的目錄下沒有rhel4home這個目錄時,系統(tǒng)會自動為你創(chuàng)建一個;當存在
rhel4home這個目錄中,你要注意它的寫權(quán)限。
#rsync-avzP—deletelinuxsir@linuxsir.ora::rhel4homerhel4home
這回我們引入一個一delete選項,表示客戶端上的數(shù)據(jù)要與服務器端完全一致,假如
linuxsirhome目錄中有服務器上不存在的文件,則刪除。最終目的是讓linuxsirhome目
錄上的數(shù)據(jù)完全與服務器上保持一致;用的時候要小心點,最好不要把已經(jīng)有重要數(shù)所據(jù)
的目錄,當做本地更新目錄,否則會把你的數(shù)據(jù)全部刪除;
三殳定rsyncclient
設(shè)定密碼文件
#rsync
-avzP—delete-password-file=rsyncd.secretsroot@::rhel4
homerhel4home
這次我們加了一個選項-password-file=rsyncd.secrets,這是當我們以root用戶登錄
rsync服務器同步數(shù)據(jù)時,密碼將讀取rsyncd.secrets這個文件。這個文件內(nèi)容只是root
用戶的密碼。我們要如下做;
#touchrsyn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版建筑工程質(zhì)量驗收質(zhì)檢員聘用協(xié)議3篇
- 2025年度路演場地租賃及活動場地租賃期限管理協(xié)議4篇
- 2025版事故車事故現(xiàn)場勘查與報告編制合同3篇
- 2025年度個人二手車置換合同范本4篇
- 2025年度餐廳總經(jīng)理年度綜合服務合同3篇
- 基于云計算2025年度智能辦公系統(tǒng)設(shè)計與實施合同3篇
- 2025年度特色小吃車轉(zhuǎn)讓合同范本二零二五年度3篇
- 2025年度個人借款第三方擔保協(xié)議書(互聯(lián)網(wǎng)金融版)3篇
- 2025版環(huán)保產(chǎn)業(yè)項目投資合作協(xié)議范本4篇
- 2025年醫(yī)院與保險公司醫(yī)療責任險合作協(xié)議4篇
- 農(nóng)民工工資表格
- 【寒假預習】專題04 閱讀理解 20篇 集訓-2025年人教版(PEP)六年級英語下冊寒假提前學(含答案)
- 2024年智能監(jiān)獄安防監(jiān)控工程合同3篇
- 幼兒園籃球課培訓
- 統(tǒng)編版(2024新版)七年級《道德與法治》上冊第一單元《少年有夢》單元測試卷(含答案)
- 100道20以內(nèi)的口算題共20份
- 高三完形填空專項訓練單選(部分答案)
- 護理查房高鉀血癥
- 項目監(jiān)理策劃方案匯報
- 《職業(yè)培訓師的培訓》課件
- 建筑企業(yè)新年開工儀式方案
評論
0/150
提交評論