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不作過多介紹
相關文章
- RHEL6下puppet部署管理1之安裝測試
- Awstats RHEL6下安裝
- RHEL6安裝NGINXNginx
- 1. mysql的安裝與測試MySql
- Jmeter下載安裝配置---測試小白JMeter
- CentOS 下效能測試工具 wrk 安裝CentOS
- Windows下的Memcache安裝與測試教程Windows
- MicrosoftWindowsVistaSP1安裝測試手記ROSWindows
- RHEL6安裝桌面環境
- 安裝測試kafkaKafka
- memcached安裝測試
- mq安裝測試MQ
- sqlserver 安裝測試SQLServer
- windows下openldap的安裝與java操作測試WindowsLDAJava
- OGG安裝測試
- 測試安裝是否成功
- Apache下壓力測試工具ab安裝與使用Apache
- Zookeeper 在Windows下的安裝過程及測試Windows
- app的安裝與解除安裝測試點APP
- DVWA下載、安裝、使用(漏洞測試環境搭建)教程
- 三菱 MX COMPONENT下載及安裝測試
- coreseek實戰(一):windows下coreseek的安裝與測試Windows
- Centos下Sphinx中文分詞編譯安裝測試---CoreSeekCentOS中文分詞編譯
- 【MySQL】Tokudb安裝測試初探MySql
- vue測試安裝和配置Vue
- kaldi 的安裝及測試
- MHA安裝搭建和測試
- Django 測試是否安裝成功Django
- Selenium (1) —— Selenium安裝與測試(101 Tutorial)
- JMeter (1) —— JMeter與WebDriver安裝與測試(101 Tutorial)JMeterWeb
- CRF++在Windows下以及Linux下的安裝及測試方法CRFWindowsLinux
- Nginx 下SSL證書安裝/配置/測試/備份/恢復Nginx
- window7下caffe安裝與mnist資料集測試
- 效能測試 -- docker安裝influxdbDockerUX
- 【GO】MAC安裝和測試GoGoMac
- pyflink的安裝和測試
- Pig 的安裝與測試
- JDK安裝及測試檔案JDK