自动化运维东西Puppet + MCollective情况搭建手册V1.0_第1页
自动化运维东西Puppet + MCollective情况搭建手册V1.0_第2页
自动化运维东西Puppet + MCollective情况搭建手册V1.0_第3页
自动化运维东西Puppet + MCollective情况搭建手册V1.0_第4页
自动化运维东西Puppet + MCollective情况搭建手册V1.0_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

m动化运维东西

Puppet+MCollective

情况搭建手册

V1.0

IT治理办事部

2014.10.10

编号日期描述版本作者审核

12014.10.10创建文档1.0鞠向明

目录

一、Puppet介绍6

1.为什么要开发puppei6

2.作为东西的puppet7

3.稳定性7

4.puppet的细节和原理8

5.底层支撑东西Providers8

6.修改系统配置9

7.资源之间的干系9

8.exec资源9

9.puppet语言9

10.语言的其他雌14

11.puppet语言高级特性16

12.语言教程18

13.典范的puppet使用要领18

14.总结18

二、安装puppet19

1.更新yum源19

2.配置主机名19

3.安装puppet办事端20

1)安装软件包20

2)验证安装包20

3)修改主机配置文件20

4)配置文件办事21

5)启动puppet-server办事21

4.安装Puppet客户端21

1)安装软件包21

2)配置主机名21

3)配置puppel客户端22

4)启动客户端背景进程22

5.测试连接22

6.节点治理23

三、Puppet参考文档23

四、MCollective介绍24

1.简介24

2.MCollective特点24

五、安装MCollective25

1.server端安装25

1)安装软件包25

2)酉己置activemq26

3)酉己置mcollective26

4)启动27

2.client安装配置:27

1)安装软件包27

2)配置客户端27

3)启动客户端28

3.直察连接情况28

4.其他使用命令28

六、Rsync安装29

1.Rsync介绍29

2.安装rsync29

3.酉己置rsync29

1)设定/etc/rsyncd.conf3()

2)设定/etc/rsyncd.secrets密码文件31

3)设定rsyncd.motd文件32

4.rsyncd.conf酉己置文彳牛详解32

1)全局界说33

2)模块界说34

5,启动「sync办事器36

6.防火墙设置37

7.通过r*ync客户端来同步数据37

8.一些实例39

9.FAQ43

七、一键安装clienl脚本47

一、Puppet介绍

以下介绍来自/

关于puppet各资源及其用法,请参考上述网址。

1.为什么要开发puppet

系统治理员都喜欢自己写点小东西来让自己的事情完成的更快大概更好,

不管是在大企业治理大量的办事器照旧只治理两三台呆板.但是很少人会把他

们的东西宣布出来.也就是是说少少有东西能被重用,大概说许多东西就只能在

所在的组织内部有用,拷贝给别的组织,他们也用不上.也就是说,每个系统治理

员,在一个新的公司,都市另起炉灶开发一套基于ssh,fo「循环的"系统”来资助自

己完成系统治理任务.

开发puppet是为了让系统治理员社区可以相互交换和共享成熟的东西,制

止重复的劳动.通过以下两个特性来实现这一目标:

I.提供一个简便的但是强大的框架来完成系统治理任务

2.系统治理任务可以描述成puppet语言,因此可以相互分享代码,就像分享

其他语言的代码一样,比如python,c等

因此,作为系统治理员的你可以更快的完成事情,因为你可以用puppet来处

理惩罚所有的治理细节.甚至你还可以下载其他治理员的puppet代码来让你的

事情完成的更快.

2.作为东西的puppet

puppet是一个配置治理东西,典范的,puppet是一个C/S结构,虽然,这

里的C可以有许多,因此,也可以说是一个星型结构.所有的puppet客户端同一

个办事器端的puppet通讯.每个puppet客户端每半小时(可以设置)连接一次

办事器端,下载最新的配置文件,并且严格凭据配置文件来配置办事器.配置完

成以后,puppet客户端可以反馈给办事器端一个消息.如果堕落,也会给办事器

端反馈f消息.

叵I

3.稳定性

puppet与其他手工操纵东西有一个最大的区别就是puppet的配置具有稳

定性,因此你可以多次执行puppet,一旦你更新了你的配置文件,puppet就会

凭据配置文件来变动你的呆板配置,通常每30分钟直抄一次.puppet会让你的

系统状态同配置文件所要求的状态保持一致.比如你配置文件里面要求ssh办

事必须开启.如果不小心ssh办事被封闭了,那么下一次执行puppet的时

候,puppet会发明这个异常,然后会开启ssh办事.以使系统状态和配置文件

保持一致.puppet就象一个魔术师,会让你的杂乱的系统收敛到puppet配置文

件所想要的状态.

可以使用puppet治理办事器的整个生命周期,从初始化到退役.差别于传统

的例如sun的Jumpstart大概redhat的Kickstart,puppet可以长年让办事

器保持最新状态.只要一开始就正确的配置他们,然后再也不消去管他们.通常

puppet用户只需要给呆板安装好puppet并让他们运行,然后剩余的事情都由

puppet来完成.

4.puppet的细节和原理

puppet的目的是让你只会合于你要治理的目标,而忽略实现的细节,例如命

令名,参数大概文件格式.puppet把系统里面的用户,软件包,办事看作是“资源,

puppet的作用就是治理这些资源以及资源之间的相互联系.

5.底层支撑东西Providers

puppet有许多的资源类型,例如文件,用户,软件包,办事,差别的操纵系统

上对资源的治理命令是不一样的,例如debian下面用apt-get安装软件,redhat

下面用yum安装软件.

因此puppet对同一资源的治理可以有多个实现,配置资源的时候,可以明

确的指定用什么provider.例如在redhat上配置一个package资源的时候,

可以指定provide是yum.

6.修改系统配置

puppet通过治理资源的方法来治理系统,例如治理某个软件是否要安装,

是安装最新的照旧安装了就行.治理某个办事是否开启,治理某个文件的属性,

内容等等.所有的资源都有对应的几个属性可以设置.通过设置属性的方法来

治理资源.有一种特殊的属性可以用在所有的资源上面,这种属性叫做

metaparams(元参数大概元属性).

7.资源之间的干系

支持资源之间的干系配置是puppet的要害特性之一.一个资源的变动可以对另一个资

源产生一个行动.例如/etc/apache.conf这个资源有窜改,可以让/etc/init.d/apache这个资源

reload一下.

如果一个资源依赖另一个资源,那么puppet会优先配置被依赖的资源,因此如果你的配置

文件没有准备好,对应的办事是不会先启动的.

8.exec资源

有时候.没有符合的资源来治理办事器上的配置,为了处理惩罚这个情况,puppet提供一

个叫做exec的资源类型.利用这个资源,你可以执行外部命令.例如你可以用svnadmin命令

来创建一个svn库.

9-puppet语言

资源

puppet的全部就是治理资源,因此puppet语言的核心就是处理惩罚这些资源,

下面是一个根本的治理单个资源的例子.

file{"/etc/hosts":

owner=root,

group=root,

mode=644

上面的列子给出了界说一个资源所需要的所有组件,类型,名字和属性.界说了一

个file资源,资源的title(标题)是"/etc/hosts",资源的属性里面设置了该

文件属于那个用户和组,以及文件的权限.

也可以在一个大括号里面界说多个资源,通太过号来区分.

file(

'7etc/sudoers":

owner="root",

group="root",

mode=644;

"/usr/sbin/sudo":

owner="root",

group="root",

mode=4111

I

制止重复配置

puppet的编译器会制止在差别的代码段里面治理同一个资源,如果在差别的代

码段对同一个资源进行配置,执行puppet的时候你会得到一个语法错误.

puppet探测这种辩论的情况是通过判断资源类型和资源的title(标题);如果

两个资源有相同的资源类型和title;那么就认为这两个资源是体现同一个资源.

类class

下面讨论如何组合种种资源,把多个相关的资源界说在一起,组成一个类,例如

下面的代码.

classsudo{

package{sudo:ensure=installed}

file(

"/elc/sudoers":

owner="root",

group="root",

mode=644:

7usr/sbin/sudo":

owner="root",

group="root",

mode=4111

}

)

你在别的代码段includesudo这个类,就会把sudo这个软件包(package那

里界说)安装好,以及两个配置文件设置好.

Inheritance继承

puppet支持有限制的类的继承,但是它只有一个唯一的作用就是:子类里面

的属性可以笼罩父类里面的属性.下面是一个勉强正确的例子.

classbase{

file{〃/my/filo”:content=template(^base.erb,z))

}

classsubinheritsbase(

#overridethecontent

File[〃/my/file〃](content=template(''other.erbz,)}

}

注意,在子类里面的资源类型的界说是用的大写的File;体现对这个资源重新界说,如果用小

写的file;就会引起前面说的资源的重复配置的情况彳导到一个语法错误.

一个庞大的真实的例子

生活总是不容易阿,真实情况中,一个包经常关联到几个办事,同时又关联到差别

的配置文件.险些所有的类unix系统里面都有ssh办事.通常,你不但是想安装

ssh包,并且你还想启动ssh办事.看看下面的例子

classssh{

package{ssh:ensure=installed}

file{sshd_config:

name=$operatingsystem?{

Darwin=7etc/sshd_config",

Solaris=Vopt/csw/etc/ssh/sshd.config",

default=7etc/ssh/sshd_config"

}.

source=npuppet:///files/ssh/sshd_config"

)

service{ssh:

name=$operatingsystem?{

Solaris=openssh,

default=ssh

},

ensure=running,

subscribe=[Package[ssh],File[sshd_config]]

上面的代码安装好ssh包并开启ssh办事,因为在差别的操纵系统上面,ssh的配置文件名字

不一样,所以还可以通过判断操纵系统的类型来指定资源的title(标题).那么操纵系统的类

型是怎么判断的呢?下面就会解释这个问题.

FacterVariablesfacter变量

在上面的ssh代码里面.我们引入了一些新的东西,首先是Soperatingsystem这个变量,这个

变量被引用.在puppet阐发代码的时候,会把从facter传送过来的对应的值赋值给这个变量.

你可以单独手工执行facter这个命令,这个命令会打印出它所收集到的关于主机的信息、例如

ip地点等等.facter把收集到值发送个puppet办事器端,办事器端就可以凭据差别的条件来对

差别的呆板生成差别的puppet配置文件.最重要的一个就是办事器的主机名.

selectors选择器

另一个新东西就是?{.•.}这个语法,通过对?前面的变量与括号里面的选择项进行比拟,

然后把相应的值赋值给资源,例如上面的例子.Soperatingsystem如何是Solaris那么ssh这个

资源的name属性就是"印enssh":如果不匹配,就赋值成defualt的指,匹配将区分巨细写.

titlevsname(标题和名字)

如果你足够细心,你会发明我们资源指定了第2个名字,例如上面的service资源ssh.

注意.冒号前面的名字叫做title(标题),标题的作用让作者标识差别的资源.是写给人以及

puppet语法阐发器看的.因此配置资源相互干系的时候,也是用资源的title,name是指定这个

资源的具体路径,是写给盘算机看的.通常,name会默认和title的值一样.因此,你可以省略

name.只有情况特殊的时候才设置name属性.

资源之间的干系

最后我们来阐发所有资源直接的干系.配置文件包办事最后一行的File[sshd_config]语法

指定了一个资源参考,注意这里是用的资源的title,这样你就不消指定资源的全路径.

subscribe=[Package[sshl,File[sshd_config]]这个语句体现,如果package"ssh"大概文件”

sshd_config"有修改,servicessh需要重启.

10.语言的其他特性

真相

险些所有的东西和标记在puppet里面都被看作是字符串,包罗数字和布尔值.

但是如果你用引号把true和false引起来,他们会被当做字符串,例如你想赋值

给某个资性“yes”的字符串.

变量

我们已经看过什么是变量了,虽然,你还可以直接给他赋值,例如

Smyvar=value

puppet不允许你在同一个类里面对一个变量进行两次赋值.

更多的条件语句

我们已经在前面介绍过了选择器(selectors),在为变量选择特定的值的时候非常有用,

Puppet同时也支持条件语句,使得你能凭据差别的条件导入差别的资源界说(resource

specifications):

case$opcratingsystcm{

Darwin:{file{"/some/file":ensure=>present})

default:{file{"/other/file":ensure=>present}}

I

与选择器(selectors)配合,case语句可以进行casc-insensitivc匹配。

这里另有一个简单的if/else结构:

if$should{

file{"/some/file":ensure=>present}

)else(

file{"/other/file":ensure=>present}

)

另外,Puppet从版本0.246开始支持比力运算符。

数组

puppet非常有限的支持数组这种类型,你可以创建数组,并且给他们赋值,但是

你不能删除它们.数组用的最多的情况就是上面ssh例子里面,资源依赖哪种情

况.大概是一次治理多个相同类型的资源.例如:

user{[bin,adm]:ensure=present}

函数

puppet支持简单的函数语法,例如

notice("Thisisalogmessage")

puppet提供一些有用的函数,例如template利用erb模板来生成文件内容,这

样就可以凭据差别主机的情况,生成差别的配置文件,例如配置squid的内存缓

存巨细,可以利用facter返回的内存值做一个简凿的数学盘算,然后写入到

squid的配置文伟就是通过template来完成的.另外一个函数include可以

读入另外的puppet配置文件大概类.这样可以把puppet的文件支解的更有规

津具体的文档参考puppet的函数文档[点这里]

11.puppet语言高级特性

界说

puppet里面有一个非常有用的语法结构,叫做"definitions”,通过

definitions可以把多个资源包装成一个资源,大概把一个资源包装成一个模型,

便于使用.例如,在debian里面治理一个apache虚拟机酢常简单,把一个虚拟主

机的配置文件放到/etc/sites-dvailable/里面,然后做一个标记链接到

/etc/sites-enabled目录,你可以为你每个虚拟主机复制同样的配置代码,但是

如果你使用下面的代码就会更好和更简单.

defineviriual_host($docroot,$ip,$order=5()0,$ensure="enabled"){

$file=Vetc/sites-available/Sname.conf

#Thetemplatefillsinthedocroot,ip,andname,

file{

content=>templal3("virtual_host.erb"),

notify=>Service[apache]

)

file{7etc/si(es-enabled/$order-$name.conf:

ensure=>$cnsurc?{

enabled=>$file,

disabled=>absent

然后,你就可以使用这个界说来治理一个apache虚拟主机,如下面代码所示

virtual_host{

order=>100,

ip=>"()0",

docroot=>"/var/www//htdocs"

I

你可以在其他地方重用这个界说,另一个界说的用法就是包装一组exec资源,

让使用者越发清晰思路,例如下面的代码实现了一个svn库的创建的界说.

#Createanewsubversion用ository.

definesvnrcpo(Spath){

exec{"create-svn-$name":

command=>"/usr/bin/svnadmincreate$path/$namc",

creates=>"$palh/$name"#onlyrunifthisfiledocsnotexist

)

)

然后,你可以在其他地方用下面的代码来创建一个svn库

svnrcpo{puppet:path=>"/var/lib/svn"}

nodes节点

最后一个关于puppet语言的语法是节点界说(nodedefinition),节点界

说很象类界说,也支持继承特性.当一个节点(puppet客户端)连接到puppet办

事器端,puppet解析器会查找这个节点的node代码片断,然后利用这个代码片

断来生成该客户端的配置代码.puppet里面主机名来标明一个主机,因此主机名

在puppet里面相当重要.如果puppet找不到匹配该主机名的node界说,就

会用默认的节点界说来配置该主机.在node里面使用主机名,需要用单引号把

主机名括起来.

node'www.exaKAp/'{

includepublickcy_auth

在上面的代码中,如果www.examD这个主机连接至ijDuniet:办事

器,DUDDet办事器就会凭据上面的代码来配置这个呆板.

12.语言教程

详细的DUDDet语言教程,参考「puppet教程]

13.典范的pu叩et使用要领

puppet既可以在单机上使用,也可以以c/s结构使用.在大范围使用puppet

的情况下,通常使用c/s结构,在这种结构中puppet客户端只是指运行puppet

的办事器,puppet办事器端是只运行puppetmaster的办事器.

puppet客户端首先会连接到puppet办事器端,并且通过facter东西把客

户端的配置信息发送给办事器端.办事器端通过阐发客户端的主机名,通过

node界说,找到该主机的配置代码,然后编译配置代码,把编译好的配置代码发

回客户端.客户端执行代码完成配置.并且把代码执行情况反馈给puppet办事

器端.

14.总结

以上列举了许多非常有用的用法,但所有的这些只是Puppet成果的一个大

概介绍。这里有一份全面的[文档],里面附带了许多例子:为了让你能过越发深

入的了解Puppet.我们会一直维护这个文档,所以如果你有什么具体的要求,

请通过「pupD]与我们联系。

二、安装puppet

Puppet是一款开源的东西,使用自有的puppet描述语言,可治理配置文件、用户、

cron任务、软件包、系统办事等,实现自动化摆设。

安装情况:Redhat5.5

安装方法:yum

1.更新yum源

rpm-ivh“httD:〃vum.DupDetJ/el/5/Droducts/i386/cuDDetlabs-release-5-l,.noarch.rpm”

rpm-ivh"httD:〃vum.DUDDetlabs.eom/el/5/Droducts/x8664/DUDDeHabs-release-5-Lnoarch.rDrrr

rpm-ivh"http:〃yum.Diwetg/el/6/products/i386/cuDDetlabs-release-6T.noarch.rpm”

rpm-ivh"http:〃vum.DUDvetlabs.eom/el/5/Droducts/x8664/DUDDetlabs-releasD-5-l.noarch.rpm”

2.配置主机名

puppet的客户端和办事器是通过ssl链接的,在办事器有一个自签名的根证书,在安

装软件的时候自动生成。

注意:

要在安装软件以前先设置主机名,因为生成证书的时候,要把主机名写入证书。

我们把puppet办事器的主机名和域名定为:

vi/etc/hosts

1

3.安装p叩pet办事端

1)安装软件包

yuminstallmysql-server

yum-yinstallpuppet-serverpuppet

使用yum安装会自动解决依赖干系,安装ruby情况。

2)验证安装包

|root@puppetservcrrpm-qa|grcpmysql-server

mysql-server-5.0.95-5.e15_9

[root@puppetscrvcr〜]#rpm-qa|grcppuppet-server

puppet-server-3.6.2-1.el5

[root@puppetserver-]#rpm-qa|greppuppet

puppet-3.6.2-Lel5

puppetlabs-release-5-1

puppet-server-3.6.2-1.e!5

3)修改主机配置文件

进入目录/etc/puppet/manifbsts

编辑主机配置文件

Visitc.pp

import"nodes/*.pp"

新建节点文件夹:mkdirnodes/

在nodes下面新建一个默认节点文件default_node.pp,新建一个file资源供测试。

内容如下

node/.*\.S/

file{

"/tmp/test_puppet_01.log":

content=>

"hello

thisismyfirstmanifestfile

II

f

mode=>0644;

4)配置文件办事

vi/etc/puppet/fileserver.conf

[MyFileService]文件办事名

pathZopt/MyFileService文件办事的目录设定

allow*权限设定

5)启动puppet-server办事

[rool@puppetservermanifests]#servicepuppetmasterstart

Startingpuppetmaster:[OK

[root@puppetservermanifests]#servicepuppetmasterstatus

puppet(pid14516)isrunning...

4.安装Puppet客户端

1)安装软件包

yuminstallpuppet

2)配置主机名

vi/etc/hosts

1

3)配置puppet客户端

修改配置文件/etc/puppet/puppet.conf:

server=

certname=认证名称

runinterval=1800同步隔断秒数

4)启动客户端背景进程

servicepuppetstart

这样puppetclient会在背景执行,每到默认1800秒会主动与server同步一次。

5.测试连接

每个客户端的证书要经过根证书签名才华和办事器连接C

所以首先要在客户端执行下面的命令来请求办事器签名证书。

Puppetagent-test

登录到办事器端,执行下面的命令杳察是否有客户端的证书请求:

puppetcertlist-all

如果看到了客户端的证书请求,用下面的命令对所有证书请求签名:

puppetcert-signpuppet_client(客户端主机名)#这条命令加客户端主机名就能签字,

自此可以通信。

再次执行

Puppetagent-test

就会从server端得到manifest文件,在客户端指定位置生产一个文件。

查察/tmp/test_puppet_01.log即可验证。

6.节点治理

puppet如何区分差别的客户端,并且给差别的办事端分派manifest呢?

在/etc/puppet/manifests/nodes/目录下,每台办事器创建一个节点文件:

[root@puppetservermanifests]#Is/etc/puppet/manifests/nodes/*.pp

/etc/puppet/manifests/nodes/default_node.pp

/etc/puppet/manifests/nodes/nodeO.pp

/etc/puppet/manifests/nodes/kvm_.pp

/etc/puppet/manifests/nodes/.pp

/etc/puppet/manifests/nodes/nodeOOOOO.pp

/etc/puppet/manifests/nodes/.pp

/etc/puppet/manifests/nodes/.pp

/etc/puppet/manifests/nodes/.pp

/etc/puppet/manifests/nodes/.pp

puppet使用node资源做这件事情,node背面跟客户端的主机名。

node''

三、Puppet参考文档

英文

https://docs.puppetlabs.com/

四、MCollective介绍

1.简介

MCollective是一1^构建办事器编排(ServerOrchestralion)和并行事情执行系统的框架。

首先,MCollective是一种针对办事器集群进行可编程控制的系统治理解决方案。在这

一点上,它的成果类似:Func,Fabric和Capistrano。

其次,MCollective的设计冲破基于中心存储式系统和像SSH这样的东西,不再仅

仅痴迷于SSH的For循环。它使用宣布订阅中间件(PublishSubscribeMiddleware)这

样的现代化东西和通过目标数据(metadata)而不是主机名(hostnames)来实时发明网络资源

这样的现代化理念。提供了一个可扩展的并且迅速的并行执行情况。

MCollective东西为命令行界面,但它可与数千个应用实例进行通信,并且传输速度惊

人。无论摆设的实例位于什么位置,通信都能以线速进行传输,使用的是一个类似多路传

送的推送信息系统。MCollective东西没有可视化用户界面,用户只能通过检索来获取需

要应用的实例。PuppetDashboard提供有这部分成果。

2.MCollective特点

•能够与小到人型办事招集群交互

•使用广播范式(broadcastparadigm)来进行请求分发,所有办事器会同时收到请求,而只

有与请求所附带的过滤器匹配的办事器才会去执行这些请求。没有中心数据库来进行同步,

网络是唯一的真理

•冲破了以往用主机名作为身份验证手段的庞大命名规矩。使用每台呆板自身提供的富厚

的目标数据来定位它们。目标数据来自于:Puppet,Chef,Facter,Ohai大概自身提供的插

•使用命令行调用远程署理

•能够写自界说的设备陈诉

•大量的署理来治理包,办事和其他来自于社区的通用组件

•允许写SimplcRPC气势派头的署理、客户端和使用Ruby实现WebUis

•外部可插件化(pluggable)实现本地需求

・中间件系统已有富厚的身份验证和授权模型,利用这些作为控制的第一道防地。

•重用中间件来做集群、路由和网络断绝以实现宁静和可扩展安装。

五、安装MCollective

1-server端安装

1)安装软件包

首先要确保puppetyum源在,没有的话请安装,如下(redhat6、centos6):

rpm-ivhhttp://yum.puppetlabs.eom/el/6/products/x8664/puppetlabs-release-6-6.noarch

.rpm

yuminstallmcollective-*-y

yuminstallactivemqactivemq-info-provider-y

2)配置activemq

vi/etc/activemq/activemq.xml

找至!Jauthenticationuser修改用户名和密码:默认是:admin,secret

找到transportconnector修改其中的

name="stomp+nio"uri="stomp+nio://:61637&

gt;为name="stomp"uri="stomp://:61637>

3)配置mcollective

vi/etc/mcollective/server.cfg

plugin.stomp.host=localhost##mcollectiveserverIPO

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/mcollective/server.cfg

plugin.stomp.host=04##指向mcoolective的IP。

plugin.stomp.user=mcollective##这个是activemq.xml里的用户名

plugin.stomp.password=secret##这个是activemq.xml里界说的密码

identity=(界说主机名带域名)

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端执行:

mcofind大概是mcoping即可找到client

4.其他使用命令

重启syslog办事:mcoservicesyslogrestart

安装软件:mcopackage-vinstallscreen##-v显示详细信息

创建文件:mcorpcfilemgrtouchfile=/tmp/test.txt

删除文件:mcorpcfilemgr-vremovefile=/tmp/test.txt

查察文件状态:mcorpcfilemgrstatusfile=/etc/puppet/puppet.conf

资助:mcohelp

六、Rsync安装

1.Rsync介绍

rsync,remotesynchronize顾名思意就知道它是一款实现远程同步成果的软件,它

在同步文件的同时,可以呆持原来文件的权限、时间、软硬链接等附加信息。rsync是用

"rsync算法”提供了一个客户机和远程文件办事器的文件同步的快速要领,并且可以通过

ssh方法来传输文件,这样其保密性也非常好,另外它照旧免费的软件。

rsync包罗如下的一些特性:

•能更新整个目录和树和文件系统;

•有选择性的保持标记链链、硬链接、文件属于、权限、设备以实时间等;

•对付安装来说,无任何特殊权限要求;

•对付多个文件来说,内部流水线淘汰文件期待的延时;

•能用rsh、ssh或直接端口做为传输入端口;

•支持匿名rsync同步文件,是理想的镜像东西;

2.安装rsync

Yuminstallrsync

Yuminstallxinetd

3.配置rsync

rsync的主要有以下三个配置文件rsyncd.conf(主配置文件)、rsyncd.secrets(密码文

件)、rsyncd.motd(rysnc办事器信息)

办事器配置文件(/etc/rsyncd.conf),该文件默认不存在,请创建它。

具体步调如下:

#touch/etc/rsyncd.conf

#创建rsyncd.conf,这是rsync办事器的配置文件。

#touch

#创建rsyncd.secrets,这是用户密码文件。

/etc/rsyncd.secrets

chmod600/etc/rsyncd/rsyncd.secrets

将rsyncd.secrets这个密码文件的文件属性设为root

拥有,且权限要设为600,不然无法备份乐成!

#touch/etc/rsyncd.motd

1)设定/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=71

#uid=nobody

#gid=nobody

uid=root

gid=root

usechroot=yes

readonly=yes

#limitaccesstoprivateLANs

hostsallow=//

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=ThisisRIILL4data

exclude=easylife/samba/

[rhel4opt]

path=/opt

list=no

ignoreerrors

comment=ThisisRHEL4opt

authusers=easylife

secretsfile=/etc/rsyncd/rsyncd.secrets

注:关于authusers是必须在办事器上存在的真实的系统用户,如果你想用多个用户以,

号离隔,比如authusers=easylife,root

2)iS^/etc/rsyncd.secrets密码文件

密码文件格式很简单,rsyncd.secrets的内容格式为:

用户名:密码

我们在例子中rsyncd.secrets的内容如下类似的;在文档中说,有些系统不支持长密码,

自己实验着设置一下吧。

easylife:keer

root:mike

chownroot.rootrsyncd.secrets#修改属主

chmod600rsyncd.secrets#修改权限

注:1、将rsyncd.secrets这个密码文件的文件属性设为root拥有,且权限要设为600,不

然无法备份乐成!出于宁静目的,文件的属性必须是只有属主可读。

2、这里的密码值得注意,为了宁静你不能把系统用户的密码写在这里。比如你的系统用户

easylife密码是000000,为了宁静你可以让rsync中的easylife为keer。这和samba

的用户认证的密码原理是差不多的。

3)设定rsyncd.motd文件

它是界说rysnc办事器信息的,也就是用户登录信息。比如让用户知道这个办事器是谁提

供的等;类似ftp办事器登录时,我们所看到的ftp……。虽然这在全局界

说变量时,并不是必须的,你可以用#号注掉,或删除,我在这里写了一个rsyncd.门otd

的内容为:

++++++++++++++++++++++++++++++++++++++++++++++

Welcometousethersyncservices!

20022009

++++++++++++++++++++++++++++++++++++++++++++++

4.rsyncd.conf酉己置文件详解

1)全局界说

在rsync办事器中,全局界说有几个比力关健的,凭据我们前面所给的配置文件

rsyncd.conf文件;

pidfile=/var/run/rsyncd.pid注:报告进程写到/var7run/rsyncd.pid文件中;

port=873注:指定运行端口,默认是873,您可以自己指定;

address=71注:指定办事器IP地点

uid=nobody

gid=nobdoy

注办事器端传输文件时,要发哪个用户和用户组来执行,默认是nobody.如果用nobody

用户和用户组,可能遇到权限问题,有些文件从办事器上拉不下来。所以我就偷懒,为了方

便,用了root0不外您可以在界说要同步的目录时界说的模块中指定用户来解决权限的问

题。

usechroot=yes

注:用chroot,在传输文件之前,办事器守护步伐在将chroot到文件系统中的目录中,

这样做的利益是可能掩护系统被安装漏洞侵袭的可能。缺点是需要超等用户权限。另外对标

记链接文件,将会排除在外。也就是说,你在「sync办事器上,如果有标记链接,你在备

份办事器上运行客户端的同步数据时,只会把标记链接名同步下来,并不会同步标记链接的

内容;这个需要自己来尝试

readonly=no

readonly

指定是否允许客户上传文件,若为yes则不允许上传;若为no并且办事器目录也具有读写

权限则允许上传.

writeonly

指定是否允许客户下载文件.若为yes则不允许下载;若为no并且办事器目录也具有读权限则

允许下载

#limitaccesstoprivateLANs

hostsallow=//

注:在您可以指定单个IP,也可以指定整个网段,能提高宁静性。格式是ip与ip之间、

ip和网段之间、网段和网段之间要用空格离隔;

maxconnections=5

注:客户端最多连接数

motdfile=/etc/rsyncd/rsyncd.motd

注:motdfile是界说办事器信息的,要自己写rsyncd.motd文件内容。当用户登录时

会看到这个信息。比如我写的是:

++++++++++++++++++++++++++++++++++++++++++++++

Welcometousethersyncservices!

20022009

++++++++++++++++++++++++++++++++++++++++++++++

logfile=/var/log/rsync.log

注:rsync办事器的日志;

transferlogging=yes

注:这是传输文件的日志

logformat=%t%a%m%f%b

syslogfacility=Iocal3

timeout=300

2)模块界说

模块界说什么呢?主要是界说办事器哪个目录要被同步,每个模块都要以[name]形式。这

个名字就是在rsync客户端看到的名字,其实有点象Samba办事器提供的共享名。而办

事器真正同步的数据是通过path指定的。我们可以凭据自己的需要,来指定多个模块。每

个模块要指定认证用户,密码文件、但排除并不是必须的

下面是前面配置文件模块的例子:

[rhel4home]#模块它为我们提供了一个链接的名字,在本模块中链接到了/home目录;

要用[name]形式

path=/home#指定文件目录所在位置,这是必须指定的

authusers=root#认证用户是root,是必须在办事器上存在的用户

list=yes#list意思是旧rsync办事器上提供同步数据的目录在办事器上模块是否显示

列出来。默认是yes。如果你不想列出来,就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参数方法,是让rsync以办事器模式运行

#/usr/bin/rsync-daemon-config=/etc/rsyncd/rsyncd.conf#-config用于

指定rsyncd.conf的位置,如果在/etc下可以不写

B、xinetd方法

通过servicexinetdrestart来重启rsync办事

修改services参加如下内容

#nano-w/etc/services

rsync873/tcp#rsync

rsync873/udp#rsync

这一步一般可以不做,通常都有这两行(我的RHEL4和GENTOO默认都有)。修改的目的

是让系统知道873端口对应的办事名为rsync。如没有的话就自行参加。

设定/etc/xinetd.d/rsyncz简单例子如下:

#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

)

上述,主要是要打开rsyncdaemon,一旦有rsyncclient要连接除xinetd会把它

转介东合rsyncd(port873)。然后servicexinetdrestart,使上述设定生效.

6.防火墙设置

Linux防火墙是用iptables,所以我们至少在办事器端要让你所界说的「sync办事器端口

通过,客户端上也应该让通过。

#iptables-AINPUT-ptcp-mstate-stateNEW-mtcp—dport873-jACCEPT

#iptables-L查察一下防火墙是不是打开了873端口

如果你不太懂防火墙的配置,可以先serviceiptablesstop将防火墙关掉。虽然在生产情

况这是很危险的,做实验才可以这么做哟!

7.通过rsync客户端来同步数据

语法详解

在配置完rsync办事器后,就可以从客户端发出「sync命令来实现种种同步的操纵。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)来实现将本地呆板的内容拷贝到远程呆板,当

DST路径地点包罗单个冒号”:“离开符时启动该模式。

3.使用一个远程shell步伐(如rsh.ssh)来实现将因呈呆板的内容拷贝到本地呆板,当

SRC地点路径包罗单个冒号”:“离开符时启动该模式。

4.从远程rsync办事器中拷贝文件到本地机。当SRC路径信息包罗”::“离开符时启动该

模式。

5.从本地呆板拷贝文件到远程rsync办事器中。当DST路径信息包罗”::“离开符时启动

该模式。

6.列远程机的文件列表。这类似于rsync传输,不外只要在命令中省略掉本地机信息即可。

-a以archive模式操纵、复制目录、标记连接相当于-HptgoD

rsync中的参数

-r是递归

-I是链接文件,意思是拷贝链接文件;-P体现保持文件原有权限;-t保持文件原有时间;

-g保持文件原有用户组;-0保持文件原有属主;-D相当于块设备文件;

-z传输时压缩;

-P传输进度;

-V传输时的进度等信息,和有点干系,自己试试。可以看文档;

-essh的参数创建起加密的连接“

-u只进行更新,防备本地新文件被重写,注意两者呆板的时钟的同时

-progress是指显示出详细的进度情况

-delete是指如果办事器端删除了这一文件,那么客户端也相应把文件删除,保持真正的

T

-password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无

需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可

读。

8.一些实例

B1,列出rsync办事器上的所提供的同步内容;

首先:我们看看rsync办事器上提供了哪些可用的数据源

#rsync-list-onlyroot@::

++++++++++++++++++++++++++++++++++++++++++++++

Welcometousethersyncservices!

20022009

++++++++++++++++++++++++++++++++++++++++++++++

rhel4homeThisisRHEL4data

注:前面是rsync所提供的数据源,也就是我们在rsyncd.conf中所写的[rhel4home]模

块。而ThisisRHEL4data”是由[rhel4home]模块中的comment=ThisisRHEL4

data提供的;为什么没有把rhel40Pt数据源列出来呢?因为我们在[rhel4opt]中已经把

list=no了。

$rsync-list-onlyroot@::::rhel4home

++++++++++++++++++++++++

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论