版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在日常系统管理工作中,管理上千台服务器,需要临时的改变其一个配置,例如删掉某个帐号停掉某个服务 一般我们只能不厌其烦的登到每一台机器上重复的完成这些动作,或者写脚本循环登录及其执行操作 如果有了cfengine,一个命令就可以搞定了.是不是很看效率,请看如下实践之体会.以下的所提到的cfengine是2.2版本的.1. cfengine 概述cfengine是一个功能强大的自动化系统管理工具.引用其官网的说法cfengine是一种 UNIX 管理工具,其目的是使简单的管理的任务自动化,使困难的任务变得较容易.它的目标是使系统从任何状态收敛到一种理想状态.使用cfengine,它可以保证你的系统
2、总是维持你所希望的那个状态. 如果说有黑客进来了修改了某个重要的配置文件的内容或者权限,也会被cfengine自动修复!1.1. cffenginne 功能概概述检查和配置网络络接口编辑系统和用户户的文本文件件维护符号链接检查和设置文件件的权限删除垃圾文件检查重要文件和和文件系统的的存在控制用户脚本和和shelll命令的执行行基于类的判定结结构进程管理其他细细节功能,大大家可以访问问它的官方网网站,里面的的文档十分丰丰富 HYPERLINK / htttp:/www.ccfengiine.orrg/1.2. 使用用cfenggine的益益处当你切换使用ccfengiine来管理理系统配置时时,
3、你可以得得到以下好处处:可以保证所有被被管理服务器器使用统一标标准化的系统统配置可以针对不同的的系统进行配配置的变更(如linuux,freeebsd.)可以记录系统变变更,如果需需要还可以在在执行一次,将系统保持持在正确的状状态1.3. cffenginne 组件说说明Cfenginne是一个用用于设置和维维护计算机系系统的工具,包包含了以下几几个组件:cfagentt 自动配置代理,其配置文件件为updaate.coonf 和 cfageent.coonfcfservdd文件服务和远程程激活服务,其配置文件件为cfseervd.cconfcfexecdd 计划执行 cffagentt 命令
4、cfenvd 异常检测服务cfrun 远程通过cfsservd调调用cfaggent的方方法,其配置置文件为cffrun.hhostscfshow 检查有帮助的数数据库的内容容的方法(辅辅助)cfenvgrraph 异常检测服务ccfenvdd的附属工具具(辅助)cfkeyy 密匙生成工具具(每台服务务器运行一次次)。1.4. cffenginne 配置文文件每个系统必须要要有最少的配配置文件.默默认情况下,你需要将配配置文件放到到/var/cfenggine/iinputss 目录中.可以集中化化管理配置文文件,通过拉拉的方式更新新到所有客户户端系统update.conf此配置文件要保保持简
5、单,ccfengiine每次更更新,它总是是被首先解析析和执行,此此配置的主要要任务就是从从服务端拷贝贝一组配置文文件. 如果果其他配置文文件有误,此此配置文件也也能够继续更更新配置文件件,在下次运运行的时,就就可以运行成成功. 对大大部分网站来来说,这个文文件在cfeenginee系统初初始运运行后,不需需要去变变更更的.cfagentt.conff此配置文件是ccfengiine的核心心文件,它包包含了所有功功能操作配置置.可以使用用文件导入功功能(impport功能能),使配置置文件易读,参考上图cfservdd.conff此配置文件是 cfserrvd 守护护进程的配置置文件.文件件定
6、义了那些些主机可以远远程执行cffagentt和那些主机机可以传输特特定的文件.cfenginne使用到配配置文件,我我们需要集中中化版本控制制(比如Suubverssion).这样就可以以记录所有变变更,以便在在需要时,可可以会滚到某某个特定的版版本配置.2. 使用Cllassess(与grooup相同)标识系统cfenginne中最重要要的概念就是是Classses. 每每种系统都属属于一个或者者多个 cllassess. cfaagent每每次运行的时时,会根据很很多各种不同同信息来定义义classses.可以以在特定的cclassees执行特定定的操作. 因此,任何何操作都可以以在一台
7、主机机上执行,也也可以在运行行特定操作系系统的主机上上运行,也可可以在所有的的主机上运行行. Cfeenginee 使用内置置的和用户定定义的claasses.2.1. 预定定义Classses的分分类主机本生根据其其架构决定很很多classses 比比如主机名称称,主机ipp,操作系统统等. 很多多classses 根据据当前的日期期和时间定义义的.为了确定在给定定系统上定义义了那些标准准classses,可以以运行如下命命令: roottlinuux# /var/cfenggine/bbin/cffagentt -p -v | ggrep DDefineed Defiined CClass
8、ees = ( 172_22_5 172_222_5_990 1722_22_55_91 664_bitt Day117 Hr111 Hr111_Q1 Marchh Min110_15 Min111 Q1 RRedhatt_AS5 Wedneesday Yr20110 adddr_ aliddc_nett alidcc_net_hzidcc_com any ccfengiine_011 cfenngine_01_hsst_xyii_cn_aalidc_net ccfengiine_011_hst_xyi_ccn_aliidc_neet_hziidc_coom cfeenginee_2 cfen
9、ggine_22_2 cffenginne_2_22_3 cffenginne_serrver cn_allidc_nnet cn_allidc_nnet_hzzidc_ccom coom commpiledd_on_llinux_gnu ffe80_216_33eff_ffe16_555b hst_xxyi_cnn_aliddc_nett hst_xxyi_cnn_aliddc_nett_hziddc_commhzidcc_com ipv4_172 iipv4_1172_222 ipv44_172_22_5 ipv4_172_222_5_990 ipvv4_1722_22_55_91 lli
10、nux linuux_2_66_18_1131_ell5_cusstomxeen linnux_x886_64 linuxx_x86_64_2_6_18_131_eel5_cuustomxxen linuxx_x86_64_2_6_18_131_eel5_cuustomxxen_11_SMP_Tue_SSep_155_15_446_11_CST_22009 llsb_coompliaant neet nett_hziddc_comm nett_ifacce_bonnd0 neet_ifaace_loo redhaat redhaat_s rredhatt_s_5 redhaat_s_55_3
11、reedhateenterpprisesserverr redhhatentterpriiseserrver_55 reedhateenterpprisesserverr_5_3 redhaatenteerprisseservver_tiikangaa x86_64 xyyi_cn_alidcc_net xyi_ccn_aliidc_neet_hziidc_coom )正如你所看到的的,这个系统统中包含了很很多预定义cclassees,他们属属于几个分类类:Operatiing Syystem: redhaat redhaat_s rredhatt_s_5 redhaat_s_55_3 ree
12、dhateenterpprisesserverr redhhatentterpriiseserrver_55 redhhatentterpriiseserrver_55_3Kernel: linuxx linuux_2_66_18_1131_ell5_cusstomxeen linnux_x886_64 linuxx_x86_64_2_6_18_131_eel5_cuustomxxenArchiteecturee: 64_bit llinux_x86_664 x866_64Hostnamme: cffenginne_01 cfenggine_001_hstt_xyi_cn_allidc_nne
13、t cffenginne_01_hst_xxyi_cnn_aliddc_nett_hziddc_commIP Addrress: 172_222_5 1172_222_5_900 172_22_5_91 ippv4_1772 ipvv4_1722_22 iipv4_1172_222_5 ippv4_1772_22_5_90 ipv4_172_222_5_991Date/Tiime: DDay17 Hr11 Hr11_Q1 Maarch MMin10_15 Miin11 QQ1每个系统都属于于 any 这个个 classs,当你需需要对 未定定义或者不能能使用claasses标标识的系统进进行操
14、作时候候,可以使用用 any 这个个 classs.2.2. 自定定义Classses自定义classses 配配置都是在ccfagennt.connf 中的grooups区域域中,请看如如下例子: groupps: wweb_appp1 = ( IPRRange(1-250) IPRaange(1-250) IPRannge(17-2250) ) webb_app11 = ( IPRannge(17-2250) IIPRangge(17-2550) IPPRangee(-2550) ) ntp_serveer= ( nagioos1
15、 naagios22 nagiios3 mmonitoor_xy77 moniitor_xxy8 moonitorr_xy9 ) # 通过过配置文件 判断是否属属于某一类型型的主机 dns = ( /uusr/biin/tesst -f /etc/namedd.conff ) web_normaal = ( /ussr/binn/testt -f /etc/httpdd/conf/httpdd.conff ) # 通过过cfenggine内部部命令来判断断 firsst_tenn_servver = ( ReggCmp(webseerver0-9ii,$host) ) # alll serrv
16、er all_sserverr= ( dnns webb_app11 ) copy: anyy: # 根据拷贝贝结果,定义义新的claasses $(cllientcconf)/sysloog.connfdestt=$(etccdir)/sysloog.connf ownner=$(fowneer) grroup=$(fgrooup) modee=644 serveer=$(ccfservver) trusstkey=true defiine=neew_sysslog shelllcommaands: new_sysloog: /etc/init.d/sysslog rrestarrt /de
17、v/nuull 2&1以上配置只是ccfagennt.connf 中的一一段而已,从从上面可以看看出:可以根据执行命命令程序的返返回结果来定定义classs,如果命命令返回结果果为0,此系系统属于此定定义的claass.class 的的定义可以是是包含已有或或者已定义的的classs可以根据执行操操作的结果来来定义新的cclassees.比如上面的配置置例子,当ssyslogg.conff配置改变了了,当拷贝完完成时,会定定义一个neew_sysslog的cclass. 在shelllcommaands的操操作中,会根根据new_sysloog claass 来重重启sysllog服务.3.
18、cfenngine系系统的搭建与与使用3.1. cffenginne 配置文文件管理方式式一般来说,cffenginne 的配置置文件,都是是集中化方式式管理,配置置文件都通过过版本控制软软件进行修改改和更新.系系统管理更新新配置文件后后,提交到ssvn后,cfenngine serveer 更新配配置文件,推推送到客户端端.3.2. cffenginne 运行方方式管理员登录主服服务器更新配配置文件(ssvn),通通过运行cffrun命令令通知客户端端进行更新.cfrunn在cfrunn.hostts 文件中中查找客户端端的列表.请请注意,主服服务器可以自自行充当客户户端。此图中中有两个客户
19、户端:主服务务器和远程客客户端.cfrun与每每个客户端上上的 cfsservd 进行通信,cfservd 然后运行cfagent.cfagentt连接主服务务器,首先检检查updaate.coonf是否有有新版本,如如果有更新,将将它传输到客客户端.cfagentt 先评估 updatte.connf 的内容容,并获取策策略文件(ccfagennt.connf 和相关关文件)的最最新版本.随后评估 cffagentt.conff以确定客户户端是否处于于所需状态。如如果有偏差,cfagent 将执行已定义的操作来更正客户端配置.注意:没有绝对对的服务端和和客户端,在在需要的情况况下,客户端端也
20、可以作服服务器端.3.3. cffenginne 更新触触发机制3.3.1. 服务器集中中通知更新方方式服务器上运行ccfrun,cfrunn会根据cfrrun.hoosts中的的主机列表来来连接到某个个客户机的ccfservvd程序客户机上cfsservd调调用本机的ccfagennt程序客户机上cfaagent程程序执行uppdate.conf,连接到服务务器的cfsservd,下载策略文文件cafaagent.conf客户机下载成功功后执行最新新版本的策略略文件,不成成功就执行旧旧版本的.注意:updaate.coonf的内容容要简单,一一般来说就是是下载cfaagent.conf策策略
21、文件,基基本上这个文文件创建好了了之后就不会会更改了.3.3.2. 客户端自主主激活方式客户机自动执行行cfageent程序执执行updaate.coonf,连接接到服务器的的cfserrvd,下载载策略文件ccafageent.coonf客户机下载成功功后执行最新新版本的策略略文件,不成成功就执行旧旧版本的.注意:客户端定定期执行cffagentt,可以通过过添加到crrontabb 或者 cffexecdd定期调用.这样的情况况下,客户端端就不需要运运行cfseervd程序序.3.4. cffenginne 服务器器端设置安装cfenggine软件件包,可以使使用源码或者者rpm包,请请参
22、考互联网网.cfenginne服务端目目录结构 /var/cfenggine/ |- backkup |- biin |- cliientcoonf#客户户端从此目录录下载和更新新配置文件 |- inputts#服务端端自身的配置置文件 |- liib |- moddules |- outpuuts |- pppkeys |- rpc_iin |- rpcc_out |- sharee - statte设置cfserrvd.coonf配置文文件,文件内内容如下 #cat /var/cfenggine/clienntconff/cfserrvd.coonf (为为了简化一点点,服务端和和客户端使
23、用用同样的cffservdd.conff配置) # # Whoo and what we alllow aaccesss to, and wwho wee trusst # Masteer Serrver cconf aand Cllient cfserrvd conf # conttrol: ddomainn = ( ) cfruunCommmand = ( /var/cfenggine/bbin/cffagentt ) MaxxConneectionns = ( 100 ) MulttipleCConnecctionss = ( true ) IfEllapsedd = ( 1 ) Dee
24、nyBaddClockks = ( falsse ) AlllowCoonnecttionsFFrom = ( 1772.0.00.0/8 ) TrusstKeyssFrom = ( 1/88 )#自动动交换keyy,不需要拷拷贝key LLogAlllConneectionns = ( truee ) AlllowUseers = ( rooot admmin ) HHostnaameKeyys = ( off ) CheccksumDDatabaase = ( /vaar/cfenggine/cfdb ) grannt: $(ccfrunCCommannd)1722.0.
25、0.0/8#允允许ip在17/8范围围内的主机,可以cfrrun方式远远程执行cffagentt /var/cffenginne0/8#允许许ip在17/8范围围内的主机,通过cfaagent访访问拷贝此目录下下的文件注意:此cfsservd.conf配配置文件比较较宽松,可以以根据需要进进行权限的限限制设置updatte.connf配置文件件(cfaggent运行行时,第一解解析的配置文文件) #cat /var/cfenggine/clienntconff/updatte.connf # # updaate.coonf - ensurre
26、thaat thee inpuuts annd binnariess in /var/cfenggine aare # syncced too thosse on the sserverr. # conntrol: actioonsequuence = ( copy ) # seqquencee of aactionns to perfoorm dommain = ( hziidc.coom ) # oour doomain DDefaulltCopyyType = ( ccheckssum ) # Copyy baseed on checkksum, not mmtime HHostnaam
27、eKeyys = ( off ) cfseerver = ( 00 ) # hosst runnning cfserrvd worrkdir = ( /vaar/cfenggine ) # the wworkdiir clieentconnf = ( /varr/cfenggine/clienntconff ) inpuut_modde = ( 700 ) # mode for iinput filess bin_mmode = ( 755 ) # mmode ffor biinariees fownner = ( roott ) # file ownerr ogrou
28、up = ( root ) # fiile grroup anny: # the classs to mmatch SplaayTimee = ( 1 ) # maxx numbber off minuutes oover # whichh cfenngine will sharee # itss loadd on tthe seerver # ccopy: $(clienntconff)/cfaggent.cconf destt=$(worrkdir)/inpuuts/cffagentt.conff owwner=$(fownner) ggroup=$(ogrroup) moode=7000
29、 sserverr=$(cffserveer) trusstkey=true encryypt=trrue注意:要尽可能能保持upddate.cconf文件件简单,只让让它更新必要要的cfaggent.cconf配置置文件,其他他的具体功能能操作都在ccfagennt.connf文件中定定义.设置cfageent.coonf配置文文件(cfeenginee的核心配置置文件,所有有的功能操作作都在此配置置文件中定义义) #cat /var/cfenggine/clienntconff/cfageent.coonf # # cfaagent.conf for cclientt # # groupp
30、区块定义群群组(claasses),可以在后后续的配置中中指定特定的的组群执行特定的的操作,这样样就可以将不不同类的配置置文件都写在在同一个cffagentt.conff文件中. grooups: Redhhat_ASS3 = ( redhhat_ass_3 ) Redhhat_ASS4 = ( redhhat_ass_4 ) Redhhat_2uu1 = ( redhhat_ass_2_1 ) Reedhat_7u3 = ( reedhat_7_3 ) Reddhat_AAS5 = ( reddhat_ss_5 ) coontroll: any: # Basiic Cfeenginee co
31、nffiguraationss acceess = ( rooot ) eeditfiilesizze = ( 0 ) # 0 tturns off tthe edditfillesizee limiit. neetmaskk = ( 255.2255.2555.0 ) # Seets thhe nettmask if yoou usee netcconfigg. timeezone = ( CCST ) # How and WWhere do wee outpput sttuff? sysaddmin = ( addmin ) smtppserveer = ( m ) EmmailMaaxL
32、inees = ( n ) # No maximmum liines SSyslogg = ( on ) # How mmany ccfengiines ccan ruun, whhat doo we ddo wheen thee servvers busy SplayyTime = ( 445 ) # Run everyythingg immeediateely MaaxCfennginess = ( 20 ) Repoositorry = ( /varr/cfenggine/bbackupp ) # 如如果使用cffexecdd定时运行cffagentt,它会读取取 下面 sscheduu
33、le 中定定义时间来运运行cfaggent sscheduule = ( MMondayy.Hr100 Tuessday.HHr10 WWednessday.HHr10 TThursdday.Hrr10 Frriday.Hr10 Mondaay.Hr115 ) # Set ssome ddefaullts DeefaulttCopyTType = ( chhecksuum ) # Copyy baseed on checkksum, not mmtime DeletteNonUUserFiiles = ( faalse ) # Doo not delette unoowned filess E
34、xcllamatiion = ( on ) # IInformm us oof prooblemss. ExppireAffter = ( 300 ) # Dontt let cfenggine rrun loonger then 660 minnutes. HosttnameKKeys = ( offf ) # Storre keyys bassed onn hosttname, not IP Innform = ( oon ) # Showw diaggnostiic outtput SShowAcctionss = ( off ) # Doo not show verboose diia
35、gnosstic ooutputt domaain = ( hziidc.coom ) # Obtaain ouur dommain nname aautomaaticallly # 可以以自定义一些些变量,方便便后面引用,引用方式 $(cfsserverr) cfseerver = ( 1100 ) clienntconff = ( /var/cfenggine/clienntconff ) worrkdir = ( /var/cfenggine ) etcddir = ( /ettc ) opttdir = ( /oopt ) binn_modee = ( 7555 ) # mmode f
36、for biinariees fowwner = ( rooot ) # ffile oowner fgrouup = ( root ) # fille grooup acctionssequennce = ( coppy ediitfilees shelllcommaands pprocessses ) # # copy 区块: 从从服务器拷贝贝配置文件,也可以递归归拷贝目录 coppy: any: $(clienntconff)/cfseervd.cconf destt=$(worrkdir)/inpuuts/cffservdd.conff owneer=$(ffownerr) groou
37、p=$(fgrouup) modee=700 serveer=$(ccfservver) trusstkey=true $(cclienttconf)/updaate.coonf destt=$(worrkdir)/inpuuts/uppdate.conf ownerr=$(foowner) grouup=$(ffgroupp) modee=700 servver=$(cfserrver) trusttkey=ttrue # 引用前前面自定义个个groupp(classses),属于Reddhat_AAS4这个组组的拷贝以下下配置文件 Reddhat_AAS4: $(cliientcoonf)
38、/syscctl.coonf desst=/etc/syscttl.connf ownner=$(fowneer) grroup=$(fgrooup) modee=777 serveer=$(ccfservver) trusstkey=true $(cclienttconf)/limiits.coonf desst=/etc/seecuritty/limmits.cconf owneer=$(ffownerr) grooup=$(fgrouup) modee=777 serveer=$(ccfservver) trusstkey=true # # eeditfiiles 区区块: 此块块操作是
39、自动动编辑系统配配置文件 edittfiless: aany: /rooot/.baashrc AutoCCreatee DeleeteLinnesConntainiing eexportt PS1 AppeendIfNNoSuchhLine expoort PSS1=nne1;37memee1;322mueeme1;33mmemme1;35mhhem e4mmpwdeme1;337meeme1;36mmemn$ # # proocessees 区块: 定义检查查系统进程,如如果没有在pps里发现相相应进程,ccfagennt将根据指指定的命令启启动该进程 proocessees: any:
40、# MMake ssure tthese proceesses are aalwayss runnning cfserrvd rrestarrt /vvar/cfenggine/bbin/cffservdd # # sshellccommannds 区块块: 定义了了需要运行的的系统命令,可可以是脚本,也也可以是命令令 sheellcommmandss: anny: # reestartt apacche /etc/init.d/httpdd resttart # eexecutte cmdd /bbin/eccho cllient no doo ser wiith doomain # # f
41、files区区块: 定义义了检查系统统文件属性,如如有不符将自自动修正 filees: any: /etcc/passwwd modde=6444 # make sure the ffile ppermisssionss are rightt owneer=rooot # mmake ssure iits oowned by rooot acction=fixalll # if aanythiing iss wronng, fiix it immeddiatelly! chhecksuum=md55 # keepp a ttripwiire ccheckssum too telll us /e
42、tc/ssh/sshd_confiig mm=644 o=rooot g=00 act=fixalll设置cfrunn.hostts配置文件件(在服务端端使用cfrrun命令推配置到到客户端,文文件定义要推的客户户端主机名列列表,存放于于Serveer端的/vvar/cfenggine/iinputss目录) # #lisst of hostss youre gooing tto mannage (remotte cliient mmust rrun cffservdd) # doomain = hziidc.coom acccess = rooot admmin hosttnamekkeys = off outpputdirr= /varr/cfenggine/ooutputt #-hostt listt-# teest_naame1 test_name22 tesst_namme3 ttest_nname4 testt_namee5 teest_naame6 test_name77 tesst_namme8 ttest_nname9 testt_namee10注意:此配置文文件中的主机机名要能解析析(通过/eetc/hoosts 或或者dns),否否则运行会找找不到客户端端ip,服务端需要要配置hossts 或者者dns.此配配置文件只
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国超细小齿条行业投资前景及策略咨询研究报告
- 2024至2030年中国胶东卫矛行业投资前景及策略咨询研究报告
- 2024至2030年防静电高架活动地板项目投资价值分析报告
- 2024至2030年防爆人体静电释放器项目投资价值分析报告
- 2024至2030年直联式空压机项目投资价值分析报告
- 2024至2030年球形高压汞灯项目投资价值分析报告
- 2024至2030年液压小绞车项目投资价值分析报告
- 2024至2030年无梭织机用停机条项目投资价值分析报告
- 2024至2030年乌木柄斩切刀项目投资价值分析报告
- 2024年木拖项目可行性研究报告
- 国债资金管理办法
- 研一导师指导记录范文
- 医疗美容诊所规章制度上墙
- 转让合同范例
- 武汉大学慕课学术道德与学术规范试题答案
- 2024年专业技术人员继续教育考试必考100题【含答案】
- 2024浙教版历史与社会九年级上复习提纲
- 危险货物集装箱装箱检查员真题练习附有答案
- GB/T 43950-2024工业浓盐水回用技术导则
- 动物的分类全面版
- HG-T20678-2023《化工设备衬里钢壳设计标准》
评论
0/150
提交评论