自动化运维管理PDF_第1页
自动化运维管理PDF_第2页
自动化运维管理PDF_第3页
自动化运维管理PDF_第4页
自动化运维管理PDF_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、服务器自动化运维管理方案服务器自动化运维管理方案第1页共20页服务器自动化运维管理方案第2页共20页服务器自动化运维管理方案第1章 自动化运维概述1.1.背景312自动化运维体系介绍3第#页共20页服务器自动化运维管理方案1.3. 开源自动化运维工具简介 414 常用自动化运维工具对比选型 5第2章Puppet使用说明 72.1. Puppet 简介72.2. Puppet部署说明 82.2.1. Puppet服务器端部署 82.2.2. Puppet客户端安装82.2.3. 证书分发 92.3. Puppet使用说明92.3.1. Puppet Server 架构介绍 92.3.2. Pup

2、pet脚本编写规范92.3.3. Puppet 资源102.3.4. 资源使用实例1115第3章Func安装使用3.1. Func 介绍153.2. Func安装与配置153.3. Func使用说明173.3.1. Func服务器群组管理 173.3.2. Func 模块说明183.4. 常用模块使用说明 18第4章附录204.1. 参录资料20招贤纳士 20第#页共20页服务器自动化运维管理方案第1章自动化运维概述1.1. 背景公司的XXXX项目于近期上线, 预计会短时间内部署几百组服务器,以运维 部目前有限的人手,如果不采取自动化安装、配置及监控方案,工作量可想而知,甚至会出现服务器爆满却

3、来不及上新系统的情况。因此运维部的工程师都有必要熟练掌握自动化运维系统的使用。1.2. 自动化运维体系介绍一个完善的自动化运维体系包括系统预备、配置管理以及监控报警3个功能模块:1. 系统预备i. 自动化安装操作系统及常用软件包2. 配置管理i. 自动化部署业务系统软件包并完成配置ii. 远程管理服务器(开关服务等)iii. 变更回滚3. 监控报警i. 服务器可用性、性能、安全监控ii. 向管理员发送报警信息根据提供的功能不同,自动化运维工具也可以分为以下3类,如下表所示:预备类工具配置管理类监控报警类KickstartChefNagiosCobblerCon trolTierOpe nNMS

4、Ope nQRMFuncZabbixSpacewalkPuppetCacti1.预备类工具第3页共20页服务器自动化运维管理方案预备类工具可以使 Linux操作系统及软件安装自动化。它们借助服务器上的 软件包系统比如rpm或者apt来安装软件包,甚至会做一些粗略的配置工作。2. 配置管理类工具配置管理类工具可以自动化部署常用的应用程序,设置参数或者开启一个新 服务器上的服务,也可以用来把对操作系统及业务支撑系统的变更管理回滚到上 一版本。3. 监控报警类工具监控工具用来收集服务器数据,从而生成可用性、性能和其它系统状态的报 告。可用性监控可以第一时间向运维人员发送业务不可用的警告,以便第一时间

5、处理,减少业务中断时间。红帽子资助的 Genome项目是将预备类、 配置管理类集成到一起的框架,如下图所示:1.3. 开源自动化运维工具简介预备类工具配置管理类监控类KickstartChefNagios针对红帽Linux/Fedora等发行版 的自动化安装方式,简单的讲就是 让系统在安装过程中从一个 ks.cfg配置文件中自动获取所有 需要配置的参数。源于 Anaconda 项目。技术支持:红帽/Fedora社区一个系统集成框架,可以用Ruby等代码完成服务器的管理配置并 编写自己的库。技术支持:OpsCode起始于:2009年1月官方网站:一个强大的监控预警系统,可以监 控系统、应用、服务

6、以及各种进程 的运行状况,并提供了多种警报机 制。【技术支持】 Nagios Enterprises【发起人】Ethen Galstad【起始于】1999年【官方网站】/CobblerCfen gi neOpe nNMS为了实现快速网络安装环境的cfengine是一个用C语言开发的【描述】一个网络管理应用平台,Linux安装服务器,可以为数量众功能强大的自动化系统管理工具.可以自动识别网络服务,事件管理多的Linux服务自动化执行任务。引用其官网的说法cfengine是一与警报,性能测量等任务。【发起人】Michael DeHaan种UNIX管理工具,其

7、目的是使【技术支持】openNMS group【技术支持】红帽/Fedora社区简单的管理的任务自动化,使困难【起始于】2005年之前【起始于】2007年之前的任务变得较容易。【官方网站】【官方网站】【起始于】1993年//cobbler/【官网网站】Ope nQRMFu ncZabbix【描述】针对数据中心管理的开源【描述】全称为Fedora Unified【描述】用于监控网络上的服务器平台,针对设备的部署、监控等多Network Controller ,Fedora 统一/服务以及其他网络设备状态的网个

8、方面通过可插拔式架构实现自网络控制器,用于自化的远程服务络管理系统,后台基于C,前台由动化的目的,尤其面向云计算/基器管理。PHP编写,可与多种数据库搭配于虚拟化的业务。【发起人】Michael DeHaan 等使用。提供各种实时报警机制。【发起人】Matt Rechenburg【技术支持】红帽/Fedora社区【技术支持】Zabbix公司【起始于】2005年之前【官方网站】【发起人】Alexei Vladishev【官方网站】/func/【起始于】1998年【官方网站】SpacewalkPuppetCacti【描述】针对红帽/Fedora等发行【

9、描述】一个开源的数据中心自动Cacti是一套基于版的软件更新管理软件,同时也提化/配置管理框架,用于 PuppetPHP,MySQL,SNMP 及 RRDTool供预备和监控的功能。这个项目衍自己的声明语言自动化重现任意开发的网络流量监测图形分析工生了红帽 Network Satellite 产品。的系统配置。具。它通过snmpget来获取数据,【技术支持】红帽【技术支持】Puppet Labs使用RRDtool绘画图形,它提供【起始于】2001 ( Red Hat【官方网站】了非常强大的数据和用户管理功Network)/2008能,同时也能自己增加模板, 功能【官方网站】非常强大完善。起始于

10、2004年【技术支持】Cacti Group1.4. 常用自动化运维工具对比选型预备类工具KickstartCobbler供Anaconda读取的无人值守安装配置脚本,自动化安装配置过程繁琐一个集成工具,集成了 PXE、DHCP、DNS和Kickstart服务管理和yum仓库管理,简化了运维工程师工作量集中化配置管理类Chefpuppet1.需要用户熟悉ruby语言,入门门槛咼,管1. Puppet自有的配置语言较为咼级,入门简理模块开发周期长单,管理模块开发周期短2.资源脚本从前向后执行,维护调试繁琐2. puppet资源之间有显式的依赖关系,与这3. chef在配置中心服务器端需要依赖软件

11、比些资源在配置文件的位置或前后没有关系较多,需要 couchdb、RabbitMQ Solr、java3. puppet安装简单,需要的支持软件也少,和erlang,配置过程复杂繁琐配置过程十分简单4. chef的配置管理文件放在couchdb和solr4. puppe的配置管理文件为puppet语言描述索引等二进制文件中,通过远程命令工具的文本文件,易于发布、备份和扩展knife来操作这些配置,维护不方便5. puppet 的用户很多,Google、Redhat等大5. chef的用户群少,出了问题不方便排查公司都在使用,可以借鉴成熟的经验Cfen gi nePuppet + Func1.老

12、牌的配置管理工具,功能强大,但语法1.新兴的配置管理工具,语法简单,易于学晦涩,学习、维护成本高习、维护,但远程执行命令 Exec资源只能返回成功与否,执行过程无法跟踪查看,需要和简单易用的Linux集群管理工具Func配合使用监控类工具监控类工具中有Zabbix、Nagois和cacti等工具,zabbix和Nagois+cacti组合都是很优秀的工具,鉴于zabbix参考资料较少,选择了常用的Nagois+cacti 组合我们的自动化配置管理系统采用了开源的Puppet与Func的组合,Puppet用来对服务器及业务系统进行统一配置,Func用来集中化管理多台服务器。第2章Puppet使用

13、说明2.1. Puppet 简介Puppet是Puppet Labs基于ruby语言开发的自动化系统配置工具,可以以C/S模式或独立模式运行,支持对所有 UNIX及类UNIX系统的配置管理,最新 版本也开始支持对 Windows操作系统有限的一些管理。Puppet适用于服务器管 理的整个过程,比如初始安装、配置、更新以及系统下线。典型的Puppet架构为星型结构,Clients默认每30分钟请求一次 Server端, 确认是否有新的变更操作指令,puppet支持以节点的方式管理若干的服务器群组,常见的架构图如下:I SI cehoat - tnterral networkPuppet: Cli

14、enis Purpose: Web ServersPuppet: C ierts Purpose; Database :Local NetworkPuppet: CiienVMaster (Primal) Purpose; Utility第8页共20页服务器自动化运维管理方案第#页共20页服务器自动化运维管理方案Puppet: Client (VM Image Purpose: TesUStag ngPuppet ClierVMaster (Secondary) Purpose: Uli I ty第#页共20页服务器自动化运维管理方案22 Puppet部署说明221. Puppet服务器端部署

15、Puppet服务器端可以安装于常见的Linux发行版本中,我们选了陕西西安机房的一台服务器作为了Puppet服务器端,操作系统为Centos 5.4 32位。主机名设置为jvpuppet,并在 DNS中创建一条指向该IP的A记录jvpuppet.jooov.c nPuppet的安装方式支持源码安装、yum禾口 ruby的gem包安装,Centos可以直接使用yum来安装,Centos的默认源中没有 puppet,需要先安装 EPEL 包。Tips :什么是EPELEPEL ( /wiki/EPEL )是由 Fedora 社区打造,为 RHEL及衍生

16、发行版如CentOS、Scientific Linux等提供高质量软件包的项目。安装过程如下:1. 安装 EPEL rpm -Uvhhttp:/dow nl h.rpm2. 安装puppet服务端yum -y in stall puppet-server3. 启动 puppet ServerService puppetmaster start2.2.2. Puppet客户端安装Puppet服务器端对客户端的管理是基于主机名的,所以在安装之前需要为客户端设置唯一的主机名,主机名命令最好能体现出主机的机房、业务系统名称及IP信息。客户端安装的过程如下:1. 安装 EPEL 包:rpm -Uvhht

17、tp:/dow nl oad.fedora.redhat.eom/pub/epel/5/i386/epel-release-5-4.noarch.rpm2. 安装puppet客户端:yum -y in stall puppet223.证书分发Puppet客户端与服务器端是通过SSL隧道通信的,客户端安装完成后,需要向服务器端申请证书:1. 首次连接服务器端会发起证书申请,命令如下:puppetd -server puppet.puppet.c n-est2. 服务器端可以用puppetca -list命令查看到申请证书的客户端主机名3. puppetca -s命令可以为特定的主机颁发证书,pu

18、ppetca -s and -a表示给所有 的主机颁发证书2.3. Puppet使用说明默认安装好的 Puppet没有任何配置管理功能,需要运维工程师自己开发配置管理功能模块。2.3.1. Puppet Server 架构介绍Puppet Server默认安装完毕后,位于 /etc/puppet目录下,目录结构及简单的描述如下表所示:jvuserpuppet puppet$ pwd/etc/puppetjvuserpuppet puppet$ lsauth.c onfclient访问puppet server 的ACL配置文件fileserver.c onfpuppet server作为文件服

19、务器的 ACL配置文件man ifestsPuppet脚本主文件目录,至少需要包含site.pp文件modulesPuppet模块目录,存放 Puppet脚本的功能模块namespaceauth.conf命名空间ACL配置文件puppet.confPuppet服务器端配置文件2.3.2. Puppet脚本编写规范Manifests 为puppet脚本主目录,site.pp 为程序入口脚本文件,Modules目录为puppet管理脚本模块所在目录,每个模块也有各自的主目录及入口函数文件,如下图所示:第10页共20页服务器自动化运维管理方案jvuSSrj vpjppftt puppetf trSt

20、一 auth.conf fi I eserver.conf man i festspuppet脚本主目录第11页共20页服务器自动化运维管理方案 moduIes, ppnodesb j ipp一 b j zw. ippsjn. pp-gmzqc- pp入口模块文件一 sxxbd-05-0?r pp test, pp-gi t总.ppmodulesfuncI readme功能模块目录I一 man i fests|一 base.ppi n i t. pptenipl ates -一 mini on. confinstaIliaman i一一 ini t. pp一- temp Iates insta

21、I I-io.erb233. Puppet 资源Puppet提供了 48种资源类型,用户也可以开发一些其他资源,下表列出了常用的几种资源,用这些资源就可以完成大多数系统的配置管理了,如下表所示:资源类型描述文件文件管理资源,用于管理系统本地文件组管理用户组用户管理系统用户包管理软件包的安装、升级和删除Yum库yum库配置文件(用file资源也可以实现同样的功能)服务管理系统服务(启用、禁用和重启等)Cron tab 任务Cron tab定时任务管理文件系统挂载管理已挂载的文件系统(挂载、卸载,维护挂载表)Zfs管理ZFS,在zfs实例上创建,删除并并且设置属性Hosts主机管理管理系统主机名(

22、/etc/hosts )Exec资源执行外部命令2.3.4. 资源使用实例1. File资源以下的例子为新建一个 /tmp/puppettest 文件,文件内容为:puppet test only ,文件权限为666 :class testfile /tmp/puppettest:content = Puppet test onl y,mode = 6662. User 禾口 groupEnsure参数可以创建或者删除组,设置absent就删除该组,设置present就创建该组,以下的例子为删除不必要的用户和组:$grouplist =lp,uucp,games, news,floppy,au

23、diouser $userlist:en sure = abse nt,group $grouplist:en sure = abse nt,3. Package 资源为新装的系统安装ntp禾口 screen,删除 pppoe禾口 pppoe-conf 包package ntp,scree n:en sure = in stalled;pppoe,pppoe-c onf:en sure = abse nt;4. Service 资源以下实例为启动ssh服务,停止nfs服务service ssh:en sure = running;n fs:en sure = stopped;5. cron t

24、ab 资源以下实例摘自公司服务器初始化的一个片断,主要功能为在cron tab添加时间自动同步任务,同时使用了 package、service和cron tab三种资源:class jooov:cr onpackage cro ntabs:en sure = in stalled,servicecron d:en sure = running,en able = true,require = Packagecr on tabs;cron n tpdate:comma nd = /usr/sbi n/n tpdate time.wi ,user = root,hour = 0,mi nute =

25、 0,require = Packagecr on tabs;6. exec资源以下代码片断摘自公司服务器初始化配置脚本,主要作用是自动配置初始化iptables安全策略:file/etc/rc.d/foruser.sh:en sure = prese nt,mode = 755,owner = root,group = root,content = template(iptables/firewall.erb);file/etc/rc.d/rco cal:en sure = prese nt,mode = 754,owner = root,group = root,content = tou

26、ch /var/lock/subsys/localn/etc/rc.d/firewall.shn; exec /etc/rc.d/jv_firewall.sh:cwd = /etc/rc.d/,path = /usr/b in:/usr/sb in:/b in其他资源的用法请参考puppet官方文档,URL : nces/stable/type.html第15页共20页服务器自动化运维管理方案第3章Func安装使用3.1. Func 介绍Func 全称为 Fedora Unified Network Controller( Fedora 统一网络控制器),是由Fedara社区维护的一款用于服务

27、器自动化远程管理的工具。有如下特性:* Func可以在主控机上一次管理任意多台服务器,或任意多个服务器组;* Func 基于 Certmaster ( /certmaster/ ) 建立了Master - Slaves主从SSL证书管控体系,可以将证书自动分发到所 有受控服务器;* Func命令行可以直接发送远程命令或者远程获取数据;* Func开发者已经完成了大多数常用任务模块的开发:Comma ndModule、 FileTrackerModule 、 JBossModule 、IPtablesModule 、HardwareModule 、M

28、ountModule 、NagiosCheck 、 NetappModule、 NetworkTest、ProcessModule 、ServiceModule 、 SysctlModule、RebootModule、RpmModule、VirtModule、YumModule 等等,这些模块的作用都可以顾名思义,或者参考: /fu nc/wiki/ModulesList;*任何人都可以通过Func提供的Python API轻松编写自己的模块,以实现具体功能扩展。而且*任何Func命令行能完成的工作,都能通过API编程实现;* Func通讯基于 X

29、MLRPC 和SSL标准协议。3.2. Func安装与配置Func的Master端和Slave端安装方式相同,在安装过EPEL的Centos服务器中,可使用 yum -y in stall func 直接完成安装。Master的控制端与被控制端是由配置文件指定的,Master配置,可以保持默认,如需打开证书自动分发功能,将autosign设为yes即可。rootserver # cat /etc/certmaster/certmaster.c onf# con figurati on for certmasterd and certmaster-camainautosig n 二 nolist

30、e n_addr =listen_port = 51235cadir = /etc/pki/certmaster/cacert_dir = /etc/pki/certmastercertroot = /var/lib/certmaster/certmaster/certscsrroot = /var/lib/certmaster/certmaster/csrscert_exte nsion 二 certsyn c_certs = False服务端配置完成后需要重启certmaster服务被控制端需要手动配置/etc/certmaster/m inion.conf文件中的 certmaster

31、字段,用于指定控制端服务器的地址,如下所示:rootclie nt1 # cat /etc/certmaster/m inion.conf# configuration for minionsmaincertmaster = #设置为 master 的 IP 或域名certmaster_port = 51235log_level = DEBUGcert_dir = /etc/pki/certmaster被控制端配置完毕后,使用service funcd start命令启动funcd服务后,就会自动向控制端提交证书申请请求。在控制机中使用certmaster-ca - l查看到被控端的证书请求,

32、用 certmaster-ca - s主机名可以为相应的主机颁发证书,证书分发后,需要将 client端的主机名加到 server端的hosts文件中,如下表所示:rootjvpuppet certmaster# certmaster-ca -lNo certificates to sig nrootjvpuppet certmaster# certmaster-ca -lsxxb4-33rootjvpuppet certmaster# certmaster-ca -s sxxb4-33/var/lib/certmaster/certmaster/csrs/sxxb4-33.csrsigned

33、 - cert located at/var/lib/certmaster/certmaster/certs/sxxb4-33.cert3.3. Func使用说明3.3.1. Func服务器群组管理Func可以远程管理任意台或任意组服务器,对一台发送指令时,可直接指 定其主机台,对所有服务器发送指令使用时,用*表示所有服务器,如下表所示:1. 确认主机web1是否存在rootjvpuppet bin# func web1 ping2. 让所有主机执行ifconfig命令Func “ * callcomma nd run “ ifconfig ”日常的运维工作更多的对特定的服务器组进行操作,Fu

34、nc提供了 GroupsApi来对服务器进行分组管理,如下表所示:添加一个新组 n ewgr :rootfedorabig fun c# func * group -ag n ewgr rootfedorabig fun c#列出所有组及其服务器成员rootfedorabig fun c# func * group -laGroup : group5Host : 1Host : 3Host : 2Host : 5Host : 4Group : n ewgr但用groupapi管理服务器组时比较繁琐,容易出错,Func也支持用配置文件/etc/fu nc/groups 管理服务器群组及其成员,如

35、下所示:webservershost = ; mailservershost = ; 3.3.2. Func模块说明Func的开发者已经提供了常用的功能模块,用户也可以自己开发相应的功能模块,Func官网目前提供的模块列表如下所示:Modules LiatWe have a Hot of core plugins eg the command line and the API offer up same interesling features bv default. Ae time goes or)p the features one-s Mill 呂dchsdL Join tM nridl

36、l list nixl submil your own! BridgeModule “ AOIowe For simple network bridge management CertMlasterMadule For power users Gut thereK allows; manipulating the certmaster frcrnin Func1 API. ComandModule - (Running ArWlrafy Cecniriands SSH Does CopyFleModule Copyfile Ale Copying and Checksumming CpuMod

37、ule Pall CPU statisticsj varying tims period allowed. DiEkModule Get Dislk infarmaeion, currently jusC dF output.t FlteTickerMciclule - tracks We chingesr for use with iFumclinvencory GetAleModulfl Allow retriewirig artatfrary files from minim吿 J Boss (Module munit 口 ring and control jbcss instances

38、 IPtablesM 口TijIe 十 iptables management HardModule -=Prfllllng MountModule mount unm-ouritr and query fnouritfld resources Na g iosServerM odul e Lets you do things like sctiedule downtime or enable/disable alerts onhostgroups and sfirvicegrouips- NagiosCheck - be able to call Nagiios plugins and ge

39、t their resuttSj without needing to ins:taOI nagios. Works with any plugin NetappMadule Administer Netapp filers NetvMorkTest - Test out netw&rtk stuff ProissModul6 Process InfoF rnemorv* u$ager and Killing PultfileModute Pull a (list of remote file(5)and save it locally ServiceModule Service Staitus and Control SysctiMcndule “ configure kernel meters 貳 njndme RebootModulfr - Reboot your system RpmMocluile for any distro tJhat supports RPMr lists installed packages SmartMadule “ Disk Smart (Hard Drive) Status UserModule - we still to iirnpl&menE: this :) VMModuta w&rks with ikoan, KVMr xe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论