SlideShare une entreprise Scribd logo
1  sur  14
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 集群架构图:

Contenu connexe

Tendances

2018 8 18_play_framework
2018 8 18_play_framework2018 8 18_play_framework
2018 8 18_play_frameworkLorn Jhu
 
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹wantingj
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & WindowsChu-Siang Lai
 
Hadoop平台搭建
Hadoop平台搭建Hadoop平台搭建
Hadoop平台搭建Liyang Tang
 
Varnish简介
Varnish简介Varnish简介
Varnish简介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旭 張
 
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介NodeJS基礎教學&簡介
NodeJS基礎教學&簡介GO LL
 
百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011Yiwei Ma
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应zhaolinjnu
 
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕ideawu
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践taobao.com
 
Node.js长连接开发实践
Node.js长连接开发实践Node.js长连接开发实践
Node.js长连接开发实践longhao
 
Centos下安装apache + subversion
Centos下安装apache + subversionCentos下安装apache + subversion
Centos下安装apache + subversionYiwei 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 Systemimacat .
 
Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacRuby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacMarsZ Chen
 

Tendances (20)

2018 8 18_play_framework
2018 8 18_play_framework2018 8 18_play_framework
2018 8 18_play_framework
 
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
 
MySQL aio
MySQL aioMySQL aio
MySQL aio
 
Hadoop平台搭建
Hadoop平台搭建Hadoop平台搭建
Hadoop平台搭建
 
Varnish简介
Varnish简介Varnish简介
Varnish简介
 
Koa 正在等一個人
Koa 正在等一個人Koa 正在等一個人
Koa 正在等一個人
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧
 
Deployment with Capistrano
Deployment with CapistranoDeployment with Capistrano
Deployment with Capistrano
 
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
 
百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应
 
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 
Node.js长连接开发实践
Node.js长连接开发实践Node.js长连接开发实践
Node.js长连接开发实践
 
Centos下安装apache + subversion
Centos下安装apache + subversionCentos下安装apache + subversion
Centos下安装apache + subversion
 
Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)
 
GNU Build System
GNU Build SystemGNU Build System
GNU Build System
 
Cvs
CvsCvs
Cvs
 
Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacRuby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for Mac
 

En vedette

Enhancing the intranet with gamification
Enhancing the intranet with gamificationEnhancing the intranet with gamification
Enhancing the intranet with gamificationAlex Manchester
 
Grafico diario del dax perfomance index para el 07 11-2013
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-2013Experiencia 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 roadRBS Economics
 
פרויקט בחוף בת ים
פרויקט בחוף בת יםפרויקט בחוף בת ים
פרויקט בחוף בת יםshartal10
 
LUDOPARCIAL - TUTORIAL
LUDOPARCIAL - TUTORIALLUDOPARCIAL - TUTORIAL
LUDOPARCIAL - TUTORIALAní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 MediaIb Potter
 
Top-Notch Slimmest Smartphones on Earth
Top-Notch Slimmest Smartphones on EarthTop-Notch Slimmest Smartphones on Earth
Top-Notch Slimmest Smartphones on EarthTechAhead
 
Informe 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 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 2017Delegació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 Estadistica
Universidad Nacional de Chimborazo   Proyecto de EstadisticaUniversidad Nacional de Chimborazo   Proyecto de Estadistica
Universidad Nacional de Chimborazo Proyecto de EstadisticaDario Pilco
 

En vedette (20)

Enhancing the intranet with gamification
Enhancing the intranet with gamificationEnhancing the intranet with gamification
Enhancing the intranet with gamification
 
Grafico diario del dax perfomance index para el 07 11-2013
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
 
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
 
פרויקט בחוף בת ים
פרויקט בחוף בת יםפרויקט בחוף בת ים
פרויקט בחוף בת ים
 
LUDOPARCIAL - TUTORIAL
LUDOPARCIAL - TUTORIALLUDOPARCIAL - TUTORIAL
LUDOPARCIAL - TUTORIAL
 
זרעים של הצלחה
זרעים של הצלחהזרעים של הצלחה
זרעים של הצלחה
 
AgTechXChange
AgTechXChangeAgTechXChange
AgTechXChange
 
Digital Marketing and Social Personal Media
Digital Marketing and Social Personal MediaDigital Marketing and Social Personal Media
Digital Marketing and Social Personal Media
 
Top-Notch Slimmest Smartphones on Earth
Top-Notch Slimmest Smartphones on EarthTop-Notch Slimmest Smartphones on Earth
Top-Notch Slimmest Smartphones on Earth
 
Informe 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 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
 
Technology & Us
Technology & UsTechnology & Us
Technology & Us
 
OXO Soluitions
OXO SoluitionsOXO Soluitions
OXO Soluitions
 
กรอบไทย
กรอบไทยกรอบไทย
กรอบไทย
 
أحدث اختراعات العالم
أحدث اختراعات العالمأحدث اختراعات العالم
أحدث اختراعات العالم
 
Daily Newsletter: 18th July, 2011
Daily Newsletter: 18th July, 2011Daily Newsletter: 18th July, 2011
Daily Newsletter: 18th July, 2011
 
News A 40 2016
News A 40 2016News A 40 2016
News A 40 2016
 
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
 
Rump : iOS patch diffing
Rump : iOS patch diffingRump : iOS patch diffing
Rump : iOS patch diffing
 
Universidad Nacional de Chimborazo Proyecto de Estadistica
Universidad Nacional de Chimborazo   Proyecto de EstadisticaUniversidad Nacional de Chimborazo   Proyecto de Estadistica
Universidad Nacional de Chimborazo Proyecto de Estadistica
 
El pronombre
El pronombreEl pronombre
El pronombre
 

Similaire à 运维自动化

Puppet的使用与管理
Puppet的使用与管理Puppet的使用与管理
Puppet的使用与管理Elain Ding
 
Puppet安装测试
Puppet安装测试Puppet安装测试
Puppet安装测试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服务器部署标准 newYiwei Ma
 
使用Lua提高开发效率
使用Lua提高开发效率使用Lua提高开发效率
使用Lua提高开发效率gowell
 
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShopDocker容器微服務 x WorkShop
Docker容器微服務 x WorkShopPhilip 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 HeHui Cheng
 
02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践Na Lee
 
Kissy design
Kissy designKissy design
Kissy designyiming he
 
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorialazole Lai
 
Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档xuebao_zx
 
Ruby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for UbuntuRuby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for UbuntuMarsZ Chen
 
基于Ivy ant的java构建初探
基于Ivy ant的java构建初探基于Ivy ant的java构建初探
基于Ivy ant的java构建初探Anson Yang
 
Maven初级培训
Maven初级培训Maven初级培训
Maven初级培训Cody Zhang
 

Similaire à 运维自动化 (20)

Puppet的使用与管理
Puppet的使用与管理Puppet的使用与管理
Puppet的使用与管理
 
Puppet安装测试
Puppet安装测试Puppet安装测试
Puppet安装测试
 
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理
 
Track2 -何斌--openstack 在京东的应用实践
Track2 -何斌--openstack 在京东的应用实践Track2 -何斌--openstack 在京东的应用实践
Track2 -何斌--openstack 在京东的应用实践
 
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践
 
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
 
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制
 
OSGi Small Lab
OSGi Small LabOSGi Small Lab
OSGi Small Lab
 
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 new
 
使用Lua提高开发效率
使用Lua提高开发效率使用Lua提高开发效率
使用Lua提高开发效率
 
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShopDocker容器微服務 x WorkShop
Docker容器微服務 x WorkShop
 
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
 
02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践
 
Kissy design
Kissy designKissy design
Kissy design
 
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorial
 
Baidu Cloud Foundry
Baidu Cloud FoundryBaidu Cloud Foundry
Baidu Cloud Foundry
 
Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档
 
Ruby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for UbuntuRuby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for Ubuntu
 
基于Ivy ant的java构建初探
基于Ivy ant的java构建初探基于Ivy ant的java构建初探
基于Ivy ant的java构建初探
 
Maven初级培训
Maven初级培训Maven初级培训
Maven初级培训
 

Plus de OpenCity Community

Plus de OpenCity Community (20)

开源讲义.pdf
开源讲义.pdf开源讲义.pdf
开源讲义.pdf
 
物联网操作系统漫谈-GIAC大会.pdf
物联网操作系统漫谈-GIAC大会.pdf物联网操作系统漫谈-GIAC大会.pdf
物联网操作系统漫谈-GIAC大会.pdf
 
2017开源年会-企业开源那些事儿-更新.pdf
2017开源年会-企业开源那些事儿-更新.pdf2017开源年会-企业开源那些事儿-更新.pdf
2017开源年会-企业开源那些事儿-更新.pdf
 
社会化研发
社会化研发社会化研发
社会化研发
 
Containers & CaaS
Containers & CaaSContainers & CaaS
Containers & CaaS
 
OaaS:Open as a Strategy
OaaS:Open as a StrategyOaaS:Open as a Strategy
OaaS:Open as a Strategy
 
Hello openstack 2014
Hello openstack 2014Hello openstack 2014
Hello openstack 2014
 
Docker openstack-2014
Docker openstack-2014Docker openstack-2014
Docker openstack-2014
 
Learn OpenStack from trystack.cn
Learn OpenStack from trystack.cnLearn OpenStack from trystack.cn
Learn OpenStack from trystack.cn
 
OpenStack系列公开课2 -20130508
OpenStack系列公开课2 -20130508OpenStack系列公开课2 -20130508
OpenStack系列公开课2 -20130508
 
OpenStack ecosystem
OpenStack ecosystemOpenStack ecosystem
OpenStack ecosystem
 
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
 
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
 
Quantum Networks
Quantum NetworksQuantum Networks
Quantum Networks
 
云计算思考
云计算思考云计算思考
云计算思考
 
Openstorage Openstack
Openstorage OpenstackOpenstorage Openstack
Openstorage Openstack
 
Openstack的研究与实践
Openstack的研究与实践Openstack的研究与实践
Openstack的研究与实践
 
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
 
Nova与虚拟机管理
Nova与虚拟机管理Nova与虚拟机管理
Nova与虚拟机管理
 
Look Into Libvirt Osier Yang
Look Into Libvirt Osier YangLook Into Libvirt Osier Yang
Look Into Libvirt Osier Yang
 

运维自动化

  • 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 这种方式 �