新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 网络学院 > 服务器 > linux服务器 > 正文:巧用cfengine管理linux服务器(下)

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

新客网 XKER.COM 2008-08-31 来源:it168 华江 收藏本文
在上一篇文章中(点击阅读),向大家介绍了在linux服务器如何安装cfengine(配置引擎),下面笔者开始配置cfengine管理Linux服务器。

 一、创建基本的配置文件

 这些配置文件需要放置在配置服务器上的主配置目录中。这些文件都是公共文件并以最初形式在网络中的每台服务器上使用。

 (1) cfservd.conf示例

 下面是cfservd守护进程的配置文件。它允许客户机传送主配置文件集合,还允许通过cfrun

 远程执行cfagent。显然,只有一个系统允许访问中心配置文件(服务器),但是,允许cfservd访问这些文件不会损害其他系统上的任何文件(因为它们不复制这些文件)。但是,所有系统都可以从远程执行cfagent中获益,因为它允许从远程系统中按需执行cfagent。因此,可以在所有系统中使用下列cfservd.conf,这正是我们所需要的功能:

 control:

 domain=(mydomain.com)

 AllowUsers=(root)

 cfrunCommand=("/var/cfagent/bin/cfagent")

 admit:

 /usr/local/var/cfengine/inputs*.mydomain.com

 /var/cfagent/bin/cfagent*.mydomain.com

 Cfrun Command设置指定在接收到来自cfrun的连接时,要执行的cfagent二进制文件的位

 置。admit段非常重要,因为它指定哪个主机访问哪个文件。您必须授予对中心配置目录和cfagent二进制文件的访问权。您还需要对客户机需要从此服务器传送的任何其他文件授予访问权。

 (2)基本update.conf

 update.conf文件必须尽可能地简单并应进行较少的更改。此文件在cfagent.conf之前由

 cfagent分析和执行。如果cfagent.conf文件已受损,则在下次客户机执行cfagent时,它们会获得新版本,因为其update.conf文件仍然有效。损坏的update.conf文件会带来麻烦,因此建议在将文件放入中心配置目录时,对任何更改都要进行彻底的测试。另外,此文件在每台主机(包括服务器)上运行。cfagent命令很巧妙,在配置服务器上运行时在本地复制文件(而非通过网络)。control段定义一些变量,然后在copy段使用。可以通过$(var)或${var}序列来完成变量替代。

 1  control:

 2   actionsequence = ( copy tidy )

 3   domain         = ( mydomain.com )

 4   workdir        = ( /var/cfengine )

 5   policyhost     = ( server.mydomain.com )

 6   master_cfinput = ( /usr/local/var/cfengine/inputs )

 7   cf_install_dir = ( /usr/local/sbin )

 8

 9  copy:

 10       $(cf_install_dir)/cfagent    dest=$(workdir)/bin/cfagent

 11                                                mode=755

 12                                                       type=checksum

 13

 14       $(cf_install_dir)/cfservd    dest=$(workdir)/bin/cfservd

 15                                    mode=755

 16                                    type=checksum

 17

 18       $(cf_install_dir)/cfexecd    dest=$(workdir)/bin/cfexecd

 19                                    mode=755

 20                                    type=checksum

 21

 22       $(master_cfinput)            dest=$(workdir)/inputs

 23                                    r=inf

 24                                    mode=644

 25                                    type=binary

 26                                    exclude=*.lst

 27                                    exclude=*~

 28                                    exclude=#*

 29                                    server=$(policyhost)

 30  tidy:

 31       $(workdir)/outputs pattern=* age=7

 注意行号是笔者添加的便于解释参数:

 第5行:字符串server.mydomain.com应替换为配置你自己服务器的主机名。

 第6行:包含主配置文件的主配置服务器目录。

 第7行:每个服务器保存cfengine二进制文件的位置。

 第11行:指定了源目录应递归复制到目标目录,递归深度无限制。

 第13行:此选项最初会令人误解。它指定任何本地文件应与主副本进行字节比较,以确定

 是否需要更新。

 第17行:此选项指出从指定的服务器中检索文件。

 第31行:位于tidy段的此命令删除outputs/目录中在最后7天尚未访问的所有文件。

 每个文件的权限(模式)在每次运行时都要进行检查,即使文件已经存在也是如此。

 (3)cfagent.conf的框架

 这是cfengine配置的实质。对系统执行的任何更改都有希望通过此文件来完成。这里的示例cfagent.conf非常简单,只用于测试。如果从cfengine调用脚本并且这些脚本生成任何输出,则输出结果将显示出来(交互式执行时),被记录或通过电子邮件发送(从cfexecd执行时)。因为通常情况下每个小时执行cfagent,所以如果出现问题或有些内容被更改且需要向管理员发送通知,则任何脚本都应产生输出。

 1. control:

 2. actionsequence=(filesdirectoriestidydisableprocesses)98

 3. domain=(mydomain.com)

 4. timezone=(EDTEST)

 5. access=(root)

 6. #Wherecfexecdsendsreports

 7. smtpserver=(mail.mydomain.com)

 8. sysadm=(root@mydomain.com)

 9. files:

 10. /etc/passwdmode=644owner=rootaction=fixall

 11. /etc/shadowmode=600owner=rootaction=fixall

 12. /etc/groupmode=644owner=rootaction=fixall

 13. directories:

 14. /tmpmode=1777owner=rootgroup=root

 15. tidy:

 16. /tmprecurse=infage=7rmdirs=sub

 17. disable:

 18. /root/.rhosts

 19. /etc/hosts.equiv

 20. processes:

 21. "cfservd"restart"/var/cfengine/bin/cfservd"

 22. "cfexecd"restart"/var/cfengine/bin/cfexecd"

 第2行:actionsequence命令非常重要,但容易忽略。必须在此变量中列出要处理的每个代码段。如果编写了一个新的代码段,但忘记将其添加到此列表中,则命令不会执行。

 第4行:cfengine将确保系统使用此列表中的一个时区进行配置。

 第10行:此代码段检查一些重要文件的所有权和权限并更正它发现的任何问题。

 第14行:此代码段检查/tmp/目录中的权限并在需要时更正这些权限。如果需要,它还创

 建目录。

 第16行:此代码段从/tmp/目录中删除过去7天中尚未访问的所有文件。还删除/tmp/的子

 目录而非此目录本身。

 第17行:出于安全原因,禁用这些文件。如果发现这些文件,则这些文件被重命名。如果

 这些文件是可执行文件,则可执行的位被取消设置。

 第20行:本段验证cfservd和cfexecd守护进程是否正在运行,如果没有运行,则启动它们。

共3页: 上一页 [1] [2] [3] 下一页
标签:cfengine   Linux服务器  
收藏】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
【重要声明】:新客网刊载此文仅为提供更多信息的目的,并不代表新客网同意文章的说法或描述,也不构成任何建议,对本文有任何异议,请在上面提出建议。
  • 阅读排行
  • 推荐阅读
  • 随机推荐