巧用cfengine管理linux服務(wù)器 |
發(fā)布時(shí)間: 2012/8/13 11:08:43 |
cfengine(配置引擎)是一種UNIX管理工具,其目的是使簡(jiǎn)單的管理的任務(wù)自動(dòng)化,使困難的任務(wù)變得較容易。Cfengine適用于管理各種環(huán)境,從一臺(tái)主機(jī)到上萬(wàn)臺(tái)主機(jī)的機(jī)群均可使用。到2.2版本為止,我們現(xiàn)在所知的用于一般性管理的最大安裝機(jī)群約為20,000臺(tái)。
圖-1是Cfengine的組成部分的關(guān)系圖。
圖-1Cfengine的組成部分的關(guān)系圖 基本安裝 在任何一種情況下,你都需要兩個(gè)庫(kù):BerkeleyDB,用于內(nèi)部數(shù)據(jù)庫(kù)的使用;和OpenSSL,用于加密方法。這些庫(kù)都是開(kāi)放資源,并且如同cfengine一樣可以免費(fèi)使用。沒(méi)有這些庫(kù),你將無(wú)法使用cfengine,你也不能用其他的庫(kù)來(lái)替代這兩個(gè)庫(kù)。本文使用的RHEL5.0已經(jīng)包括這些庫(kù)。 #wgetftp://fr.rpmfind.net/linux/dag/redhat/el5/en/i386/dag/RPMS/cfengine-2.2.2-1.el5.rf.i386.rpm #rpm-ivhcfengine-2.2.2-1.el5.rf.i386.rpm 接下來(lái)的一步是建立cfengine工作目錄樹(shù)的基本結(jié)構(gòu): 手動(dòng)建立Cfengine的工作目錄 #mkdir/var/cfengine #mkdir/var/cfengine/bin #mkdir/var/cfengine/inputs 接下來(lái),在工作目錄bin的子目錄下(例如:/var/cfengine/bin)建立cfengine可執(zhí)行程序的本地副本。實(shí)際運(yùn)行過(guò)程中,是這些副本被執(zhí)行,因此當(dāng)網(wǎng)絡(luò)在執(zhí)行任務(wù)期間斷掉,也不會(huì)對(duì)系統(tǒng)產(chǎn)生風(fēng)險(xiǎn)。 步驟3復(fù)制Cfengine二進(jìn)制代碼到工作目錄 #cp/usr/local/sbin/cfagent/var/cfengine/bin #cp/usr/local/sbin/cfexecd/var/cfengine/bin #cp/usr/local/sbin/cfservd/var/cfengine/bin #chown-Rroot:0/var/cfengine #chmod-R755/var/cfengine
在最簡(jiǎn)單的安裝中,可以通過(guò)在每臺(tái)主機(jī)上手動(dòng)運(yùn)行cfagent來(lái)使用cfengine。但是,如果運(yùn)行一個(gè)或多個(gè)守護(hù)進(jìn)程,則會(huì)獲益良多。 (1)cfexecd守護(hù)進(jìn)程 盡管在理論上可以按需隨時(shí)運(yùn)行cfagent,但最好定期自動(dòng)運(yùn)行cfagent。這是使用cfexecd 的時(shí)間;cfexecd以守護(hù)進(jìn)程的方式運(yùn)行并按定義、預(yù)定義的計(jì)劃執(zhí)行cfagent。通過(guò)將時(shí)間類添加到cfagent.conf的control塊的schedule設(shè)置中對(duì)此計(jì)劃進(jìn)行修改。默認(rèn)設(shè)置是Min00_05,這意味著cfagent將在每個(gè)小時(shí)的前5分鐘運(yùn)行。要每小時(shí)運(yùn)行兩次,例如,可以將下面的代碼放入cfagent.conf的control段中: schedule=(Min00_05Min30_35) cfexecd守護(hù)進(jìn)程沒(méi)有自己的配置文件,但它不在cfagent.conf之外使用此設(shè)置。 還可以使用系統(tǒng)的cron守護(hù)進(jìn)程定期運(yùn)行cfexecd。下列條目可以添加到系統(tǒng)crontab(通常 為/etc/crontab)中以便每小時(shí)執(zhí)行(和報(bào)告)cfagent: 0****root/usr/local/sbin/cfexecd- F-F選項(xiàng)告訴cfexecd不要進(jìn)入守護(hù)進(jìn)程模式,因?yàn)樗蒫ron運(yùn)行。 為獲得可靠性,請(qǐng)以守護(hù)進(jìn)程的方式運(yùn)行cfexecd,還可以從cron運(yùn)行(可能是每天一次)。 然后,可以在cfagent.conf中檢查crontab條目并檢查cfexecd守護(hù)進(jìn)程是否正在運(yùn)行。如果將下面的代碼放入cfagent.conf中,請(qǐng)執(zhí)行這些檢查并更正任何問(wèn)題: editfiles: {/etc/crontab AppendIfNoSuchLine"0****root/var/cfengine/bin/cfexecd-F" } processes: "cfexecd"restart"/var/cfengine/bin/cfexecd" 通過(guò)此技術(shù),如果一種方法工作不正常,那么另一方法最后會(huì)修復(fù)它的問(wèn)題。 (2)cfservd守護(hù)進(jìn)程 cfservd守護(hù)進(jìn)程在所有系統(tǒng)中并非是必需的。它需要運(yùn)行cfengine文件服務(wù)器,對(duì)我們而言,它只是中心配置服務(wù)器。它還允許從其他系統(tǒng)遠(yuǎn)程執(zhí)行cfagent。如果需要此功能,則需要在每個(gè)系統(tǒng)中運(yùn)行cfservd。在任一情況下,都應(yīng)始終進(jìn)行檢查,以確保它與cfagent.conf中的下列命令一起運(yùn)行: processes: "cfservd"restart"/var/cfengine/bin/cfservd" 3查看類標(biāo)識(shí)系統(tǒng) 類是cfengine的核心。每個(gè)系統(tǒng)都屬于一個(gè)或多個(gè)類;蛘撸绻麚Q一種視角思考,許多類都是在每次cfagent運(yùn)行時(shí)基于各種不同種類信息進(jìn)行創(chuàng)建。配置文件中的每個(gè)操作都僅限于特定的類。因此,任何給定的操作都可以只在一個(gè)主機(jī)上或運(yùn)行特定操作系統(tǒng)的多個(gè)主機(jī)上執(zhí)行,也可以在每個(gè)主機(jī)上執(zhí)行。要在任意給定的系統(tǒng)中確定定義哪些標(biāo)準(zhǔn)類,請(qǐng)運(yùn)行下面的命令: #cfagent-p-v如圖-2。
如您所見(jiàn),我的系統(tǒng)存在相當(dāng)數(shù)量的預(yù)定義類。它們可以劃分為如下類別: 操作系統(tǒng):linux_i686_2_6_18_8_el5xen 體系結(jié)構(gòu):linux_i686_2_6_18_8_el5xen__1_SMP 主機(jī)名:kaybee_orgkaybeeorg IP地址:10_1_110_1_1_1ipv4_10ipv4_10_1ipv4_10_1_1ipv4_10_1_1_1 日期/時(shí)間:MayMin15_20Min19Q2TuesdayYr2008 可以以此使用ps-ef|grepcf命令和netstat-anlp|grepcfservd查看進(jìn)程運(yùn)行情況的服務(wù)占用的端口情況如圖3、4
圖3使用ps-ef|grepcf命令查看服務(wù)進(jìn)程
到此為止筆者在linux服務(wù)器安裝了cfengine(配置引擎),下篇文章中筆者開(kāi)始配置cfengine管理Linux服務(wù)器,敬請(qǐng)關(guān)注。 在前面,向大家介紹了在linux服務(wù)器如何安裝cfengine(配置引擎),下面筆者開(kāi)始配置cfengine管理Linux服務(wù)器。 一、創(chuàng)建基本的配置文件 這些配置文件需要放置在配置服務(wù)器上的主配置目錄中。這些文件都是公共文件并以最初形式在網(wǎng)絡(luò)中的每臺(tái)服務(wù)器上使用。 (1)cfservd.conf示例 下面是cfservd守護(hù)進(jìn)程的配置文件。它允許客戶機(jī)傳送主配置文件集合,還允許通過(guò)cfrun 遠(yuǎn)程執(zhí)行cfagent。顯然,只有一個(gè)系統(tǒng)允許訪問(wèn)中心配置文件(服務(wù)器),但是,允許cfservd訪問(wèn)這些文件不會(huì)損害其他系統(tǒng)上的任何文件(因?yàn)樗鼈儾粡?fù)制這些文件)。但是,所有系統(tǒng)都可以從遠(yuǎn)程執(zhí)行cfagent中獲益,因?yàn)樗试S從遠(yuǎn)程系統(tǒng)中按需執(zhí)行cfagent。因此,可以在所有系統(tǒng)中使用下列cfservd.conf,這正是我們所需要的功能: 本文出自:億恩科技【prubsntakaful.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |