RHEL6 下Cfengine V3 安装测试1
Cfengine 是一種 GNU 開源配置管理框架,用于計(jì)算機(jī)系統(tǒng)自動(dòng)化。此框架是輕量的,可針對(duì)幾乎所有平臺(tái)構(gòu)建。它能運(yùn)行在所有常見平臺(tái)上,其中包括 AIX、Linux、UNIX、Apple 和 Windows。
?
cf-promises? 承諾的檢驗(yàn)者和編譯者,在試圖執(zhí)行一套配置承諾前預(yù)先檢測。
cf-agent???? 變化的發(fā)動(dòng)者,代理是Cfengine 操作系統(tǒng)資源的部分。
cf-serverd?? ? 服務(wù)器能夠共享文件并且接受在一臺(tái)個(gè)體計(jì)算機(jī)上執(zhí)行當(dāng)前策略的請(qǐng)求。它不可能從外部發(fā)送(推出)新信息給 Cfengine .
cf-execd???? 這是一個(gè)安排日程的后臺(tái)程序(它能補(bǔ)充或取代cron)。它也可以作為包裝器,執(zhí)行和收集cf-agent的輸出,并且發(fā)送郵件給有必要的系統(tǒng)用戶。
cf-runagent? 這是一個(gè)幫助者程序,它能夠?qū)υ抍f-serverd 并要求執(zhí)行cf-agent上的當(dāng)前策略。如果代理機(jī)上的策略包含了檢驗(yàn)更新,它因此模擬為一個(gè)發(fā)動(dòng)者,對(duì)cfengine? 的主機(jī)產(chǎn)生變化。
cf-report??? ? 它能得出總結(jié)和其他報(bào)告,以多種格式輸出或與其他系統(tǒng)整合。
cf-know???? ? 這個(gè)代理能夠從大量關(guān)于系統(tǒng)知識(shí)的承諾中產(chǎn)生一個(gè)ISO 標(biāo)準(zhǔn)主題圖。它可作為語義網(wǎng)顯示文檔。
Cfengine 安裝
去Cfengine官網(wǎng)下載最新的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 ?//生成一對(duì)密鑰,并且生成當(dāng)前Cfengine的工作目錄
Making a key pair for cfengine,please wait, this could take a minute...
[root@server ~]# tree /var/cfengine/?? //查看此時(shí)目錄結(jié)構(gòu)
/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的相關(guān)目錄:
?? /var/cfengine/bin --> 具有Cfengine二進(jìn)制文件的目錄
?? /var/cfengine/inputs --> 具有Cfengine配置文件的目錄
?? /var/cfengine/outputs --> 具有Cfengine運(yùn)行報(bào)告的目錄
?? /var/cfengine/ppkeys --> 具有身份驗(yàn)證密鑰的目錄
?? /var/cfmasterfiles --> 具有策略服務(wù)器上的主文件的目錄
?? /var/cfengine/repository --> 包含了重要Cfengine 文件備份以備恢復(fù)(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
二進(jìn)制文件:
?? /var/cfengine/bin/cf-promises --> 檢查承諾語法的命令
?? /var/cfengine/bin/cf-agent --> 維護(hù)共同做出的承諾及有關(guān)系統(tǒng)狀態(tài)的代理包命令
?? /var/cfengine/bin/cf-serverd --> 用來將策略或數(shù)據(jù)文件發(fā)布到客戶端并就來自cf-runagent 的請(qǐng)求進(jìn)行響應(yīng)的服務(wù)器(守護(hù)進(jìn)程)
?? /var/cfengine/bin/cf-execd --> 負(fù)責(zé)運(yùn)行cf-agent的調(diào)度守護(hù)進(jìn)程
?? /var/cfengine/bin/cf-runagent --> 在遠(yuǎn)端機(jī)器上運(yùn)行cf-agent的命令
?? /var/cfengine/bin/cf-monitord --> 負(fù)責(zé)收集有關(guān)系統(tǒng)狀態(tài)信息的守護(hù)進(jìn)程
?? /var/cfengine/bin/cf-report --> 從 Cfengine 嵌入數(shù)據(jù)庫生成摘要和其他報(bào)告的命令
?? /var/cfengine/bin/cf-know --> 從大量承諾(知識(shí)建模代理)生成一個(gè)ISO標(biāo)準(zhǔn)的 Topic Map的命令
?? /var/cfengine/bin/cf-key --> 在每個(gè)主機(jī)上運(yùn)行一次來創(chuàng)建用于安全通信的公共/私有密鑰對(duì)的密鑰生成工具
配置文件:
?? /var/cfengine/inputs/promises.cf --> cf-agent 所使用的主要配置文件
?
# /var/cfengine/bin/cf-agent --bootstrap ??//測試是否可以運(yùn)行
** 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?? //進(jìn)一步檢測cfengine的相關(guān)進(jìn)程是否開啟
12384 ???????? 00:00:00 cf-execd
12387 ???????? 00:00:00 cf-serverd
12398 ???????? 00:00:00 cf-monitord
?
簡單策略執(zhí)行測試
root用戶測試
Cfengine有一個(gè)可以使用的工作空間目錄。當(dāng)以root身份運(yùn)行,它的默認(rèn)位置在`/var/cfengine' ,而目錄~/.cfagent 是留給其他用戶使用的。
# cat test.cf ??//編輯一個(gè)策略文件
bodycommon control
{
bundlesequence=> { "test" };
}
#
bundleagent test
{
reports:?????????????? ????? #這個(gè)是承諾類型? Thisis a promise type
cfengine_3::?????????? ?????? #這個(gè)是類環(huán)境(這個(gè)承諾只能在cfengine3系統(tǒng)實(shí)行)
"Helloworld";???????? ??????? #這是一個(gè)簡單的承諾(它產(chǎn)生了一個(gè)寫有"Hello world"的報(bào)告)
}
# /var/cfengine/bin/cf-promises ?-f ?/root/test.cf
# /var/cfengine/bin/cf-agent ?-f ?/root/test.cf
R: Hello world
//這個(gè)‘R’:告訴你這是個(gè)來自于一個(gè)報(bào)告的輸出
//如果你立即重復(fù)相同的命令(/var/cfengine/bin/cf-agent?-f ?/root/test.cf),將什么也不會(huì)發(fā)生。但如果你等上1分鐘,它將會(huì)再次的工作。cfengine認(rèn)為重復(fù)指令的時(shí)間太短了而不需要再次保持承諾
# /var/cfengine/bin/cf-agent -v -f /root/test.cf? | grep lock?
//-v或者--verbose以詳細(xì)的模式列出運(yùn)行過程
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忽略鎖狀態(tài),-I選項(xiàng)是有變化就顯示
?-> Edited file /etc/motd
R: Hello world!
# cat /etc/motd
This system is managed byCFEngine 3
//如果文件中已經(jīng)有編輯的信息存在了,就不再編輯了
?
普通用戶測試
你不需要超級(jí)用戶的權(quán)限來使用cfengine。以普通用戶可以安全地測試大多數(shù)的試驗(yàn)。你應(yīng)該在準(zhǔn)備開始配置系統(tǒng)以前花一些時(shí)間來試驗(yàn)小的例子。為了這么做你應(yīng)該以常規(guī)無特權(quán)的用戶登錄到你的系統(tǒng)并開始配置:
$ /usr/local/sbin/cf-key
$ cp /usr/local/sbin/cf-* ~/.cfagent/bin
?
$ cat test.cf
body common control
{
bundlesequence=> { "test" };
}
#
bundle agent test
{
reports:???????????? #這個(gè)是承諾類型? This is a promise type
cfengine_3::???????? ? #這個(gè)是類環(huán)境(這個(gè)承諾只能在cfengine3系統(tǒng)實(shí)行)
"Helloworld";??????? #這是一個(gè)簡單的承諾(它產(chǎn)生了一個(gè)寫有"Hello world"的報(bào)告)
}
$ ~/.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不作過多介紹
轉(zhuǎn)載于:https://www.cnblogs.com/kumulinux/archive/2012/05/22/2808758.html
總結(jié)
以上是生活随笔為你收集整理的RHEL6 下Cfengine V3 安装测试1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Android] 输入系统(二)
- 下一篇: 【常用术语缩写】