狠狠撸

狠狠撸Share a Scribd company logo
Puppet 应用与架构


      吴问志


  网站:www.mysqlops.com/category/puppet
  邮箱: puppetfans@sina.com
  微博:puppetfans@sina.com
puppet 介绍
? 什么是 puppet
?      遵循 GPL 协义基于 ruby 语言开发的系统配置管理工具
?      说明性语言表达系统,用库实现配置
?      基于 C/S架构,配置客户端和服务端
?      puppt 对于系统管理员是抽象的,只依赖于 ruby 与facter.
?      默认情况下,客户端每 30分钟连接到 puppetmaster
                    分钟连接到puppetmaster
                  30分钟连接到
? puppet 能做什么
     puppet 能管理多达近 40多种资源管理,例如: file,user
            能管理多达近40
                   40多种资源管理,例如:
      group, host,package,service,cron,exec,yumrepo 等。
    ?. puppet 有个特殊的 Type,例如 Package,User等。
puppet 工作流程
Puppet 与其它自动化工具比较

? puppet VS cfengine
? Puppet 设计的初衷用来管理结构化的软件包 ,服务,用户,组等资源
? Cfengin 设计的初衷是用来管理文件


? Puppet 是驱动模型。
?   - puppet 最底层是负责建模。
?   - 例如, freebsd 和 centos 的建立用户
? Puppet 能隐式的处理资源之间依赖的关系。
?   - 例如 ,nginx 和 nginx.conf
? Puppet 是基于 ruby 语言开发
? Cfengin 是基于 C语言开发
Puppet 与其它自动化工具对比总结
 puppet cfengine       Puppet vs chef
安装配置简单 安装复杂需要       安装配置简单      安装配置比较复
       依赖DB
         DB                     杂
基于ruby开    基于c语言,   基于ruby,用户   使用的是ruby扩
发,Puppet
       语法难懂,学       不熟悉ruby,也   展,需要用户熟
自有高级配置 习维护成本高       可以使用        悉ruby语言,入
语言                              门难
备份恢复简单 备份恢复复杂       备份恢复简单      维护不方便

用于管理各种 重点用于管理
                    有众多开发者和     文档或者资料少
资源     文件
                    文档
底层负责建模
                    有更成熟悉商业     用户群相对少
模拟资源之间              经验
相互关系                更多功能        借鉴其思想,是
                                puppet一个分支
Puppet 模型参考
? Puppet 模型有三层,来源于 puppet 官方, puppet pro 也有详细介
  绍,如下图
Puppet 使用注意事项
? 1.主机名使用 FQDN(全域名)格式命名 ,需要 DNS或者 hosts解析
? 2.C/S两端时间要同步 ,SSL认证依赖于时间
? 3.ssl认证过后,请不要修改主机名
? 4. Usecachefaiure
? 5. 客户端如何运行指定的类( tagged)
? 6.节点可以继承,但不能多重继承
  6.节点可以继承,但不能多重继承
? 7.类可以继承与覆盖,子类可以向父类添加额外属性值
? 8.puppet 支持多环境应用(开发,线上,测试)
? 9.tidy 资源中多条件关系是或者,而不是 and.
? 10.选择正确的版本
Puppet 使用时注意事项
                       ?   从缓存的读取上个版本,并阻制所有的编译
? Usecachefaiure           错误。只有在agent模式才会有问题
                       ?   导致问题:
                       ?   如果代码有错误,你修改了,没有重启agent,
                           就会一直报错。



Tagged使用示例             ?   node base inherits webbase_server {
                       ?   if tagged( “ base") {
                              tagged(“
                       ?   notify { "this will succeed": }
-默认tagged是节点名称或者从父节点   ?   }
                       ?   if tagged( “ webbase_server") {
                              tagged(“
  继承过来的。               ?   notify { "so will this": }
                       ?   }
-一般来说版本号越高代表性能改进       ?   }


                       ?   #puppet agent --test --tags base
Puppet 使用时注意事项
? 节点继承示例:
?   node webserver inherits base {
                                          ? 类继承示例
?   ….                                    ?   class apache::port8000 inherits apache {

?                                         ?   …
    }
?   下面错误的多重继承示例                           ?   }

?   node web1 inherits base, dbserver {   ?   类的覆盖与添加额外的值

?   …                                     ?   class apache::ssl inherits apache {
?   }                                     ?   file { "/etc/ssl/certs/cookbook.pem":

?   运行指定环境:                               ?   source
                                              =>"puppet:///modules/apache/cookbook.
?   puppet agent --test --
                                              pem",
    environment=testing
                                          ?   }
?   Tidy 资源示例
                                          ?   Service["apache2"] {
?   tidy { "/var/lib/puppet/reports":
                                          ?   require +>
?   age => "1w",
                                              File["/etc/ssl/certs/cookbook.pem"],
?   Sise => “512k”
             512k”
                                          ?   }
?   recurse => true,
                                          ?   }
?   }
Puppet 使用时注意事项
?   开源版本与公司版对比
?   1. 用户图形接口
?   2. 内置EC2 模块
?   3. 内置vms
?   4. 配置管理-发现克隆
?   5. 配置管理-操作系统
?   6. 配置管理-用户账户管理
?   7. 管理应用
?   8.300+ 的内置模块
?   9. 业务流程-自动化
?   10.合法性-自动配置审记
?   11.基于角色访问控制
?   12.统一跨平台组件安装
?   13.网络社区支持
?   14.7 *24 技术支持和SLA (服务协议)支持
    14.7*
?   15. puppetalbs 工程师认证
?   16.依赖包在一个目录下
?   17.平滑升级和维护支持
Puppet架构与集群
? Puppet 是 C/S架构,如下图:




? Puppet 集群方案
1.Puppet +nginx
2.Puppet +Passenger
3.Puppet +mongrel
4.Puppet+git
Puppet架构与集群
? Puppet 集群核心思想:
? 1).puppetmaster集群
?    - 分担 puppetmaster来自于客户端的请求压力 ,可以采取
    Active ,Active 模式 .
?   - 采取反向代理模式,将来自于 8140的端口请求分散多台
? 2).puppet ssl 证书集群
? -分担 puppetmaster的来自于客户端 ssl 证书的请求压力 , 采取
  Active,Standby模式 .
? 3). 采取独立运行模式,绕开 puppetmaster单点
                  puppetmaster单点
? -puppet +git 这种方式




?
Puppet架构与集群
? a.puppetmaster 集群架构图
Puppet架构与集群
? puppetca 集群架构图:

More Related Content

What's hot (20)

2018 8 18_play_framework
2018 8 18_play_framework2018 8 18_play_framework
2018 8 18_play_framework
Lorn Jhu
?
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
wantingj
?
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
Chu-Siang Lai
?
贬补诲辞辞辫平台搭建
贬补诲辞辞辫平台搭建贬补诲辞辞辫平台搭建
贬补诲辞辞辫平台搭建
Liyang Tang
?
痴补谤苍颈蝉丑介绍
痴补谤苍颈蝉丑介绍痴补谤苍颈蝉丑介绍
痴补谤苍颈蝉丑介绍
fangdeng
?
Koa 正在等一個人
Koa 正在等一個人Koa 正在等一個人
Koa 正在等一個人
Fred Chien
?
現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧
Chu-Siang Lai
?
Deployment with Capistrano
Deployment with CapistranoDeployment with Capistrano
Deployment with Capistrano
旭 張
?
狈辞诲别闯厂基础教学&补尘辫;介绍
狈辞诲别闯厂基础教学&补尘辫;介绍狈辞诲别闯厂基础教学&补尘辫;介绍
狈辞诲别闯厂基础教学&补尘辫;介绍
GO LL
?
百姓网如何优化网速-蚕肠辞苍2011
百姓网如何优化网速-蚕肠辞苍2011百姓网如何优化网速-蚕肠辞苍2011
百姓网如何优化网速-蚕肠辞苍2011
Yiwei Ma
?
惭测蝉辩濒展示功能与源码对应
惭测蝉辩濒展示功能与源码对应惭测蝉辩濒展示功能与源码对应
惭测蝉辩濒展示功能与源码对应
zhaolinjnu
?
高性能并发奥别产服务器实现核心内幕
高性能并发奥别产服务器实现核心内幕高性能并发奥别产服务器实现核心内幕
高性能并发奥别产服务器实现核心内幕
ideawu
?
狈辞诲别.箩蝉在淘宝的应用实践
狈辞诲别.箩蝉在淘宝的应用实践狈辞诲别.箩蝉在淘宝的应用实践
狈辞诲别.箩蝉在淘宝的应用实践
taobao.com
?
狈辞诲别.箩蝉长连接开发实践
狈辞诲别.箩蝉长连接开发实践狈辞诲别.箩蝉长连接开发实践
狈辞诲别.箩蝉长连接开发实践
longhao
?
Centos下安装apache + subversion
Centos下安装apache + subversionCentos下安装apache + subversion
Centos下安装apache + subversion
Yiwei Ma
?
Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)
Chu-Siang Lai
?
GNU Build System
GNU Build SystemGNU Build System
GNU Build System
imacat .
?
Cvs
CvsCvs
Cvs
ZongYing Lyu
?
Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacRuby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for Mac
MarsZ Chen
?
2018 8 18_play_framework
2018 8 18_play_framework2018 8 18_play_framework
2018 8 18_play_framework
Lorn Jhu
?
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
wantingj
?
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
Chu-Siang Lai
?
贬补诲辞辞辫平台搭建
贬补诲辞辞辫平台搭建贬补诲辞辞辫平台搭建
贬补诲辞辞辫平台搭建
Liyang Tang
?
痴补谤苍颈蝉丑介绍
痴补谤苍颈蝉丑介绍痴补谤苍颈蝉丑介绍
痴补谤苍颈蝉丑介绍
fangdeng
?
Koa 正在等一個人
Koa 正在等一個人Koa 正在等一個人
Koa 正在等一個人
Fred Chien
?
現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧
Chu-Siang Lai
?
Deployment with Capistrano
Deployment with CapistranoDeployment with Capistrano
Deployment with Capistrano
旭 張
?
狈辞诲别闯厂基础教学&补尘辫;介绍
狈辞诲别闯厂基础教学&补尘辫;介绍狈辞诲别闯厂基础教学&补尘辫;介绍
狈辞诲别闯厂基础教学&补尘辫;介绍
GO LL
?
百姓网如何优化网速-蚕肠辞苍2011
百姓网如何优化网速-蚕肠辞苍2011百姓网如何优化网速-蚕肠辞苍2011
百姓网如何优化网速-蚕肠辞苍2011
Yiwei Ma
?
惭测蝉辩濒展示功能与源码对应
惭测蝉辩濒展示功能与源码对应惭测蝉辩濒展示功能与源码对应
惭测蝉辩濒展示功能与源码对应
zhaolinjnu
?
高性能并发奥别产服务器实现核心内幕
高性能并发奥别产服务器实现核心内幕高性能并发奥别产服务器实现核心内幕
高性能并发奥别产服务器实现核心内幕
ideawu
?
狈辞诲别.箩蝉在淘宝的应用实践
狈辞诲别.箩蝉在淘宝的应用实践狈辞诲别.箩蝉在淘宝的应用实践
狈辞诲别.箩蝉在淘宝的应用实践
taobao.com
?
狈辞诲别.箩蝉长连接开发实践
狈辞诲别.箩蝉长连接开发实践狈辞诲别.箩蝉长连接开发实践
狈辞诲别.箩蝉长连接开发实践
longhao
?
Centos下安装apache + subversion
Centos下安装apache + subversionCentos下安装apache + subversion
Centos下安装apache + subversion
Yiwei Ma
?
Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)
Chu-Siang Lai
?
GNU Build System
GNU Build SystemGNU Build System
GNU Build System
imacat .
?
Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacRuby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for Mac
MarsZ Chen
?

Viewers also liked (20)

Enhancing the intranet with gamification
Enhancing the intranet with gamificationEnhancing the intranet with gamification
Enhancing the intranet with gamification
Alex Manchester
?
Grafico diario del dax perfomance index para el 07 11-2013Grafico diario del dax perfomance index para el 07 11-2013
Grafico diario del dax perfomance index para el 07 11-2013
Experiencia Trading
?
China: kicking the can down the road
China: kicking the can down the roadChina: kicking the can down the road
China: kicking the can down the road
RBS Economics
?
?????? ???? ?? ??
?????? ???? ?? ???????? ???? ?? ??
?????? ???? ?? ??
shartal10
?
LUDOPARCIAL - TUTORIALLUDOPARCIAL - TUTORIAL
LUDOPARCIAL - TUTORIAL
Aníbal Rossi
?
????? ?? ?????
????? ?? ?????????? ?? ?????
????? ?? ?????
nili_g
?
AgTechXChange
AgTechXChangeAgTechXChange
AgTechXChange
Liz Caselli-Mechael
?
Digital Marketing and Social Personal Media
Digital Marketing and Social Personal MediaDigital Marketing and Social Personal Media
Digital Marketing and Social Personal Media
Ib Potter
?
Top-Notch Slimmest Smartphones on Earth
Top-Notch Slimmest Smartphones on EarthTop-Notch Slimmest Smartphones on Earth
Top-Notch Slimmest Smartphones on Earth
TechAhead
?
Informe de actividades en vía pública, del 30 dic de 2016 al 5 de ene 2017Informe de actividades en vía pública, del 30 dic de 2016 al 5 de ene 2017
Informe de actividades en vía pública, del 30 dic de 2016 al 5 de ene 2017
Delegación Miguel Hidalgo
?
Technology & Us
Technology & UsTechnology & Us
Technology & Us
Uriel Shuraki
?
OXO Soluitions
OXO SoluitionsOXO Soluitions
OXO Soluitions
OXO IT SOLUTIONS PVT LTD
?
???? ???????? ??????
???? ???????? ?????????? ???????? ??????
???? ???????? ??????
????? ??? ???????
?
Daily Newsletter: 18th July, 2011
Daily Newsletter: 18th July, 2011Daily Newsletter: 18th July, 2011
Daily Newsletter: 18th July, 2011
Fullerton Securities
?
News A 40 2016
News A 40 2016News A 40 2016
News A 40 2016
Roberta Culiersi
?
Toronto Best Places to Work Roadshow | Ceridian
Toronto Best Places to Work Roadshow | Ceridian   Toronto Best Places to Work Roadshow | Ceridian
Toronto Best Places to Work Roadshow | Ceridian
Glassdoor
?
Rump : iOS patch diffing
Rump : iOS patch diffingRump : iOS patch diffing
Rump : iOS patch diffing
Cyber Security Alliance
?
Universidad Nacional de Chimborazo   Proyecto de EstadisticaUniversidad Nacional de Chimborazo   Proyecto de Estadistica
Universidad Nacional de Chimborazo Proyecto de Estadistica
Dario Pilco
?
El pronombreEl pronombre
El pronombre
Paqui Ruiz
?
Enhancing the intranet with gamification
Enhancing the intranet with gamificationEnhancing the intranet with gamification
Enhancing the intranet with gamification
Alex Manchester
?
Grafico diario del dax perfomance index para el 07 11-2013Grafico diario del dax perfomance index para el 07 11-2013
Grafico diario del dax perfomance index para el 07 11-2013
Experiencia Trading
?
China: kicking the can down the road
China: kicking the can down the roadChina: kicking the can down the road
China: kicking the can down the road
RBS Economics
?
?????? ???? ?? ??
?????? ???? ?? ???????? ???? ?? ??
?????? ???? ?? ??
shartal10
?
LUDOPARCIAL - TUTORIALLUDOPARCIAL - TUTORIAL
LUDOPARCIAL - TUTORIAL
Aníbal Rossi
?
????? ?? ?????
????? ?? ?????????? ?? ?????
????? ?? ?????
nili_g
?
Digital Marketing and Social Personal Media
Digital Marketing and Social Personal MediaDigital Marketing and Social Personal Media
Digital Marketing and Social Personal Media
Ib Potter
?
Top-Notch Slimmest Smartphones on Earth
Top-Notch Slimmest Smartphones on EarthTop-Notch Slimmest Smartphones on Earth
Top-Notch Slimmest Smartphones on Earth
TechAhead
?
Informe de actividades en vía pública, del 30 dic de 2016 al 5 de ene 2017Informe de actividades en vía pública, del 30 dic de 2016 al 5 de ene 2017
Informe de actividades en vía pública, del 30 dic de 2016 al 5 de ene 2017
Delegación Miguel Hidalgo
?
Toronto Best Places to Work Roadshow | Ceridian
Toronto Best Places to Work Roadshow | Ceridian   Toronto Best Places to Work Roadshow | Ceridian
Toronto Best Places to Work Roadshow | Ceridian
Glassdoor
?
Universidad Nacional de Chimborazo   Proyecto de EstadisticaUniversidad Nacional de Chimborazo   Proyecto de Estadistica
Universidad Nacional de Chimborazo Proyecto de Estadistica
Dario Pilco
?
El pronombreEl pronombre
El pronombre
Paqui Ruiz
?

Similar to 运维自动化 (20)

笔耻辫辫别迟的使用与管理
笔耻辫辫别迟的使用与管理笔耻辫辫别迟的使用与管理
笔耻辫辫别迟的使用与管理
Elain Ding
?
笔耻辫辫别迟安装测试
笔耻辫辫别迟安装测试笔耻辫辫别迟安装测试
笔耻辫辫别迟安装测试
Yiwei Ma
?
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理
frankwsj
?
Track2 -何斌--openstack 在京东的应用实践
Track2 -何斌--openstack 在京东的应用实践Track2 -何斌--openstack 在京东的应用实践
Track2 -何斌--openstack 在京东的应用实践
OpenCity Community
?
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践
yiditushe
?
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
hugo
?
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制
maclean liu
?
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 new
Yiwei Ma
?
使用尝耻补提高开发效率
使用尝耻补提高开发效率使用尝耻补提高开发效率
使用尝耻补提高开发效率
gowell
?
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShopDocker容器微服務 x WorkShop
Docker容器微服務 x WorkShop
Philip Zheng
?
The Application of OpenStack in 360buy, by Bin He
The Application of OpenStack in 360buy, by Bin HeThe Application of OpenStack in 360buy, by Bin He
The Application of OpenStack in 360buy, by Bin He
Hui Cheng
?
02.辫测迟丑辞苍.开发最佳实践
02.辫测迟丑辞苍.开发最佳实践02.辫测迟丑辞苍.开发最佳实践
02.辫测迟丑辞苍.开发最佳实践
Na Lee
?
Kissy design
Kissy designKissy design
Kissy design
yiming he
?
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorial
azole Lai
?
Baidu Cloud Foundry
Baidu Cloud FoundryBaidu Cloud Foundry
Baidu Cloud Foundry
James Watters
?
翱谤补濒颈耻虫+尘测蝉辩濒5单机多实例安装文档
翱谤补濒颈耻虫+尘测蝉辩濒5单机多实例安装文档翱谤补濒颈耻虫+尘测蝉辩濒5单机多实例安装文档
翱谤补濒颈耻虫+尘测蝉辩濒5单机多实例安装文档
xuebao_zx
?
Ruby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for UbuntuRuby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for Ubuntu
MarsZ Chen
?
基于Ivy ant的java构建初探
基于Ivy ant的java构建初探基于Ivy ant的java构建初探
基于Ivy ant的java构建初探
Anson Yang
?
惭补惫别苍初级培训
惭补惫别苍初级培训惭补惫别苍初级培训
惭补惫别苍初级培训
Cody Zhang
?
笔耻辫辫别迟的使用与管理
笔耻辫辫别迟的使用与管理笔耻辫辫别迟的使用与管理
笔耻辫辫别迟的使用与管理
Elain Ding
?
笔耻辫辫别迟安装测试
笔耻辫辫别迟安装测试笔耻辫辫别迟安装测试
笔耻辫辫别迟安装测试
Yiwei Ma
?
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理
frankwsj
?
Track2 -何斌--openstack 在京东的应用实践
Track2 -何斌--openstack 在京东的应用实践Track2 -何斌--openstack 在京东的应用实践
Track2 -何斌--openstack 在京东的应用实践
OpenCity Community
?
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践
yiditushe
?
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
hugo
?
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制
maclean liu
?
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 new
Yiwei Ma
?
使用尝耻补提高开发效率
使用尝耻补提高开发效率使用尝耻补提高开发效率
使用尝耻补提高开发效率
gowell
?
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShopDocker容器微服務 x WorkShop
Docker容器微服務 x WorkShop
Philip Zheng
?
The Application of OpenStack in 360buy, by Bin He
The Application of OpenStack in 360buy, by Bin HeThe Application of OpenStack in 360buy, by Bin He
The Application of OpenStack in 360buy, by Bin He
Hui Cheng
?
02.辫测迟丑辞苍.开发最佳实践
02.辫测迟丑辞苍.开发最佳实践02.辫测迟丑辞苍.开发最佳实践
02.辫测迟丑辞苍.开发最佳实践
Na Lee
?
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorial
azole Lai
?
翱谤补濒颈耻虫+尘测蝉辩濒5单机多实例安装文档
翱谤补濒颈耻虫+尘测蝉辩濒5单机多实例安装文档翱谤补濒颈耻虫+尘测蝉辩濒5单机多实例安装文档
翱谤补濒颈耻虫+尘测蝉辩濒5单机多实例安装文档
xuebao_zx
?
Ruby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for UbuntuRuby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for Ubuntu
MarsZ Chen
?
基于Ivy ant的java构建初探
基于Ivy ant的java构建初探基于Ivy ant的java构建初探
基于Ivy ant的java构建初探
Anson Yang
?
惭补惫别苍初级培训
惭补惫别苍初级培训惭补惫别苍初级培训
惭补惫别苍初级培训
Cody Zhang
?

More from OpenCity Community (20)

开源讲义.辫诲蹿
开源讲义.辫诲蹿开源讲义.辫诲蹿
开源讲义.辫诲蹿
OpenCity Community
?
物联网操作系统漫谈-骋滨础颁大会.辫诲蹿
物联网操作系统漫谈-骋滨础颁大会.辫诲蹿物联网操作系统漫谈-骋滨础颁大会.辫诲蹿
物联网操作系统漫谈-骋滨础颁大会.辫诲蹿
OpenCity Community
?
2017开源年会-公司开源那些事儿-更新.辫诲蹿
2017开源年会-公司开源那些事儿-更新.辫诲蹿2017开源年会-公司开源那些事儿-更新.辫诲蹿
2017开源年会-公司开源那些事儿-更新.辫诲蹿
OpenCity Community
?
社会化研发
社会化研发社会化研发
社会化研发
OpenCity Community
?
Containers & CaaS
Containers & CaaSContainers & CaaS
Containers & CaaS
OpenCity Community
?
OaaS:Open as a Strategy
OaaS:Open as a StrategyOaaS:Open as a Strategy
OaaS:Open as a Strategy
OpenCity Community
?
Docker openstack-2014
Docker openstack-2014Docker openstack-2014
Docker openstack-2014
OpenCity Community
?
Learn OpenStack from trystack.cn
Learn OpenStack from trystack.cnLearn OpenStack from trystack.cn
Learn OpenStack from trystack.cn
OpenCity Community
?
OpenStack系列公开课2 -20130508
OpenStack系列公开课2 -20130508OpenStack系列公开课2 -20130508
OpenStack系列公开课2 -20130508
OpenCity Community
?
OpenStack ecosystem
OpenStack ecosystemOpenStack ecosystem
OpenStack ecosystem
OpenCity Community
?
How to master OpenStack in 2 hours
How to master OpenStack in 2 hoursHow to master OpenStack in 2 hours
How to master OpenStack in 2 hours
OpenCity Community
?
Learn OpenStack from trystack.cn ——Folsom in practice
Learn OpenStack from trystack.cn  ——Folsom in practiceLearn OpenStack from trystack.cn  ——Folsom in practice
Learn OpenStack from trystack.cn ——Folsom in practice
OpenCity Community
?
Quantum Networks
Quantum NetworksQuantum Networks
Quantum Networks
OpenCity Community
?
云计算思考
云计算思考云计算思考
云计算思考
OpenCity Community
?
Openstorage Openstack
Openstorage OpenstackOpenstorage Openstack
Openstorage Openstack
OpenCity Community
?
翱辫别苍蝉迟补肠办的研究与实践
翱辫别苍蝉迟补肠办的研究与实践翱辫别苍蝉迟补肠办的研究与实践
翱辫别苍蝉迟补肠办的研究与实践
OpenCity Community
?
Open Stack Cheng Du Swift Alex Yang
Open Stack Cheng Du Swift Alex YangOpen Stack Cheng Du Swift Alex Yang
Open Stack Cheng Du Swift Alex Yang
OpenCity Community
?
狈辞惫补与虚拟机管理
狈辞惫补与虚拟机管理狈辞惫补与虚拟机管理
狈辞惫补与虚拟机管理
OpenCity Community
?
Look Into Libvirt Osier Yang
Look Into Libvirt Osier YangLook Into Libvirt Osier Yang
Look Into Libvirt Osier Yang
OpenCity Community
?
物联网操作系统漫谈-骋滨础颁大会.辫诲蹿
物联网操作系统漫谈-骋滨础颁大会.辫诲蹿物联网操作系统漫谈-骋滨础颁大会.辫诲蹿
物联网操作系统漫谈-骋滨础颁大会.辫诲蹿
OpenCity Community
?
2017开源年会-公司开源那些事儿-更新.辫诲蹿
2017开源年会-公司开源那些事儿-更新.辫诲蹿2017开源年会-公司开源那些事儿-更新.辫诲蹿
2017开源年会-公司开源那些事儿-更新.辫诲蹿
OpenCity Community
?
OpenStack系列公开课2 -20130508
OpenStack系列公开课2 -20130508OpenStack系列公开课2 -20130508
OpenStack系列公开课2 -20130508
OpenCity Community
?
How to master OpenStack in 2 hours
How to master OpenStack in 2 hoursHow to master OpenStack in 2 hours
How to master OpenStack in 2 hours
OpenCity Community
?
Learn OpenStack from trystack.cn ——Folsom in practice
Learn OpenStack from trystack.cn  ——Folsom in practiceLearn OpenStack from trystack.cn  ——Folsom in practice
Learn OpenStack from trystack.cn ——Folsom in practice
OpenCity Community
?
翱辫别苍蝉迟补肠办的研究与实践
翱辫别苍蝉迟补肠办的研究与实践翱辫别苍蝉迟补肠办的研究与实践
翱辫别苍蝉迟补肠办的研究与实践
OpenCity Community
?
Open Stack Cheng Du Swift Alex Yang
Open Stack Cheng Du Swift Alex YangOpen Stack Cheng Du Swift Alex Yang
Open Stack Cheng Du Swift Alex Yang
OpenCity Community
?

运维自动化

  • 1. Puppet 应用与架构 吴问志 网站:www.mysqlops.com/category/puppet 邮箱: puppetfans@sina.com 微博:puppetfans@sina.com
  • 2. puppet 介绍 ? 什么是 puppet ? 遵循 GPL 协义基于 ruby 语言开发的系统配置管理工具 ? 说明性语言表达系统,用库实现配置 ? 基于 C/S架构,配置客户端和服务端 ? puppt 对于系统管理员是抽象的,只依赖于 ruby 与facter. ? 默认情况下,客户端每 30分钟连接到 puppetmaster 分钟连接到puppetmaster 30分钟连接到 ? puppet 能做什么 puppet 能管理多达近 40多种资源管理,例如: file,user 能管理多达近40 40多种资源管理,例如: group, host,package,service,cron,exec,yumrepo 等。 ?. puppet 有个特殊的 Type,例如 Package,User等。
  • 4. Puppet 与其它自动化工具比较 ? puppet VS cfengine ? Puppet 设计的初衷用来管理结构化的软件包 ,服务,用户,组等资源 ? Cfengin 设计的初衷是用来管理文件 ? Puppet 是驱动模型。 ? - puppet 最底层是负责建模。 ? - 例如, freebsd 和 centos 的建立用户 ? Puppet 能隐式的处理资源之间依赖的关系。 ? - 例如 ,nginx 和 nginx.conf ? Puppet 是基于 ruby 语言开发 ? Cfengin 是基于 C语言开发
  • 5. Puppet 与其它自动化工具对比总结 puppet cfengine Puppet vs chef 安装配置简单 安装复杂需要 安装配置简单 安装配置比较复 依赖DB DB 杂 基于ruby开 基于c语言, 基于ruby,用户 使用的是ruby扩 发,Puppet 语法难懂,学 不熟悉ruby,也 展,需要用户熟 自有高级配置 习维护成本高 可以使用 悉ruby语言,入 语言 门难 备份恢复简单 备份恢复复杂 备份恢复简单 维护不方便 用于管理各种 重点用于管理 有众多开发者和 文档或者资料少 资源 文件 文档 底层负责建模 有更成熟悉商业 用户群相对少 模拟资源之间 经验 相互关系 更多功能 借鉴其思想,是 puppet一个分支
  • 6. Puppet 模型参考 ? Puppet 模型有三层,来源于 puppet 官方, puppet pro 也有详细介 绍,如下图
  • 7. Puppet 使用注意事项 ? 1.主机名使用 FQDN(全域名)格式命名 ,需要 DNS或者 hosts解析 ? 2.C/S两端时间要同步 ,SSL认证依赖于时间 ? 3.ssl认证过后,请不要修改主机名 ? 4. Usecachefaiure ? 5. 客户端如何运行指定的类( tagged) ? 6.节点可以继承,但不能多重继承 6.节点可以继承,但不能多重继承 ? 7.类可以继承与覆盖,子类可以向父类添加额外属性值 ? 8.puppet 支持多环境应用(开发,线上,测试) ? 9.tidy 资源中多条件关系是或者,而不是 and. ? 10.选择正确的版本
  • 8. Puppet 使用时注意事项 ? 从缓存的读取上个版本,并阻制所有的编译 ? Usecachefaiure 错误。只有在agent模式才会有问题 ? 导致问题: ? 如果代码有错误,你修改了,没有重启agent, 就会一直报错。 Tagged使用示例 ? node base inherits webbase_server { ? if tagged( “ base") { tagged(“ ? notify { "this will succeed": } -默认tagged是节点名称或者从父节点 ? } ? if tagged( “ webbase_server") { tagged(“ 继承过来的。 ? notify { "so will this": } ? } -一般来说版本号越高代表性能改进 ? } ? #puppet agent --test --tags base
  • 9. Puppet 使用时注意事项 ? 节点继承示例: ? node webserver inherits base { ? 类继承示例 ? …. ? class apache::port8000 inherits apache { ? ? … } ? 下面错误的多重继承示例 ? } ? node web1 inherits base, dbserver { ? 类的覆盖与添加额外的值 ? … ? class apache::ssl inherits apache { ? } ? file { "/etc/ssl/certs/cookbook.pem": ? 运行指定环境: ? source =>"puppet:///modules/apache/cookbook. ? puppet agent --test -- pem", environment=testing ? } ? Tidy 资源示例 ? Service["apache2"] { ? tidy { "/var/lib/puppet/reports": ? require +> ? age => "1w", File["/etc/ssl/certs/cookbook.pem"], ? Sise => “512k” 512k” ? } ? recurse => true, ? } ? }
  • 10. Puppet 使用时注意事项 ? 开源版本与公司版对比 ? 1. 用户图形接口 ? 2. 内置EC2 模块 ? 3. 内置vms ? 4. 配置管理-发现克隆 ? 5. 配置管理-操作系统 ? 6. 配置管理-用户账户管理 ? 7. 管理应用 ? 8.300+ 的内置模块 ? 9. 业务流程-自动化 ? 10.合法性-自动配置审记 ? 11.基于角色访问控制 ? 12.统一跨平台组件安装 ? 13.网络社区支持 ? 14.7 *24 技术支持和SLA (服务协议)支持 14.7* ? 15. puppetalbs 工程师认证 ? 16.依赖包在一个目录下 ? 17.平滑升级和维护支持
  • 11. Puppet架构与集群 ? Puppet 是 C/S架构,如下图: ? Puppet 集群方案 1.Puppet +nginx 2.Puppet +Passenger 3.Puppet +mongrel 4.Puppet+git
  • 12. Puppet架构与集群 ? Puppet 集群核心思想: ? 1).puppetmaster集群 ? - 分担 puppetmaster来自于客户端的请求压力 ,可以采取 Active ,Active 模式 . ? - 采取反向代理模式,将来自于 8140的端口请求分散多台 ? 2).puppet ssl 证书集群 ? -分担 puppetmaster的来自于客户端 ssl 证书的请求压力 , 采取 Active,Standby模式 . ? 3). 采取独立运行模式,绕开 puppetmaster单点 puppetmaster单点 ? -puppet +git 这种方式 ?