使用cfengine来实现服务器的自动化配置(1)-工作环境及论论知识

之前我写了一篇nagios监控软件的文章,得到大家的关注,能够将自己的知识分享给大家确实十分高兴。这篇文 章是我最近使用的一个软件cfengine,如果说nagios主要是监控的监(监视)的话,那么cfengine则着重于控。很遗憾国内相关的文章很 少,我就自己尝试写了这篇,希望得到大家的建议。

目录

一、概述
二、工作环境

三、理论知识
(一)cfengine的程序结构及配置文件
(二)cfengine的工作方式

四、配置过程

(一)下载安装
(二) 准备工作
(三)工作方式二

1.对服务器端进行配置
2.对客户端进行配置
3.设为开机启动
4.排错:
5.新加入一台客户机

(四)工作方式一

1.配置客户机上的cfservd.conf
2.编辑服务器上的cfrun.hosts客户端列表
3.在服务器上运行cfrun
4.注意:

五、小结

正文内容:

一、概述

cfengine是一个功能强大的自动化系统管理工具.引用其官网的说法"cfengine是一种 UNIX 管理工具,其目的是使简单的管理的任务自动化,使困难的任务变得较容易。它的目标是使系统从任何状态收敛到一种理想状态。依照它的作者 Mark Burgess 所说,cfengine 总是使您的系统更接近于您所定义的配置; 它决不会使系统变得更糟。

“确实十分的拗口,也难以理解.简单的跟大家说说我的理解,很简单,就是你想你的系统应该是十分样子,你就可以使用cfengine来实现,它可以 保证你的系统总是维持你所希望的那个状态。也就是说有黑客进来了修改了某个重要的配置文件的内容或者权限,也会被cfengine自动修复!

还有一种经常遇到的情况,有少则几台多则成千上万台机器,现在需要临时的改变其一个配置,例如删掉某个帐号,停掉某个服务,一般我们只能不厌其烦的登到每一台机器上重复的完成这些动作,但是有了cfengine,一个命令就可以搞定了.是不是很诱人?

cfengine大概的功能有:

·检查和配置网络接口
·编辑系统和用户的文本文件
·维护符号链接
·检查和设置文件的权限
·删除垃圾文件
·检查重要文件和文件系统的存在
·控制用户脚本和shell命令的执行
·基于类的判定结构
·进程管理

为了节省篇幅,我这里就不一一介绍了,大家可以访问它的官方网站,里面的文档十分丰富

http://www.cfengine.org/

而且它还十分的人性化,给出了中文主页

http://www.cfengine.org/china.phtml

二、工作环境

主机名

操作系统

ip地址

centos1

centos 5

192.168.0.114

centos2

centos 5

192.168.0.115

centos3

centos 5

192.168.0.116

注:centos5 是redhat enterprise 5的重编译开源版本.功能使用与企业版几乎一样.

三、理论知识(一)cfengine的程序结构及配置文件

Cfengine是一个用于设置和维护计算机系统的工具,包含了以下几个组件:

·cfagent 自动配置代理(必须),其配置文件为cfupdate.conf和 cfagent.conf

·cfservd 文件服务和远程激活服务(推荐),其配置文件为cfservd.conf

·cfexecd 计划和报告服务(建议)

·cfenvd 异常检测服务(强烈建议)

·cfrun 远程激活cfagent的方法(需要的时候用这个),其配置文件为cfrun.hosts

·cfshow 检查有帮助的数据库的内容的方法(辅助)

·cfenvgraph 异常检测服务cfenvd的附属工具(辅助)

·cfkey 密匙生成工具(每台主机运行一次)。

在下一节分析cfengine的工作方式的时候会解释几个关键程序及其配置文件的作用

(二)cfengine的工作方式

cfengine有两种工作方式:

服务器激活方式:这是一种集中控制的方式,上图详细给出了整个流程.

1)服务器上运行cfrun,cfrun会根据cfrun.hosts中的主机列表来连接到某个客户机的cfservd程序

2)客户机上cfservd调用本机的cfagent程序

3)客户机上cfagent程序执行update.conf,连接到中央机的cfservd复制下载策略文件cafagent.conf

4)客户机下载成功后执行最新版本的策略文件,不成功就执行旧版本的.

注:update.conf的内容一般为一些非常简单的固定操作:下载策略文件,清理日志,重启服务,基本上这个文件创建好了之后就不会更改了.在下载策略文件的时候如果下载成功,会将原策略文件改名,加上.cfsaved后缀

客户端自主激活方式:相比上一种要简单一些,客户机独立执行cfagent (可以是定期执行,例如加入cron中)。样的情况下,客户机就不需要有cfservd程序了,整个流程也简化为图中的第3,4步。