itpub.net]运维自动化-Puppet应用与架构.ppt

上传人:牧羊曲112 文档编号:5435681 上传时间:2023-07-06 格式:PPT 页数:35 大小:2.26MB
返回 下载 相关 举报
itpub.net]运维自动化-Puppet应用与架构.ppt_第1页
第1页 / 共35页
itpub.net]运维自动化-Puppet应用与架构.ppt_第2页
第2页 / 共35页
itpub.net]运维自动化-Puppet应用与架构.ppt_第3页
第3页 / 共35页
itpub.net]运维自动化-Puppet应用与架构.ppt_第4页
第4页 / 共35页
itpub.net]运维自动化-Puppet应用与架构.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《itpub.net]运维自动化-Puppet应用与架构.ppt》由会员分享,可在线阅读,更多相关《itpub.net]运维自动化-Puppet应用与架构.ppt(35页珍藏版)》请在三一办公上搜索。

1、Puppet 应用与架构,吴问志,引言,机器越来越多应用越来越复杂架构越来越复杂审记越来越难,内容概要,1.puppet 介绍-什么是puppet-puppet 能做什么-puppet 如何做到-puppet 目录结构介绍2.运维自动化工具对比-puppet vs cfengine-puppet vs chef3.puppet 使用时注意事项,4.puppet 应用案例-puppet 管理用户-puppet nginx 管理-puppet kick 介绍-puppet MCollective 介绍-puppet func 介绍5.puppet 架构与集群-puppet 架构-puppet 集群

2、方案-puppet 集群核心思想-puppet性能测试方法6.QA-puppet 未来,puppet 介绍,什么是puppet 遵循GPL 协议(2.7.0),基于ruby 语言开发的系统配置管理工具 说明性语言表达系统,用库实现配置 基于C/S架构,配置客户端和服务端,也可以独立运行 puppet 对于系统管理员是抽象,只依赖于ruby与facter.默认情况下,客户端每30分钟连接到puppetmasterpuppet 能做什么 puppet 能管理多达将40多种资源管理,例如:file,user group,host,package,service,cron,exec,yumrepo适合

3、整个软件生命周期管理。注:2.7.0以后使用(Apache 2.0 license)注:puppet特殊资源-虚拟资源.puppet 有个特殊的Type,例如Package,User等。这个Type就是告诉puppet被管理的是什么资源。,puppet 的适用场景,puppet 是如何工作的,puppet 工作流程,注:内部处理过程是抽象的,Puppet 模型参考,Puppet 三层模型,package nginx:ensure=installed,puppet 工作流程分拆,Facter介绍,Facter是什么facter是内置的puppet工具,它提供的一个标准方式去获得客户端环境变量等相

4、关信息Facter能获得哪些信息#facter-parchitecture=x86_64id=rootinterfaces=eth0,lo。ikernprocessor0=Intel(R)Xeon(R)CPU E5405 2.00GHzprouptime=27 daysuptime_days=27uptime_hours=651uptime_seconds=2344200注:这些变量可以直接来使用,例如:$:ipaddress或者$:ipaddress 当然你也可以自定义fact,需要使用ruby来编写。,开源社区版和企业版对比,puppet 目录结构与模块介绍,puppet 目录结构(右一)

5、注:manifests/site.pp必须存在puppet 模块结构(右二)注:manifests/init.pp必须存存,Puppet 与其它自动化工具对比,puppet VS cfengine,puppet VS chef,Puppet 使用注意事项,1.主机名使用FQDN格式命名,需要DNS或者hosts解析2.C/S两端时间要同步,SSL认证依赖于时间3.ssl认证过后,请不要修改主机名4.Usecachefaiure5.tag 和tagged6.节点可以继承,但不能多重继承7.类可以继承与覆盖,子类可以向父类添加额外属性值8.puppet 支持多环境部署(分:开发、测试、线上)9.t

6、idy 资源中多条件关系是或者,而不是and10.选择正确的版本,Puppet 使用时注意事项,1.节点设置tagtag(old-slow-server)if tagged(old-slow-server)notify this will succeed:2.对资源设置tag file/etc/ssh/sshd_config:.notify=Servicessh,tag=ssh,#puppet agent-test-tags ssh,1,类继承示例class nginx:port81 inherits nginx.错误示例class nginx:port81 inherits nginx,ap

7、ache.子类向父类添加额外属性Servicenginx require+File/etc/nginx/conf.d/nginx81.conf,Puppet 的应用案例,Puppet 管理用户(关于:管理用户的几点说明 a.puppet 支持ldap以及nis集中认证 b.puppet 支持用户密码管理,最好以(单引号)括起来c.puppet 建用户的默认是不建家目录的,需要使用managerhome=truepuppet 管理nginxpuppet kickPuppet MCollectivePuppet func,puppet 虚拟资源,以为前缀使用虚拟资源需要配置storeconfig虚

8、拟资源使用场景 多个资源需要引用共同的某个资源实例,例如A用户是SA,又是DBA,puppet nginx 应用案例,Exec有条件的执行:creates:指定命令所生成的文件那么命令只会在所指定的文件不存在的情况的被执行unless:所设定的命令返回0时才执行onlyif:只会在onlyif设定的命令返回0时才执行refreshonly:触发刷新动作。资源之间依赖关系:before、after、require资源之间触发subscribe notify友情提示:refreshonly,refresh的区别refreshonly:收到多少次通知,就执行多少资源,refresh:不管有多少次通知

9、,请执行一次。,puppet+kick,puppet kick:主动强制客户端运行puppet agent.注意:puppet kick 并不关心客户端puppet agent 有没有执行错误,它成功连接到agent 即返回退出0.,MCollective介绍,官方的解释:MCollective就是一个调度器,可以解决多个puppet agent同时向master提出请求造成性能,速度下降的问题;它可以根据不同的属性对节点进行分类,对不同分类执行不同的任务;它是一个控制终端,可以使用它控制客户端和服务器,因此不需要puppet agent定时运行了.MCollective也是一种Client/

10、Server架构,而且client和server使用Midware(中间件)进行通信,需要java以及activemq支持.Mcollective官文说明:http:/,Puppet MCollective 功能,1.管理/控制/执行服务软件包进程信息Facter facts ping 使用说明:#mco/usr/bin/mco:command(options)Known commands:find pgrep facts ping puppetd help controller rpc inventory service 需要更多功能,可以安装更多插件,Mcollective 使用示例,ro

11、otpuppet1#mco findpuppet1rootpuppet1#mco time=56.11 time=95.86 mspuppet1 time=96.78 ms-ping statistics-3 replies max:96.78 min:56.11 avg:82.92 rootpuppet1#mco puppetd status*=3/Currently stopped;last completed run 9663 seconds agopuppet1 Currently idling;last completed run 1665580 seconds Currently

12、idling;last completed run 149 seconds agoFinished processing 3/3 hosts in 36.27 ms,Puppet mcollective使用示例,MCollect使用示例,rootpuppet1#mco pgrep ruby*=3/3 PID USER VSZ COMMAND 9955 root 112.996 MB ruby/usr/sbin/mcollectived-pid=/var/run/mcollectived.pid PID USER VSZ COMMAND 5717 root 113.801 MB ruby/usr

13、/sbin/mcollectived-pid=/var/run/mcollectived.pid 25631 root 153.289 MB/usr/bin/ruby/usr/sbin/puppetd-server=puppetmaster1-log-process list stats-Matched hosts:2 Matched processes:3 Resident Size:28.917 MB Virtual Size:380.086 MBFinished processing 3/3 hosts in 198.42 ms,puppet+func 管理,Func全称为Fedora

14、Unified Network Controller(Fedora统一网络控制器),由Fedara社区维护的一款用于服务器自动化远程管理的工具。有如下特性:Func 可以在主控机上一次管理任意多台服务器,或任意多个服务器组;Func 基于 Certmaster(https:/fedorahosted.org/certmaster/)建立了 Master Slaves 主从 SSL 证书管控体系,可以将证书自动分发到所有受控服务器;Func 命令行可以直接发送远程命令或者远程获取数据;Func 开 发 者 已 经 完 成 了 大 多 数 常 用 任 务 模 块 的 开 发:CommandModu

15、le、FileTrackerModule、JBossModule、IPtablesModule、HardwareModule、MountModule、NagiosCheck、NetappModule、NetworkTest、ProcessModule、ServiceModule、SysctlModule、RebootModule、RpmModule、VirtModule、YumModule等等,这些模块的作用都可以顾名思义,或者参考:https:/fedorahosted.org/func/wiki/ModulesList;任何人都可以通过 Func 提供的 Python API 轻松编写自己

16、的模块,以实现体功能扩展。而且 任何 Func 命令行能完成的工作,都能通过 API 编程实现;Func 通讯基于 XMLRPC 和 SSL 标准协议。,func 使用示例,#func fmgr call process info aux#查看进程#func fmgr call process mem#查看内存#func fmgr call service status puppet#查看fmgr组中各成员puppet进程状态#func fmgr call service stop puppetpuppet2:0,puppet3:0#func fmgr call service start p

17、uppet tips:func也是使用ssl认证,可以使用puppetmaster上的ssl证书认证,参见官方文档说明,puppet 应用QA,1.客户端是如何使用?node default include nginx2.文件备份a.backup 决定文件的内容在被修改前是否进行备份。b.文件服务器 a.默认是备份到远程 filebucket main:server=puppet File backup=main 默认保存在/var/lib/puppet/clientbucketb.备份到本地filebucket sky:path=/data/backup,File backup=sky,文件

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

19、mongrel4.Puppet+git(特殊),Puppet架构与集群,Puppet 集群核心思想:1).puppetmaster集群-分担puppetmaster来自于客户端的请求压力,可以采取Active,Active 模式.-采取反向代理模式,将来自于8140的端口请求分散到多台puppetmaster2).puppet ssl 证书集群-分担puppetmaster来自于客户端ssl证书的请求压力,采取Active,Standby模式.3).采取独立运行模式,通过git 将代码push到客户端,客户端本地执行相应代码。,Puppet架构与集群,a.puppetmaster 集群架构图,

20、Puppet架构与集群,puppetca 集群架构图:,puppetmaster 并发性能测试方法,默认:centos系列puppet-load.rb在/usr/share/puppet/ext目录下。测试puppetmaster性能:./ext/puppet-load.rb-debug-node-server puppet1-factsdir=/var/lib/puppet/yaml/facts-concurrency 1-repeat 1-cert/var/lib/puppet/ssl/certs/puppet1.pem-key/var/lib/puppet/ssl/private_keys/puppet1.pem参阅:,EC2 客户端puppet 工作流,puppet 未来,项目地址:https:/,Q&A,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号