cfengine(配置引擎)是一种UNIX管理工具,其目的是使简单的管理的任务自动化,使困难的任务变得较容易。Cfengine适用于管理各种环境,从一台主机到上万台主机的机群均可使用。到2.2 版本为止,我们现在所知的用于一般性管理的最大安装机群约为两万台。
图-1 Cfengine的组成部分的关系图
基本安装
在任何一种情况下,你都需要两个库:BerkeleyDB,用于内部数据库的使用;和OpenSSL,用于加密方法。这些库都是开放资源,并且如同cfengine一样可以免费使用。没有这些库,你将无法使用cfengine,你也不能用其他的库来替代这两个库。本文使用的RHEL 5.0已经包括这些库。
#wget ftp://fr.rpmfind.net/linux/dag/redhat/el5/en/i386/dag/RPMS/cfengine-2.2.2-1.el5.rf.i386.rpm
#rpm -ivh cfengine-2.2.2-1.el5.rf.i386.rpm
接下来的一步是建立cfengine工作目录树的基本结构:
手动建立Cfengine的工作目录
# mkdir /var/cfengine
# mkdir /var/cfengine/bin
# mkdir /var/cfengine/inputs
接下来,在工作目录bin的子目录下(例如:/var/cfengine/bin)建立cfengine可执行程序的本地副本。实际运行过程中,是这些副本被执行,因此当网络在执行任务期间断掉,也不会对系统产生风险。
步骤3 复制Cfengine二进制代码到工作目录
# cp /usr/local/sbin/cfagent /var/cfengine/bin
# cp /usr/local/sbin/cfexecd /var/cfengine/bin
# cp /usr/local/sbin/cfservd /var/cfengine/bin
# chown -R root:0 /var/cfengine
# chmod -R 755 /var/cfengine
运行所需的进程
在最简单的安装中,可以通过在每台主机上手动运行cfagent来使用cfengine。但是,如果运行一个或多个守护进程,则会获益良多。
(1)cfexecd守护进程
尽管在理论上可以按需随时运行cfagent,但最好定期自动运行cfagent。这是使用cfexecd的时间;cfexecd以守护进程的方式运行并按定义、预定义的计划执行cfagent。通过将时间类添加到cfagent.conf的control块的schedule设置中对此计划进行修改。默认设置是Min00_05,这意味着cfagent将在每个小时的前5分钟运行。要每小时运行两次,例如,可以将下面的代码放入cfagent.conf的control段中:
schedule=(Min00_05Min30_35)
cfexecd守护进程没有自己的配置文件,但它不在cfagent.conf之外使用此设置。
还可以使用系统的cron守护进程定期运行cfexecd。下列条目可以添加到系统crontab(通常
为/etc/crontab)中以便每小时执行(和报告)cfagent:
0****root/usr/local/sbin/cfexecd-
F-F选项告诉cfexecd不要进入守护进程模式,因为它正由cron运行。
为获得可靠性,请以守护进程的方式运行cfexecd,还可以从cron运行(可能是每天一次)。
然后,可以在cfagent.conf中检查crontab条目并检查cfexecd守护进程是否正在运行。如果将下面的代码放入cfagent.conf中,请执行这些检查并更正任何问题:
editfiles:
{/etc/crontab
AppendIfNoSuchLine”0****root/var/cfengine/bin/cfexecd-F”
}
processes:
”cfexecd”restart”/var/cfengine/bin/cfexecd”
通过此技术,如果一种方法工作不正常,那么另一方法最后会修复它的问题。
(2)cfservd守护进程
cfservd守护进程在所有系统中并非是必需的。它需要运行cfengine文件服务器,对我们而言,它只是中心配置服务器。它还允许从其他系统远程执行cfagent。如果需要此功能,则需要在每个系统中运行cfservd。在任一情况下,都应始终进行检查,以确保它与cfagent.conf中的下列命令一起运行:
processes:
”cfservd”restart”/var/cfengine/bin/cfservd”
查看类标识系统
类似cfengine的核心。每个系统都属于一个或多个类。或者,如果换一种视角思考,许多类都是在每次cfagent运行时基于各种不同种类信息进行创建。配置文件中的每个操作都仅限于特定的类。因此,任何给定的操作都可以只在一个主机上或运行特定操作系统的多个主机上执行,也可以在每个主机上执行。要在任意给定的系统中确定定义哪些标准类,请运行下面的命令:
#cfagent -p -v如图-2 。
图2查看类标识系统
如您所见,我的系统存在相当数量的预定义类。它们可以划分为如下类别:
操作系统:linux_i686_2_6_18_8_el5xen
体系结构:linux_i686_2_6_18_8_el5xen__1_SMP
主机名:kaybee_orgkaybeeorg
IP地址:10_1_110_1_1_1ipv4_10ipv4_10_1ipv4_10_1_1ipv4_10_1_1_1
日期/时间:May Min15_20 Min19 Q2 Tuesday Yr2008
可以以此使用ps -ef|grep cf命令和netstat -anlp|grep cfservd查看进程运行情况的服务占用的端口情况如图 3、4
图3使用ps -ef|grep cf命令查看服务进程
使用netstat -anlp|grep cfservd命令查看服务占用的端口
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
最值得考虑的Linux自动化工具:CFEngine
CFEngine作为一个Linux自动化工具,可自动化大量的配置,并且保持配置的一致性和依从性。
-
盘点:常用的开源系统管理工具(七)
在开源领域,Cfengine和Puppet是数据中心自动化和配置工具的领头羊,1993年,Mark Burgess在奥斯陆大学编写了Cfengine,它可以用来生成,部署,管理……