巧用cfengine管理linux服务器

日期: 2008-06-29 作者:华江 来源:TechTarget中国

  cfengine(配置引擎)是一种UNIX管理工具,其目的是使简单的管理的任务自动化,使困难的任务变得较容易。Cfengine适用于管理各种环境,从一台主机到上万台主机的机群均可使用。到2.2 版本为止,我们现在所知的用于一般性管理的最大安装机群约为两万台。


Cfengine配置引擎


  图-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/cf&#101xecd /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)cf&#101xecd守护进程


  尽管在理论上可以按需随时运行cfagent,但最好定期自动运行cfagent。这是使用cf&#101xecd的时间;cf&#101xecd以守护进程的方式运行并按定义、预定义的计划执行cfagent。通过将时间类添加到cfagent.conf的control块的schedule设置中对此计划进行修改。默认设置是Min00_05,这意味着cfagent将在每个小时的前5分钟运行。要每小时运行两次,例如,可以将下面的代码放入cfagent.conf的control段中:


  schedule=(Min00_05Min30_35)


  cf&#101xecd守护进程没有自己的配置文件,但它不在cfagent.conf之外使用此设置。


  还可以使用系统的cron守护进程定期运行cf&#101xecd。下列条目可以添加到系统crontab(通常


  为/etc/crontab)中以便每小时执行(和报告)cfagent:


  0****root/usr/local/sbin/cf&#101xecd-


  F-F选项告诉cf&#101xecd不要进入守护进程模式,因为它正由cron运行。


  为获得可靠性,请以守护进程的方式运行cf&#101xecd,还可以从cron运行(可能是每天一次)。


  然后,可以在cfagent.conf中检查crontab条目并检查cf&#101xecd守护进程是否正在运行。如果将下面的代码放入cfagent.conf中,请执行这些检查并更正任何问题:


  editfiles:


  {/etc/crontab


  AppendIfNoSuchLine”0****root/var/cfengine/bin/cf&#101xecd-F”


  }


  processes:


  ”cf&#101xecd”restart”/var/cfengine/bin/cf&#101xecd”


  通过此技术,如果一种方法工作不正常,那么另一方法最后会修复它的问题。


  (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

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

华江
华江

相关推荐