由于经常学习Unix操作系统的一些知识,而且很喜欢Unix操作系统,我们今天就来和大家一起讨论下Unix cfengine的知识。如果您对自动化系统管理是认真的,那么应该了解 cfengine 工具。仅当您宁愿把时间都花在 vi 编辑器时,可以不去了解 Unix cfengine。
cfengine 是一种系统配置引擎。它获取配置脚本作为输入,然后根据这些脚本来行动。目前版本是 1.6.3(非常稳定的发行版),而且版本 2.0 也呼之欲出。有关 cfengine 开发的更多信息,请访问 cfengine 网站(请参阅本文后面的参考资料)。
不一定要用Unix cfengine提供您的所有东西,而且您不可能立刻需要所有东西。一开始时,您的 Unix cfengine 配置文件应该很简单,并且随着发现更多东西希望自动化而增长。
来自 Unix cfengine命令参考大全,这里有其最值得注意的特性:
可以监控和修改文件许可权和 ACL。例如,/etc/shadow 可以与 0400/root/sys 许可权保持一致,而且如果那些许可权发生变化,可以警告系统管理员或即刻纠正它们。
根据相应 fstab 变化,可自动安装和卸载 NFS 文件。
可以通过单一文件来管理子网掩码、DNS 配置、缺省路由和主网络接口;文件和目录可以递归复制至另一位置,要么本地复制,要么从远程服务器复制。
可以编辑(这是一个非常强大的特性,提供了正则表达式和全局查找/替换)、轮转(譬如,日志文件)或删除文件。
可以链接文件(单一的和/或目录下的所有文件或与正则表达式匹配的文件)和整个目录。
可以根据进程表中正则表达式的匹配来启动、杀死、重启进程或发送任意信号。
可以运行任意命令。
上述所有这些根据操作系统类型和修订版本、一天中的时间、任意用户定义的类、文件中文件、目录或数据的有无等等可以是有条件的。
即使用 Perl 可以做 Unix cfengine 所做的所有事情,为什么要从头开始呢?例如,如果想用另一个词替换某个词,编辑文件可以是简单的一行程序。当开始允许系统的子类型、逻辑系统部分以及所有其它杂项因素时,这一行程序会变成 300 行。为什么不在 cfengine 中做呢?它产生 100 行可读的配置代码。
根据我自己的经验,因为可以从最小配置文件开始,然后随着时间流逝逐步地向 Unix cfengine 添加一些东西,所以将 Unix cfengine 介绍给站点是很容易的。没有人喜欢突然的变化,所有系统管理员更是如此(因为如果任何事出错,他们理所当然地会受到责难)。
【编辑推荐】