科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道巧用cfengine管理linux服务器(上)

巧用cfengine管理linux服务器(上)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

cfengine(配置引擎)是一种 UNIX 管理工具,其目的是使简单的管理的任务自动化,使困难的任务变得较容易。

2008年7月8日

关键字: 文件服务器 数据库 服务器 Linux cfengine

  • 评论
  • 分享微博
  • 分享邮件

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

  基本安装

  在任何一种情况下,你都需要两个库: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运行所需的进程

  在最简单的安装中,可以通过在每台主机上手动运行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"

  3 查看类标识系统

  类是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命令查看服务占用的端口

  到此为止笔者在linux服务器安装了cfengine(配置引擎),下篇文章中笔者开始配置cfengine管理Linux服务器,敬请关注。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章