RHEL6 下Cfengine V3 安装测试1

Cfengine 是一种 GNU 开源配置管理框架,用于计算机系统自动化。此框架是轻量的,可针对几乎所有平台构建。它能运行在所有常见平台上,其中包括 AIX、Linux、UNIX、Apple 和 Windows。

 

cf-promises  承诺的检验者和编译者,在试图执行一套配置承诺前预先检测。

cf-agent     变化的发动者,代理是Cfengine 操作系统资源的部分。

cf-serverd     服务器能够共享文件并且接受在一台个体计算机上执行当前策略的请求。它不可能从外部发送(推出)新信息给 Cfengine .

cf-execd     这是一个安排日程的后台程序(它能补充或取代cron)。它也可以作为包装器,执行和收集cf-agent的输出,并且发送邮件给有必要的系统用户。

cf-runagent  这是一个帮助者程序,它能够对话cf-serverd 并要求执行cf-agent上的当前策略。如果代理机上的策略包含了检验更新,它因此模拟为一个发动者,对cfengine  的主机产生变化。

cf-report      它能得出总结和其他报告,以多种格式输出或与其他系统整合。

cf-know       这个代理能够从大量关于系统知识的承诺中产生一个ISO 标准主题图。它可作为语义网显示文档。

Cfengine 安装

去Cfengine官网下载最新的Cfengine软件,https://cfengine.com/downloads  最新版本是V3.3

# ls

cfengine-3.2.4.tar.gz

cfengine-community-3.3.0-1.i386.rpm

cfengine-community-3.3.0-1.x86_64.rpm

源码安装

安装cfengine前需要一下安装一下三种软件:

Ø  Openssl (openssl openssl-devel)

Ø  BerkeleyDB(db4、db4-devel)

Ø  pcre(pcre pcre-devel)

为安装简便,以上3种软件直接使用yum安装即可

# yum install openssl* pcre* db4* -y

 

安装Cfengine

# tar xf /cfengine-3.2.4.tar.gz -C /usr/src/

# cd /usr/src/cfengine-3.2.4/

# ./configure

# make && make install

 

# /usr/local/sbin/cf-key  //生成一对密钥,并且生成当前Cfengine的工作目录

Making a key pair for cfengine,please wait, this could take a minute...

[root@server ~]# tree /var/cfengine/   //查看此时目录结构

/var/cfengine/

├── bin

├── inputs

├── lastseen

├── modules

├── outputs

├── ppkeys

│   ├── localhost.priv

│   └── localhost.pub

├── randseed

├── reports

└── state

    ├── cf_otherprocs

    ├── cf_procs

    ├── cf_rootprocs

    └── cf_state.db

 

8 directories, 7 files

 

Cfengine的相关目录:

Ø  /var/cfengine/bin --> 具有Cfengine二进制文件的目录

Ø  /var/cfengine/inputs --> 具有Cfengine配置文件的目录

Ø  /var/cfengine/outputs --> 具有Cfengine运行报告的目录

Ø  /var/cfengine/ppkeys --> 具有身份验证密钥的目录

Ø  /var/cfmasterfiles --> 具有策略服务器上的主文件的目录

Ø  /var/cfengine/repository --> 包含了重要Cfengine 文件备份以备恢复(name/location 可配置)的目录

 

# mkdir -p /var/cfengine/masterfiles

# cp /usr/local/sbin/cf-* /var/cfengine/bin/  //拷贝命令文件到/var/cfengine/bin/下

# cp /usr/local/share/cfengine/masterfiles/*.cf/var/cfengine/masterfiles/

# tree /var/cfengine/bin/

/var/cfengine/bin/

├── cf-agent

├── cf-execd

├── cf-key

├── cf-know

├── cf-monitord

├── cf-promises

├── cf-report

├── cf-runagent

└── cf-serverd

 

0 directories, 9 files

二进制文件:

Ø  /var/cfengine/bin/cf-promises --> 检查承诺语法的命令

Ø  /var/cfengine/bin/cf-agent --> 维护共同做出的承诺及有关系统状态的代理包命令

Ø  /var/cfengine/bin/cf-serverd --> 用来将策略或数据文件发布到客户端并就来自cf-runagent 的请求进行响应的服务器(守护进程)

Ø  /var/cfengine/bin/cf-execd --> 负责运行cf-agent的调度守护进程

Ø  /var/cfengine/bin/cf-runagent --> 在远端机器上运行cf-agent的命令

Ø  /var/cfengine/bin/cf-monitord --> 负责收集有关系统状态信息的守护进程

Ø  /var/cfengine/bin/cf-report --> 从 Cfengine 嵌入数据库生成摘要和其他报告的命令

Ø  /var/cfengine/bin/cf-know --> 从大量承诺(知识建模代理)生成一个ISO标准的 Topic Map的命令

Ø  /var/cfengine/bin/cf-key --> 在每个主机上运行一次来创建用于安全通信的公共/私有密钥对的密钥生成工具

配置文件:

Ø  /var/cfengine/inputs/promises.cf --> cf-agent 所使用的主要配置文件

 

# /var/cfengine/bin/cf-agent --bootstrap   //测试是否可以运行

** CFEngine BOOTSTRAP probe initiated

 

   @@@     

   @@@     CFEngine

           

 @ @@@ @   CFEngine Core 3.2.4

 @ @@@ @   

 @ @@@ @   

 @    @   

   @@@     

   @ @     

   @ @     

   @ @     

 

Copyright (C) CFEngine AS2008-2012

See Licensing athttp://cfengine.com/3rdpartylicenses

 

 -> This host is: server.sxkj.com

 -> Operating System Type is linux

 -> Operating System Release is2.6.32-131.0.15.el6.i686

 -> Architecture = i686

 -> Internal soft-class is linux

 -> An existing policy was cached on thishost in /var/cfengine/inputs

 -> Assuming the policy distribution pointat: 10.1.1.187:/var/cfengine/masterfiles

 -> Attempting to initiate promisedautonomous services...

 

 ** This host recognizes itself as a CFEnginePolicy Hub, with policy distribution and knowledge base.

 -> The system is now converging. Fullinitialisation and self-analysis could take up to 30 minutes

 

-> Bootstrapto 10.1.1.187 completed successfully

# ps -e | grep cf   //进一步检测cfengine的相关进程是否开启

12384 ?        00:00:00 cf-execd

12387 ?        00:00:00 cf-serverd

12398 ?        00:00:00 cf-monitord

 

简单策略执行测试

root用户测试

Cfengine有一个可以使用的工作空间目录。当以root身份运行,它的默认位置在`/var/cfengine' ,而目录~/.cfagent 是留给其他用户使用的。

# cat test.cf   //编辑一个策略文件

bodycommon control

{

bundlesequence=> { "test" };

}

#

bundleagent test

{

reports:                     #这个是承诺类型  Thisis a promise type

cfengine_3::                  #这个是类环境(这个承诺只能在cfengine3系统实行)

"Helloworld";                 #这是一个简单的承诺(它产生了一个写有"Hello world"的报告)

}

# /var/cfengine/bin/cf-promises  -f  /root/test.cf

# /var/cfengine/bin/cf-agent  -f  /root/test.cf

R: Hello world

//这个‘R’:告诉你这是个来自于一个报告的输出

//如果你立即重复相同的命令(/var/cfengine/bin/cf-agent -f  /root/test.cf),将什么也不会发生。但如果你等上1分钟,它将会再次的工作。cfengine认为重复指令的时间太短了而不需要再次保持承诺

# /var/cfengine/bin/cf-agent -v -f /root/test.cf  | grep lock 

//-v或者--verbose以详细的模式列出运行过程

cf3> Making sure that locksare private...

cf3>  XX Nothing promised here [lock.test.reports.-server.Hello_world_10] (0/1 minuteselapsed)

cf3>  -> No lock purging scheduled

#

 

# cat /root/test1.cf

bodycommon control

{

         bundlesequence => {"edit_motd" };

}

 

bundleagent edit_motd

{

vars:  

      "motd" string =>"/etc/motd";

files:  

"$(motd)"

create=> "true",

edit_line=> addmessage;

reports:

cfengine::

         "Hello world!";

}

 

bundleedit_line addmessage

{

insert_lines:

         "This system is managed byCFEngine 3";

}

# /var/cfengine/bin/cf-agent -KI -f ~/test1.cf   //-K忽略锁状态,-I选项是有变化就显示

 -> Edited file /etc/motd

R: Hello world!

# cat /etc/motd

This system is managed byCFEngine 3

//如果文件中已经有编辑的信息存在了,就不再编辑了

 

普通用户测试

你不需要超级用户的权限来使用cfengine。以普通用户可以安全地测试大多数的试验。你应该在准备开始配置系统以前花一些时间来试验小的例子。为了这么做你应该以常规无特权的用户登录到你的系统并开始配置:

$ /usr/local/sbin/cf-key

$ cp /usr/local/sbin/cf-* ~/.cfagent/bin

 

$ cat test.cf

body common control

{

bundlesequence=> { "test" };

}

#

bundle agent test

{

reports:             #这个是承诺类型  This is a promise type

cfengine_3::           #这个是类环境(这个承诺只能在cfengine3系统实行)

"Helloworld";        #这是一个简单的承诺(它产生了一个写有"Hello world"的报告)

}

$ ~/.cfagent/bin/cf-promises  -f  ~/test.cf

$ ~/.cfagent/bin/cf-agent  -f  ~/test.cf

R: Hello world

 

rpm安装

这里以32位的rpm软件作为安装示例

# rpm -ivh cfengine-community-3.3.0-1.i386.rpm

Preparing...               ########################################### [100%]

  1:cfengine-community     warning:user build does not exist - using root

warning: group build does notexist - using root

warning: user build does notexist - using root

warning: group build does notexist - using root

###########################################[100%]

#

本文档主要介绍Cfengine的源码安装配置,rpm不作过多介绍

转载于:https://www.cnblogs.com/kumulinux/archive/2012/05/22/2808758.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下grpc安装编译,linux下安装grpc插件 (c++和go语言)

在debian/ubuntu系统下,需要做如下准备操作:$ [sudo] apt-getinstallbuild-essential autoconf libtoolpkg-config如果你想要从源码编译并且运行测试,同时运行下面的安装:$ [sudo] apt-getinstalllibgflags-dev libgtest-dev$ [su…

SIP资料汇总

SIP协议 SIP协议过程概念及分析 SIP入门开发之路(含SIP开发需要学习的资源及网址) SIP揭密(中文版) 使用Java的SIP Servlet进行SIP开发 Asterisk: Asterisk安装及测试 Asterisk十问十答 Asterisk入门教程 Asterisk介绍-Asterisk RealTime SIP asterisk配…

Nand Flash Yaffs系统大量写入数据失败问题的解决方法。

一个朋友的问题,我们共同分析后搞定。其实以前也遇到过同样问题,时间长了,没总结。 事发:在Nand Flash上使用2.6.14的linux kernel,三星2440的板子,连续写入文件,到一定大小限制就删除&#xff…

linux上的壁纸软件下载,Ubuntu 17.10上安装开源壁纸工具Wallch 4.0

在Ubuntu 17.04上安装WallchWallch是一款免费的开源通用壁纸更换器,用户可以在设置的时间更改桌面背景图片。它会在桌面上更改并显示随机图片或维基百科的当天图片。它还具有一个实时地球Living Earth壁纸,每30分钟更换桌面背景,以显示阳光和…

Asp.NET 获取网站根目录

http://www.cnblogs.com/Leo_wl/archive/2010/06/12/1757148.html转载于:https://www.cnblogs.com/imihiroblog/archive/2012/05/23/2514649.html

小议同步IO :fsync与fdatasync

对于提供事务支持的数据库,在事务提交时,都要确保事务日志(包含该事务所有的修改操作以及一个提交记录)完全写到硬盘上,才认定事务提交成功并返回给应用层。 一个简单的问题:在*nix操作系统上,怎…

linux c++ queue 多线程,C++多线程,消息队列用法

进程是没有活力的,它只是一个静态的概念。为了让进程完成一些工作,进程必须至少占有一个线程,所以线程是描述进程内的执行,正是线程负责执行包含在进程的地址空间中的代码。实际上,单个进程可以包含几个线程&#xff0…

获取磁盘类型

1. GetLogicalDriveStrings获取所以的分区字符串 2. GetDriveType("C:\\"); 对每个分区字符串分别调用GetDriveType获得分区所在磁盘的磁盘类型。 0 DRIVE_UNKNOWN未知的磁盘类型   1 DRIVE_NO_ROOT_DIR说明lpRootPathName是无效的   2 DRIVE_REM…

css3 (2)

Php1情景模拟:如果是在C盘,遇到熊猫,数据丢失。我们要重装系统,格C盘。我们要更改对应的访问的目录。需要改apache下面的配置文件Appserv 是集成环境包,里面也是apache服务器在运行网页请求。Apache目录下面有一个conf…

linux find显示文件的基本信息,命令find搜索文件,命令stat查看文件的详细信息

命令stat命令语法stat(选项)(参数)命令描述命令stat用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。命令选项-L:支持符号连接;-f:显示文件系统状态而非文件状态;-t:以简洁方式输出信息&#…

C# String.Format格式说明

C#格式化数值结果表 字符 说明 示例 输出 C货币string.Format("{0:C3}", 2)$2.000D十进制string.Format("{0:D3}", 2)002E科学计数法1.20E0011.20E001G常规string.Format("{0:G}", 2)2N用分号隔开的数字string.Format("{0:N}…

Linux添加网站后无法显示,Linux:SElinux导致网站无法访问

通过更改SElinux状态可以判断出,当SElinux处于关闭状态时,网站内容访问正常。[rootmaster1-192-168-117-18 ~]# setenforce 0[rootmaster1-192-168-117-18 ~]# getenforcePermissive[rootmaster1-192-168-117-18 ~]# setenforce 1[rootmaster1-192-168-1…

Linux rpm 命令参数使用详解[介绍和应用]

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代…

VS快捷键和小功能

转自:http://www.cnblogs.com/wangshenhe/archive/2012/05/28/2521393.html备份一个 VS隐藏的快捷键和小功能 可将代码放入工具箱,类似控件使用。CtrlShiftV:剪贴板循环粘贴。CtrlT:变换一个字符,即将字符后移。CtrlShiftT:变换一个词&#x…

linux 分区 文件,Linux的分区与文件结构

Linux操作系统与我们经常使用的windows操作系统有所不同,Linux主机上的设备以及系统的分区都以文件的形式存在着。接下来就将Linux系统中设备以及分区的标识方法以及目录结构做以详细介绍。在Linux系统中主要以接口类型来区分不同的存储设备:IDE接口用hd来表示&…

CentOS卸载OpenJDK并安装Sun JDK

第一步:查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4) 安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息: java version "1.6.0" OpenJDK Runtime Environment (build 1.6.0-b09…

AndroidManifest.xml文件详解(uses-sdk)

语法&#xff08;SYNTAX&#xff09;&#xff1a; <uses-sdkandroid:minSdkVersion"integer" android:targetSdkVersion"integer" android:maxSdkVersion"integer"/> 被包含于&#xff08;CONTAINED IN&#xff09;&a…

xps13 linux 硬盘分区,在xps13上安装ubuntu16.04教程

在windows界面下&#xff0c;通过磁盘管理器&#xff0c;从硬盘中分出40G的空闲空间。重启电脑&#xff0c;进入BIOS&#xff0c;将启动模式修改为ACHI(如果想系统安装成功后可以直接使用无线wifi&#xff0c;请将security boot关闭&#xff1b;否则&#xff0c;默认只能使用有…

Ubuntu10.10的网络配置

有一阵子着实对Ubuntu的网络配置很迷惑&#xff0c;耐下心来仔细上网找了找&#xff0c;有点小心得&#xff0c;总结一下。 先说下大概的配置过程&#xff0c;再去细究一些情况。 一、配置大概分三类&#xff1a;通过配置文件配置、通过命令配置、通过图形化的网络连接菜单配置…

sp_executesql介绍和使用 转

转自http://www.cnblogs.com/wanyuan8/archive/2011/11/09/2243483.htmlexecute相信大家都用的用熟了&#xff0c;简写为exec,除了用来执行存储过程&#xff0c;一般都用来执行动态Sql sp_executesql&#xff0c;sql2005中引入的新的系统存储过程&#xff0c;也是用来处理动态s…