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) |