Chinaunix首页 | 论坛 | 博客
  • 博客访问: 320154
  • 博文数量: 50
  • 博客积分: 3052
  • 博客等级: 中校
  • 技术积分: 710
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-03 12:13
文章分类
文章存档

2009年(10)

2008年(40)

我的朋友

分类: LINUX

2008-09-18 17:03:51

cfengine看了有几天了,试验也做了不少了,基本上可以说是入门了,这是一个集中管理的软件,内容分发性质的软件,可以单机使用,也可以多机使用

Cfengine 是一个令人恐怖的系统管理工具。它可自动对联网的计算机进行配置和维护,适用于所有基于UNIX或类UNIX的操作系统,并且它可以通过UNIX兼容的环境/库Cygwin 在较新版本的Windows操作系统中运行。

Cfengine目的是使简单的管理的任务自动化,使困难的任务变得较容易。它的目标是使系统从任何状态收敛到一种理想状态。依照它的作者 Mark Burgess 所说,cfengine 总是使您的系统更接近于您所定义的配置; 它决不会使系统变得更糟。

以上是cfengine网站对此软件的说明,接下来我们就开始吧
环境:vmvare模拟两个linux,hostname分别是linux01(192.168.220.128)和linux02(192.168.220.130)
到下载cfengine的程序,目前稳定版最新的是2.2.8,
安装超级傻瓜,就三步
./configure
make
make install
执行文件被安装到了/usr/local/sbin目录下,都是cf开头的
配置文件模板被放在了/usr/local/share/cfengine目录下
接下来在/var下建立cfening文件夹,及相应的文件夹,目录结构如下

/var/cfengine/
            |-inputs         #用于放置相应的配置文件
            |-outputs        #程序执行后的输出,通常里面没内容
            |-bin            
#cfengine可执行文件放置的位置

文件夹建好后,就把cfengine的应用程序拷贝到bin文件夹下,当然做软连接也是可行的

cp /usr/local/sbin/cf* /var/cfengine/bin/

拷贝三个配置文件到inputs文件夹

cp /usr/local/share/cfengine/cfagent.conf.example /var/cfengine/cfagent.conf
cp /usr/local/share/cfengine/cfservd.conf.example /var/cfengine/cfservd.conf
cp /usr/local/share/cfengine/update.conf.example /var/cfengine/update.conf

先来说下几个应用程序的作用

cfagent 一个独立运行的程序(关键程序)
    An autonomous configuration agent (required).
cfservd cfengine的服务端
    A file server and remote activation service (optional).
cfexecd 计划任务和报告服务(可以替代crontab的东东)
    A scheduling and report service (recommended).
cfenvd
    An anomaly detection service (strongly recommended).
cfrun 远程控制的程序
    A way of activating cfagent remotely (use this as you need to).
cfshow
    A way of examining the contents of helper databases (helper).
cfenvgraph
    Ancillary tool for cfenvd (helper).
cfkey 生成key的程序,只需运行一次就可以了
    Key generation tool (run once on every host).

编辑inputs下的cfagent.conf文件内容如下

##################################################
#
# cfagent.conf
#
# This is a simple file for getting started with
# cfengine. It is harmless. If you get cfengine
# running with this file, you can build on it.
#
##################################################

###
#
# BEGIN cfagent.conf (Only hard classes in this file )
#
###

control:

   actionsequence = ( shellcommands ) #定义要执行的动作,此处是执行一个shell命令

   domain = ( test.com ) #定义域名

   timezone = ( MET ) #定义时区

######################################################################
 shellcommands: #需要执行的shell命令

      "/bin/touch /tmp/2" #在/tmp目录下建立2这个文件
######################################################################

###
#
# END cfagent.conf
#
###

动作类型包含以下几种,这里举例只使用了shellcommands

groups, control, copy, homeservers, binservers, mailserver, mountables,import, broadcast, resolve, defaultroute, directories, miscmounts,files, ignore, tidy, required, links, disable, shellcommands,strategies,editfiles, processes

保存退出后,执行/var/cfengine/bin/cfagent -v,然后可以看到如下结果

********************************************************************* Main Tree Sched: shellcommands pass 1 @ Mon Sep 22 19:33:57 2008 ********************************************************************* cfengine:linux01: Executing script /bin/touch /tmp/2...(timeout=0,uid=-1,gid=-1) (Setting umask to 77) cfengine:linux01: Finished script /bin/touch /tmp/2 Performance(Exec(/bin/touch /tmp/2)): time=0.0187 secs, av=0.0187 +/- 0.0316 ---------------------------------------------------------------------

你可以在看到/tmp下有刚刚touch好的2文件,如此一个简单的cfengine就做好了,这样如果你需要删除什么目录下的文件,或者拷贝,再或者你自己的脚本,就都可以添加到cfagent.conf文件中,然后通过crontab定义cfagent的定期执行

参考文章:

阅读(1621) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~