使用cfengine来实现服务器的自动化配置(5)

http://os.51cto.com  2007-11-12 13:51  yahoon  51CTO.com  我要评论(0)

 

(四)工作方式一

 

在完成了对工作方式二的配置之后,它的基础上我们来配置工作方式一这种工作方式是由服务器运行cfrun连接远程客户端的cfservd,激活远程主机的cfagent程序相比第二种方式而言这种做法实现了集中控制.例如现在有个配置需要立刻更改而现在还没到客户端定时运行的时间如果我们一台台的登录到客户机来执行cfagent,显然是十分麻烦的而且很费时间有了cfrun就可以在中央机上对所有的客户发出指令让他们立即运行cfagent。

 

1.配置客户机上的cfservd.conf

 

在之前的update.conf里面,我们可以看到我们已经在远程客户端上开启了cfservd进程.只是并没有为它们写配置文件,要做也其实很简单,将服务器的cfservd.conf复制过来,然后做适当修改就可以了

# cfservd.conf

# yahoon 2007.11.1

control:

    cfrunCommand = ( "/var/cfengine/bin/cfagent" ) 只需要加入这一句就可以了

    domain = ( yahoon.org )

    AllowConnectionsFrom = ( 192.168.0.0/24 )

    TrustKeysFrom = ( 192.168.0.0/24 )

    AllowUsers = ( root )

    MaxConnections = ( 150 )

    MultipleConnections = ( true )

    #AllowMultipleConnectionsFrom = ( 192.168.0 )

############################################

admit:

#/var/cfengine/rpc_out *.$(domain) 128.39.73

#/file *.$(domain) 128.39.73

    /masterfile/inputs    192.168.0.

    /var/cfengine         192.168.0.

然后重启客户机的cfservd进程

 

2.编辑服务器上的cfrun.hosts客户端列表

 

在服务器上写配置文件cfrun.host,只需要把客户机的ip加进去,这里我们先只把115加进去

# This is the host list for cfrun

192.168.0.115

3.在服务器上运行cfrun

 

现在就可以在服务器上运行cfrun –v

…(部分略)…

Loaded /var/cfengine/ppkeys/localhost.priv

Loaded /var/cfengine/ppkeys/localhost.pub

Looking for a source of entropy in /var/cfengine/randseed

cfrun(0):         .......... [ Hailing 192.168.0.115 ] ..........

Connecting to server 192.168.0.115 to port 0 with options 

Loaded /var/cfengine/ppkeys/root-192.168.0.115.pub

Connect to 192.168.0.115 = 192.168.0.115 on port 5308

Loaded /var/cfengine/ppkeys/root-192.168.0.115.pub

...............................................................

cfrun:yahoon.org: Strong authentication of server=192.168.0.115 connection confirmed

192.168.0.115 replies..

Connection with 192.168.0.115 completed

到客户机115上查看cfagent的日志文件cfengine.centos2.runlog

Sat Nov  3 07:06:37 2007:Lock removed normally :pid=24784:lock.cfagent_conf.centos2.copy._masterfile_inputs__var_cfengine_inp

uts_192_168_0_114_4831:

Sat Nov  3 07:06:39 2007:Lock removed normally :pid=24784:lock.cfagent_conf.centos2.processes.proc_cfservd__var_cfengine_bin_

cfservd_1704:

Sat Nov  3 07:06:39 2007:Lock removed normally :pid=24784:lock.cfagent_conf.centos2.processes.proc_cfenvd__var_cfengine_bin_c

fenvd__H_4223:

Sat Nov  3 07:06:39 2007:Lock removed normally :pid=24784:lock.cfagent_conf.centos2.tidy._var_cfengine_outputs_3686:

Sat Nov  3 07:06:39 2007:Lock removed normally :pid=24784:lock.cfagent_conf.centos2.shellcommand._bin_echo_Danger__Will_hello

_____Robison______2889:

Sat Nov  3 07:06:39 2007:Lock removed normally :pid=24784:no_active_lock:

按照115的方法将另外一台客户机116也配置好,并加入到cfrun.hosts文件里面,同样执行cfrun –v就可以看到两台主机都运行了.

 

4.注意:

 

1cfrun是读取cfrun.hosts里面的主机列表,一个主机完成之后再连接下一台主机

 

2如果现在有多台主机,我现在有紧急情况要运行其中一台的cfagent,例如115这台机,当然你可以ssh到这台主机上直接执行cfagent –v,但是有了cfrun,你只需要在服务器上执行cfrun 192.168.0.115 –v,注意输出的第一行显示Skipping host 192.168.0.116,很明显,它会跳过116来执行

 

3如果客户机的cfservd.conf从服务器拷贝过来后未增加cfrunCommand = ( "/var/cfengine/bin/cfagent" ),那么在服务器执行cfrun –v的时候会报错,同样以115为例,那么cfrun –v的输出会有

Loaded /var/cfengine/ppkeys/root-192.168.0.115.pub

...............................................................

cfrun:yahoon.org: Strong authentication of server=192.168.0.115 connection confirmed

192.168.0.115 replies..

 Host authentication failed. Did you forget the domain name or IP/DNS address registration (for ipv4 or ipv6)?cfrun:yahoon.org: Couldn't recv

cfrun:yahoon.org: recv

Connection with 192.168.0.115 completed

五、小结

 

1、通过客户机本身的cfexecd 服务器的cfrun如果是同时执行cfagent会不会出现冲突?答案是不会,cfengine有很好的锁的机制来避免这种情况的发生.通常来说,客户机定时执行cfexecd来单独激活自己的cfagent和服务器执行cfrun集中激活客户机这两种方式在实际中都会使用,只是场合不同:

 

定时执行作为客户机的一种例行的工作安排进行设置,属于日常任务

 

集中执行一般用于特殊情况要临时激活某些或者所有的客户机执行cfagent,例如临时更改某个主机的配置等

 

2、cfengine本身并没有客户机服务器的严格区分,每一台主机同时可以是服务器,也可以当作客户机.这与windows域的概念有些相似,只要客户端上安装了域管理工具,就可以进行域管理的工作.cfengine也是这种概念.当然,一般来讲方便于集中控制,我们会选定一台机作为服务器,例如本文的centos1,其余的机都用作客户机

 

3、cfengine的日志系统:cfengine 的日志是相当丰富的,例如在centos1,/var/cfengine目录里面cfengine.centos1.runlog,这是cfagent进程的运行日志, cfengine.localhost.runlog这是cfenvd进程的日志.特别注意的是outputs这个目录下面,有很多文件,每次cfexecd运行一次,就会写入一个文件,文件的内容就是cfagent执行的结果.outputs这个目录包括下面的文件都是由cfexecd程序所产生的

 

4、 inputs outputs 目录,这两个目录十分容易搞混,上面已经说了 outputs 目录的作用,inputs相对而言就重要得多,它是 cfengine 默认的当前有效配置文件所在的目录.我们之前创建的 *.conf 之类的文件都是在这个目录下

 

5、cfengine 的所有程序都带有-v参数,用于详细的输出,这对我们排错调试带来了很大方便.而且对于cfagent程序,-n参数是十分有用的.对于一个刚刚建立的策略文件直接执行是十分危险的,-n参数是模拟执行,所以带上它来运行cfagent就给我们带来很大的安全性,特别是调试的时候.所以首先应该使用

 

cfagent –n –v

 

6、cfengine的文档是十分丰富的,我这里也只是仅仅安装上去,告诉大家基本的使用方法,更详细的使用说明可以查阅其官方网站的文档。



共5页: 上一页 [1] [2] [3] [4] 5
【内容导航】
 第 1 页:工作环境及论论知识  第 2 页:下载安装配置过程
 第 3 页:测试运行/排错  第 4 页:测试新加入一台客户机
 第 5 页:配置工作方式一
::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com


订阅 substack 体验古早写作:


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

关注公众号, 持续获得相关各种嗯哼:
zoomquiet


自怼圈/年度番新

DU22.4
关于 ~ DebugUself with DAMA ;-)
粤ICP备18025058号-1
公安备案号: 44049002000656 ...::