XXXX华东运维技术大会的资料--运维自动化-Puppet应用与11305.pptx

上传人:jix****n11 文档编号:77770061 上传时间:2023-03-16 格式:PPTX 页数:35 大小:2.33MB
返回 下载 相关 举报
XXXX华东运维技术大会的资料--运维自动化-Puppet应用与11305.pptx_第1页
第1页 / 共35页
XXXX华东运维技术大会的资料--运维自动化-Puppet应用与11305.pptx_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《XXXX华东运维技术大会的资料--运维自动化-Puppet应用与11305.pptx》由会员分享,可在线阅读,更多相关《XXXX华东运维技术大会的资料--运维自动化-Puppet应用与11305.pptx(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Puppet 应用与架构吴问志吴问志引言n机器越来越多机器越来越多n应用越来越复杂应用越来越复杂n架构越来越复杂架构越来越复杂n审记越来越难审记越来越难内容概要1.puppet介绍介绍-什么是什么是puppet-puppet能做什么能做什么-puppet如何做到如何做到-puppet目录结构介绍目录结构介绍2.运维自动化工具对比运维自动化工具对比-puppetvscfengine-puppetvschef3.puppet使用时注意事项使用时注意事项4.puppet应用案例应用案例-puppet管理用户管理用户-puppetnginx管理管理-puppetkick介绍介绍-puppetMColl

2、ective介绍介绍-puppetfunc介绍介绍5.puppet架构与集群架构与集群-puppet架构架构-puppet集群方案集群方案-puppet集群核心思想集群核心思想-puppet性能测试方法性能测试方法6.QA-puppet未来未来puppet 介绍n什么是什么是puppetpuppetn 遵循遵循GPL GPL 协议协议(2.(2.7.07.0),),基于基于ruby ruby 语言开发的系统配置管理工具语言开发的系统配置管理工具n 说明性语言表达系统,用库实现配置说明性语言表达系统,用库实现配置n 基于基于C/SC/S架构,配置客户端和服务端,也可以独立运行架构,配置客户端和服

3、务端,也可以独立运行n puppet puppet 对于系统管理员是抽象,只依赖于对于系统管理员是抽象,只依赖于rubyruby与与facter.facter.n 默认情况下,客户端每默认情况下,客户端每3030分钟连接到分钟连接到puppetmasterpuppetmasternpuppet puppet 能做什么能做什么 puppet puppet 能管理多达将能管理多达将4040多种资源管理,例如:多种资源管理,例如:file,user file,user group,host,package,service,cron,exec,yumrepogroup,host,package,ser

4、vice,cron,exec,yumrepo适合整个软件生命适合整个软件生命周期管理周期管理。注注:2.7.0:2.7.0以后以后使用使用(Apache2.0license)注:注:puppetpuppet特殊资源特殊资源-虚拟资源虚拟资源 .puppet puppet 有个特殊的有个特殊的TypeType,例如,例如Package,UserPackage,User等。这个等。这个TypeType就是告诉就是告诉puppetpuppet被管理的是什么资源。被管理的是什么资源。puppet 的适用场景puppet 是如何工作的puppet 工作流程 n注:内部处理过程是抽象的注:内部处理过程是抽

5、象的Puppet 模型参考nPuppet三层模型三层模型packagenginx:ensure=installed,puppet 工作流程分拆Facter介绍Facter是什么是什么facter是内置的是内置的puppet工具工具,它提供的一个标准方式去获得客户端环境变量等相关信息它提供的一个标准方式去获得客户端环境变量等相关信息Facter能获得哪些信息能获得哪些信息#facter-parchitecture=x86_64id=rootinterfaces=eth0,loipaddress=192.168.200.63ipaddress_eth0=192.168.200.63。ikernpr

6、ocessor0=Intel(R)Xeon(R)CPU E5405 2.00GHzprouptime=27 daysuptime_days=27uptime_hours=651uptime_seconds=2344200注注:这些变量可以直接来使用,例如:这些变量可以直接来使用,例如:$:ipaddress或者或者$:ipaddress当然你也可以自定义当然你也可以自定义fact,需要使用,需要使用ruby来编写。来编写。开源社区版和企业版对比开源社区版开源社区版企业版企业版用户图形接口内置Ec2模块内置Ec2模块内置Vmware vms配置管理-发现和克隆配置管理-操作系统配置管理-操作系统

7、配置管理-用户账户管理管理应用管理应用内置300+模块内置300+模块统一跨平台组件安装自动配置审记业务流程自动化网络技术社区支持网络技术社区支持7*24 小时技术支持puppetlabs工程师认证支持依赖包在一个目录下平滑升级和维护支持puppet 目录结构与模块介绍npuppet目录结构目录结构(右一右一)n注:注:manifests/site.pp必须存在必须存在npuppet模块结构(右二)模块结构(右二)n注注:manifests/init.pp必须存存必须存存Puppet 与其它自动化工具对比puppetVScfenginepuppetVSchef安装配置简单安装配置简单安装复杂需

8、要安装复杂需要依赖依赖DB基于ruby开发,Puppet 自有高级配置语言基于c语言,语法难懂,学习维护成本高备份恢复简单备份恢复复杂用于管理各种资源重点用于管理文件底层负责建模模拟资源之间相互关系安装配置简单安装配置简单安装配置比较复安装配置比较复杂杂基于ruby,用户不熟悉ruby,也可以使用使用的是ruby扩展,需要用户熟悉ruby语言,入门难备份恢复简单维护不方便有众多开发者和文档文档或者资料少有更成熟悉商业经验用户群相对少更多功能借鉴其思想,是puppet一个分支Puppet 使用注意事项1.1.主机名使用主机名使用FQDNFQDN格式命名格式命名,需要需要DNSDNS或者或者hos

9、tshosts解析解析2.C/S2.C/S两端时间要同步两端时间要同步,SSL,SSL认证依赖于时间认证依赖于时间3.ssl3.ssl认证过后,请不要修改主机名认证过后,请不要修改主机名4.Usecachefaiure4.Usecachefaiure5.5.tag tag 和和taggedtagged6.6.节点可以继承,但不能多重继承节点可以继承,但不能多重继承7.7.类可以继承与覆盖,子类可以向父类添加额外属性值类可以继承与覆盖,子类可以向父类添加额外属性值8.puppet 8.puppet 支持多环境部署(分:开发、测试、线上)支持多环境部署(分:开发、测试、线上)9.tidy 9.ti

10、dy 资源中多条件关系是或者,而不是资源中多条件关系是或者,而不是andand10.10.选择正确的版本选择正确的版本Puppet 使用时注意事项1.节点设置节点设置tagtag(old-slow-server)iftagged(old-slow-server)notifythiswillsucceed:2.对资源设置对资源设置tagfile/etc/ssh/sshd_config:.notify=Servicessh,tag=ssh,#puppetagent-test-tagssshn1,类继承示例类继承示例classnginx:port81inheritsnginx.错误示例错误示例cla

11、ssnginx:port81inheritsnginx,apache.子类向父类添加额外属性子类向父类添加额外属性Servicenginxrequire+File/etc/nginx/conf.d/nginx81.conf,Puppet 的应用案例Puppet管理用户(关于管理用户(关于:管理用户的几点说明管理用户的几点说明a.puppet支持支持ldap以及以及nis集中集中认证认证b.puppet支持用户密码管理,最支持用户密码管理,最好以好以(单引号单引号)括起来括起来c.puppet建用户的默认是不建家建用户的默认是不建家目录的,需要使用目录的,需要使用managerhome=true

12、puppet管理管理nginxpuppetkickPuppetMCollectivePuppetfuncpuppet 虚拟资源以以为前缀为前缀使用虚拟资源需要配置使用虚拟资源需要配置storeconfig虚拟资源使用场景虚拟资源使用场景多个资源需要引用共同的某个资源实例,例如多个资源需要引用共同的某个资源实例,例如A用户是用户是SA,又是,又是DBApuppet nginx 应用案例Exec有条件的执行:有条件的执行:ncreates:指定命令所生成的文件那么:指定命令所生成的文件那么命令只会在所指定的文件不存在的情况命令只会在所指定的文件不存在的情况的被执行的被执行nunless:所设定的命

13、令返回:所设定的命令返回0时才执行时才执行nonlyif:只会在:只会在onlyif设定的命令返回设定的命令返回0时才执行时才执行nrefreshonly:触发刷新动作。:触发刷新动作。资源之间依赖关系:资源之间依赖关系:before、after、require资源之间触发资源之间触发subscribenotify友情提示:友情提示:refreshonly,refresh的区别的区别refreshonly:收到多少次通知,就执:收到多少次通知,就执行多少资源,行多少资源,refresh:不管有多少次通知,请执行:不管有多少次通知,请执行一次。一次。puppet+kicknpuppet kick

14、puppet kick:主动强制客户端运行:主动强制客户端运行puppet agent.puppet agent.n注意注意:puppet kick:puppet kick 并不关心客户端并不关心客户端puppet agent puppet agent 有没有执行错误,它成功有没有执行错误,它成功连接到连接到agent agent 即返回退出即返回退出0.0.MCollective介绍n官方的解释:官方的解释:MCollectiveMCollective就是一个调度器就是一个调度器,可以解决多个可以解决多个puppet puppet agentagent同时向同时向mastermaster提出

15、请求造成性能提出请求造成性能,速度下降的问题速度下降的问题;它可以根据它可以根据不同的属性对节点进行分类不同的属性对节点进行分类,对不同分类执行不同的任务对不同分类执行不同的任务;它是一个控它是一个控制终端制终端,可以使用它控制客户端和服务器可以使用它控制客户端和服务器,因此不需要因此不需要puppet agentpuppet agent定定时运行了时运行了.nMCollectiveMCollective也是一种也是一种Client/ServerClient/Server架构架构,而且而且clientclient和和serverserver使用使用Midware(Midware(中间件中间件)

16、进行通信,需要进行通信,需要javajava以及以及activemqactivemq支持支持.nMcollectiveMcollective官文说明:官文说明:nhttp:/ MCollective 功能n1.管理管理/控制控制/执行执行n服务服务n软件包软件包n进程信息进程信息nFacterfactsnping使用说明:使用说明:#mcoTheMarionetteCollectiveversion1.3.2/usr/bin/mco:command(options)Knowncommands:findpgrepfactspingpuppetdhelpcontrollerrpcinventory

17、service需要更多功能,可以安装更多插件需要更多功能,可以安装更多插件Mcollective 使用示例rootpuppet1#rootpuppet1#time=time=95.86mspuppet1time=96.78ms-pingstatistics-3repliesmax:96.78min:56.11avg:82.92rootpuppet1#mcopuppetdstatus*=3/Currentlystopped;lastcompletedrun9663secondsagopuppet1Currentlyidling;Currentlyidling;lastcompletedrun14

18、9secondsagoFinishedprocessing3/3hostsin36.27msPuppet mcollective使用示例MCollect使用示例nrootpuppet1#mcopgreprubyn*=3/nPIDUSERVSZCOMMANDn9955root112.996MBruby/usr/sbin/mcollectived-pid=/var/run/nPIDUSERVSZCOMMANDn5717root113.801MBruby/usr/sbin/mcollectived-pid=/var/run/mcollectived.pidn25631root153.289MB/us

19、r/bin/ruby/usr/sbin/puppetd-server=puppetmaster1-logn-processliststats-nMatchedhosts:2nMatchedprocesses:3nResidentSize:28.917MBnVirtualSize:380.086MBnFinishedprocessing3/3hostsin198.42mspuppet +func 管理nFunc全称为Fedora Unified Network Controller(Fedora统一网络控制器),由Fedara社区维护的一款用于服务器自动化远程管理的工具。有如下特性:Func 可

20、以在主控机上一次管理任意多台服务器,或任意多个服务器组;Func 基于 Certmaster(https:/fedorahosted.org/certmaster/)建立了 Master Slaves 主从 SSL 证书管控体系,可以将证书自动分发到所有受控服务器;Func 命令行可以直接发送远程命令或者远程获取数据;Func 开 发 者 已 经 完 成 了 大 多 数 常 用 任 务 模 块 的 开 发:CommandModule、FileTrackerModule、JBossModule、IPtablesModule、HardwareModule、MountModule、NagiosChe

21、ck、NetappModule、NetworkTest、ProcessModule、ServiceModule、SysctlModule、RebootModule、RpmModule、VirtModule、YumModule等等,这些模块的作用都可以顾名思义,或者参考:https:/fedorahosted.org/func/wiki/ModulesList;任何人都可以通过 Func 提供的 Python API 轻松编写自己的模块,以实现体功能扩展。而且 任何 Func 命令行能完成的工作,都能通过 API 编程实现;Func 通讯基于 XMLRPC 和 SSL 标准协议。func 使用示

22、例#funcfmgrcallprocessinfoaux#查看进程查看进程#funcfmgrcallprocessmem#查看内存查看内存#funcfmgrcallservicestatuspuppet#查看查看fmgr组中各成员组中各成员puppet进程状态进程状态#funcfmgrcallservicestoppuppetpuppet2:0,puppet3:0#funcfmgrcallservicestartpuppettips:func也是使用也是使用ssl认证,可以使用认证,可以使用puppetmaster上的上的ssl证书认证,证书认证,参见官方文档说明参见官方文档说明puppet

23、应用QA1.客户端是如何使用?客户端是如何使用?nodedefaultincludenginx2.文件文件备份份a.backup决定文件的内容在被修改前是否决定文件的内容在被修改前是否进行行备份。份。b.文件服文件服务器器a.默默认是是备份到份到远程程filebucketmain:server=puppetFilebackup=main默默认保存在保存在/var/lib/puppet/clientbucketb.备份到本地份到本地filebucketsky:path=/data/backup,Filebackup=skyn文件备份示例:文件备份示例:file/etc/sudoers:mode=

24、440,source=puppet:/modules/admin/sudoers,backup=.bak,恢复:(哈希值)恢复:(哈希值)cp/var/lib/puppet/clientbucket/c/0/7/d/0/a/a/2/c07d0aa2d43d58ea7b5c5307f532a0b1/contents/etc/sudoerspuppet同步大文件可以使用同步大文件可以使用rsync模块模块Puppet架构与集群Puppet普遍部署为普遍部署为C/S架构:架构:Puppet成熟的集群方案:成熟的集群方案:1.Puppet+nginx2.Puppet+passenger3.Puppet

25、+mongrel4.Puppet+git(特殊)(特殊)Puppet架构与集群Puppet集群核心思想:集群核心思想:1).puppetmaster1).puppetmaster集群集群 -分担分担puppetmasterpuppetmaster来自于客户端的请求压力来自于客户端的请求压力,可以采取可以采取Active Active,Active,Active 模式模式.-采取反向代理模式,将来自于采取反向代理模式,将来自于81408140的端口请求分散到多台的端口请求分散到多台puppetmasterpuppetmaster2).puppet ssl 2).puppet ssl 证书集群证书

26、集群 -分担分担puppetmasterpuppetmaster来自于客户端来自于客户端sslssl证书的请求压力证书的请求压力,采取采取Active,StandbyActive,Standby模式模式.3).采取独立运行模式,通过采取独立运行模式,通过git将代码将代码push到客户端,客户端本地执行到客户端,客户端本地执行相应代码。相应代码。nPuppet架构与集群na.puppetmaster集群架构图集群架构图Puppet架构与集群npuppetca集群架构图:集群架构图:puppetmaster 并发性能测试方法EC2 客户端puppet 工作流npuppet 未来项目地址:项目地址:https:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁