Puppet 应用与架构

Similar documents
puppet 简介 3 puppet 是什么 3 Hello world 4 puppet 安装 5 debian 系发行版安装 puppet 5 redhat 系发行版安装 puppet 5 源代码安装 puppet 6 配置 c/s 模式的 puppet 试验环境 6 puppet 语法 8 资

introduction-to-puppet

OTRS用户手册

PowerPoint 演示文稿

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

自由軟體教學平台

自由軟體教學平台

0 配置 Host MIB 设备 V ( 简体版 ) 0 Update: 2016/1/30

A9RF716.tmp

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数


自我介绍 守住每一天 SinaEdge 运维主管 LinuxTone 创始人之一 2009 年编写 Nagios 完整配置文档 2011 年编写 Puppet 集中化管理爱好 : 骑行

自由軟體教學平台

Microsoft Word - FPKLSC_21.docx

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

Unix®t Œ fi z.PDF

案例分享产品文档

升 级 过 程 概 述 Cisco 集 中 无 线 网 络 架 构 中,AP 工 作 在 瘦 AP(LAP) 模 式 LAP 关 联 到 无 线 控 制 器 (WLC), 控 制 器 管 理 着 配 置 软 件 升 级 以 及 802.1X 认 证 等 控 制 处 理 ; 此 外, 控 制 器 还

摘 要 1. GSLB: 全 局 负 载 均 衡 2. SLB: 服 务 器 负 载 均 衡 四 层 交 换 LVS 七 层 交 换 Nginx 3. Heartbeat 实 现 HA 4. MySQL 数 据 库 集 群 5. 集 群 环 境 下 的 存 储 备 份 6. 集 群 的 监 控 及

Microsoft Word - E_aero_LearnResource.doc

05_資源分享-NFS及NIS.doc

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

NA-001/F-V2縲€繧ス繝輔ヨ繧ヲ繧ァ繧「讖溯・莉墓ァ俶嶌

Microsoft Word - linux命令及建议.doc

7. 小 星 星 一 閃 一 閃 亮 晶 晶, 滿 天 都 是 小 星 星 ; 掛 在 天 空 放 光 明, 好 像 許 多 小 眼 睛 ; 一 閃 一 閃 亮 晶 晶, 滿 天 都 是 小 星 星

OTRS用户手册

本文由筱驀釹贡献

目 录(目录名)

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

ebook62-1

ansoft_setup21.doc

Oracle Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE "P

壹:教育文化公益慈善機關或團體免納所得稅適用標準


ch08.PDF

像 客 样 使 命令行 徐 东

项目采购需求编写模板

64 [ 46 ] (p297) 1924 :? [ 47 ] (p570) ; ; ; ; ; ; ; ; ; ; ; [ 11 ]; [ 35 ] [ 49 ] [ 32 ] ( ) [ 48 ] (p 425) [ 50 ] (p 670 6

PowerPoint Presentation

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1.

勞動條件檢查執行重點(雲林)_ [相容模式]

醋 水 法 在 水 盆 內 放 入 約 七 分 滿 的 水 與 1/2 到 1 小 杯 的 醋 量, 將 髒 襪 子 浸 泡 一 晚, 隔 天 再 丟 入 洗 衣 機, 就 能 洗 得 相 當 乾 淨 醋 有 殺 菌 除 臭 和 漂 白 功 效, 使 用 過 的 醋 水, 還 可 清 理 地 板,

穨 PDF

Microsoft Word - 完全手冊-課程.doc

第一冊 第四章 分裂與再統一 班級 座號 姓吊

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

目 录(目录名)

untitled

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

epub83-1

Microsoft Word - 2B802內文.doc

東區校園中法治教育種子師資教學研習營

閱 讀 素 材 V.S 分 組 方 式 的 差 異 化 教 學 工 具 表 班 級 :( ) 閱 讀 素 材 V.S 分 組 方 式 獨 立 閱 讀 夥 伴 閱 讀 ( 同 質 性 ) 夥 伴 閱 讀 ( 異 質 性 ) 友 善 陪 伴 虛 心 受 教 國 語 日 報 新 聞 生 活 文 藝 兒 童

Microsoft Word - 1HF12序.doc

Microsoft Word - 讀報看科普─人體篇_橫_.doc

鍟嗗搧瑙傚療鈥㈤挗鏉

席 远 杨 一 人 了, 正 当 她 开 枪 时 却 发 现 子 弹 没 了 该 死, 只 能 赤 手 空 拳 了 洛 水 云 与 席 远 杨 交 起 手 来, 洛 水 云 出 手 招 招 致 命 想 那 席 远 杨 也 不 是 泛 泛 之 辈, 很 快 掌 握 了 洛 水 云 出 招 路 数 看

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

目 录(目录名)

快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实

无类继承.key

2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / SunSun MicrosystemsSun

资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用

Microsoft PowerPoint - ch6 [相容模式]

德阳市文化馆​德阳市作协举办儿童诗人杨一郎诗集《初心》座谈交流会

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明

“2010年全国职业院校技能大赛”高职组

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

华恒家庭网关方案


untitled

1

Linux服务器构建与运维管理

1 SQL Server 2005 SQL Server Microsoft Windows Server 2003NTFS NTFS SQL Server 2000 Randy Dyess DBA SQL Server SQL Server DBA SQL Server SQL Se

CA 性能管理 Data Aggregator 安装指南 - 命令行

Simulator By SunLingxi 2003

目錄

linux_for_campus

最 佳 做 法 : 在 需 要 时 或 需 要 前 从 CDN 下 载 内 容, 并 使 它 们 与 Flash 代 码 和 文 件 分 离 存 盘 率 vs 响 应 速 度 当 用 户 玩 游 戏 时, 客 户 端 可 以 把 每 一 个 变 化 实 时 写 到 后 端 Web 服 务 器, 也

全国计算机技术与软件专业技术资格(水平)考试

epub 61-2

untitled

江 汉 大 学 学 报 总 第 28 卷 类 直 抒 胸 臆 的 无 功 利 创 作, 心 情 不 好 写 虐 文 泄 愤 心 情 好 时 写 脱 线 文 挥 洒 把 其 他 作 品 中 自 己 喜 欢 的 人 物 塑 造 成 完 美 形 象 不 喜 欢 的 人 物 贬 损 到 极 点 5 而 在

untitled

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0

自动化运维

Microsoft Word - PS2_linux_guide_cn.doc

PowerPoint 演示文稿

active phisical rp address: backup phisical rp address: 截取部分 TOPO 图说明到 不通的问题 : internet internet tengige 0/0/0/0 tengige

RunPC2_.doc

第零章、為何要學作業系統

温州市政府分散采购

Windows 2000 Server for T100

软件工程文档编制

Chapter #

untitled

SQL Server SQL Server SQL Mail Windows NT

SP_ SP_03 JAVA...6 SP_10 SQL...8 SP_ SP_ SP_ SP_ SP_ SP_ SP_ SP_04.NET...33 SP_02 C...37 SP_05

Transcription:

Puppet 应用案例 吴问志 网站 :www.mysqlops.com/category/puppet 邮箱 : puppetfans@sina.com 微博 :puppetfans@sina.com

引言 机器越来越多 架构越来越复杂 应用越来越多且复杂 审记越来越难

内容概要 1.puppet 介绍 - 什么是 puppet - puppet 能做什么 - puppet 如何做到 - puppet 主要概念 2.puppet 基础 - puppet 基本语法 - puppet 目录结构 - puppet 命名规范 - puppet 日常使用 - puppet 使用注意事项 3.puppet 应用案例 -puppet 管理用户 -puppet nginx 管理 -puppet kick 介绍 4.puppet 架构与集群 -puppet 架构 -puppet 集群方案 - puppet 集群核心思想 -puppet 性能测试方法 5. QA -puppet 未来

puppet 介绍 什么是 puppet 遵循 GPL 协议 (2.7.0 以前 ), 基于 ruby 语言开发的系统配置管理工具 OOP facter 常用于 C/S 架构, 配置客户端和服务端, 也可以独立运行 puppet 对于系统管理员是抽象, 只依赖于 ruby 与 facter. facter -tp kernel: 18.76ms hostname: 19.05ms 默认情况下客户端每隔 30 分钟连接到 puppet 服务端 puppet 能做什么 puppet 能管理多达 40 多种资源, 例如 file, package, service,cron,exec

Facter 介绍 Facter 是什么 facter 是内置的 puppet 工具, 它提供的一个标准方式去获得客户端环境变量等相关信息 Facter 能获得哪些信息 #facter -p architecture => x86_64 id => root interfaces => eth0,lo ipaddress => 192.168.200.63 ipaddress_eth0 => 192.168.200.63 ikernprocessor0 => Intel(R) Xeon(R) CPU E5405 @ 2.00GHz prouptime => 27 days uptime_days => 27 uptime_hours => 651 uptime_seconds => 2344200 注 : 这些变量可以直接来使用, 例如 : {$::ipaddress 或者 $::ipaddress 当然你也可以自定义 fact, 需要使用 ruby 来编写

puppet 是如何工作的

puppet 工作流程 注 : 内部处理过程是抽象的

Puppet 主要概念 Puppet 参考模型 package { "nginx": ensure => installed,

Puppet 命名规范 $test= Test $string= puppetfans class { nginx::vhost:8081 : 使用 split 创建数组 : $package = puppet puppet-server ruby-doc" $soft = split($package, ) 变量名必须要小写字母开头, 可以包含下划线, 数字, 大写字母也可以以 :: 来分隔 例 :notify ${test ${::test scope.lookupvar ( test ) 不可以使用 puppet 保留的关键字 例如 :if..else,true, undef,string 类名 : 建议以名称加功能来区分不可以使用保留的类名 :main,settings 模块名一定要包括类名模块是代码和数据的结合, 所有 manifest 文件都属于模块, 唯一例外的是 site.pp define VS class define 用来函数来管理资源,define 可以建个实例, 但实例名称不能相同, 而且不需要 include 任意资源 class 是资源的集合, 类可以 include 多次

Puppet 基础 单个类 :class ntp { 类继承 :class nginx80 inherits nginx {... 选择器 : $systemtype = operatingsystem? { "Ubuntu" => "debianlike", "RedHat" => "redhatlike", 数组 : $package = [ ruby","ruby-doc"] hash: $name1 = { ou => sh,co=> bj case 语句 : case $operatingsystem { "Debian": { include debianlike "RedHat", "CentOS": { include redhatlike 条件语句 : if $username == "puppetfans" { notice("running by puppetfans") else { notice("running by others.") 变量 : $test= puppetfans

puppet 目录结构与模块介绍 puppet 目录结构 ( 右一 ) 注 :manifests/site.pp 必须存在 puppet 模块结构 ( 右二 ) files: 发布的静态文件 manifests: 告诉模块是如何工作的 templates: 基于 ruby 的动态模板 lib: 有关 ruby 的库 注 : manifests/init.pp 必须存在

Puppet 日常使用 一般用法 puppet agent --test --server hostname Puppet agent --test Exec { command=> ps -ef grep 'puppet agent' grep -v grep awk {'print \$2' puppet agent test server --tags nginx puppet kick -p 10 host hostname 调试用法 puppet agent --test --server hostname -- debug --trace 调试输出 puppet agent --test --noop 预运行 puppet apply -e include class { test : 执行单个类 notify { hi,puppetfans 输出到屏幕 notice { running on node $fqdn" 输出到日志 /var/log/message Exec { withpath => true, logoutput => on_failure, 输出资源完整路径并记录执行错误输出

Puppet 使用注意事项 1.puppet 主机名需要规范, 使用 DNS 或者 hosts 解析 2.C/S 两端时间要同步,SSL 认证依赖于时间 3.ssl 认证过后, 请不要修改主机名 4.Usecachefaiure 5.tag 和 tagged 6. 节点可以继承, 但不能多重继承 7. 类可以继承与覆盖, 子类可以向父类添加额外属性值 8.puppet 支持多环境部署 ( 分 : 开发 测试 线上 ) 9.tidy 资源中多条件关系是或者, 而不是 and 10. 选择正确的版本

Puppet 使用时注意事项 1. 节点设置 tag tag("old-slow-server") if tagged("old-slow-server") { notify { "this will succeed": 2. 对资源设置 tag 1, 类继承示例 class nginx::port81 inherits nginx {... 错误示例 class nginx::port81 inherits nginx,apache {... file { "/etc/ssh/sshd_config":... notify => Service["ssh"], tag => "ssh", # puppet agent --test --tags ssh 子类向父类添加额外属性 Service["nginx"] { require +> File[/"etc/nginx/conf.d/nginx81. conf"],

Puppet 的应用案例 Puppet 管理用户 ( 关于 : 管理用户的几点说明 1 a. puppet 支持 ldap 以及 nis 集中认证 2 b.puppet 支持用户密码管理, 最好以 ''( 单引号 ) 括起来 3 c. puppet 创建用户的默认是不建用户家目录的, 需要使用 managerhome=>true d. 可以结合其它资源类型, 实现批量增加用户或者删 ; 除用户 ssh key 例 :ssh_authorized

puppet 虚拟资源 以 @ 为前缀 使用虚拟资源需要配置 storeconfig 虚拟资源使用场景 多个资源需要引用共同的某个资源实例, 例如 A 用户是 SA, 又是 DBA

puppet nginx 应用案例 Exec 有条件的执行 : creates: 指定命令所生成的文件那么命令只会在所指定的文件不存在的情况的被执行 unless: 所设定的命令返回 0 时才执行 onlyif: 只会在 onlyif 设定的命令返回 0 时才执行 refreshonly: 触发刷新动作 资源之间依赖关系 : before after require notify subscribe Refreshonly 和 refresh 的区别 refreshonly: 收到多少次通知, 就执行多少资源 refresh: 不管有多少次通知, 请执行一次

puppet +kick puppet kick: 主动强制客户端运行 puppet agent. 注意 :puppet kick 并不关心客户端 puppet agent 有没有执行错误, 它成功 连接到 agent 即返回退出 0.

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 的端口请求分散到多台 puppetmaster 2).puppet ssl 证书集群 - 分担 puppetmaster 来自于客户端 ssl 证书的请求压力, 采取 Active,Standby 模式. 3). 采取独立运行模式, 通过 git 将代码 push 到客户端, 客户端本地执行 相应代码

Puppet 架构与集群 a.puppetmaster 集群架构图

Puppet 架构与集群 puppetca 集群架构图 :

puppetmaster 并发性能测试方法 默认 :centos 系列 puppet-load.rb 在 /usr/share/puppet/ext 目录下 测试 puppetmaster 性能 :./ext/puppet-load.rb - --debug --node client2.test.com --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 参阅 : http://www.masterzen.fr/2010/10/18/benchmarking-puppetmaster-stacks/

puppet 未来 项目地址 : https://github.com/puppetlabs/puppetlabs-openstack https://github.com/bcarpio/puppet-hadoop https://github.com/jamtur01/puppetlabs-cloudfoundry https://github.com/puppetlabs/razor

puppet 应用 QA 1. 客户端是如何使用? node default { include nginx 2. 文件备份 a.backup 决定文件的内容在被修改前是否进行备份 b. 文件服务器 a. 默认是备份到远程 filebucket { main: server => "puppet" File { backup => main 默认保存在 / /var/lib/puppet/clientbucket b. 备份到本地 filebucket { 'sky' : path=>"/data/backup", File { backup=>sky 文件备份示例 : 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/c07d0aa2d43d58ea7b5c5307f5 32a0b1/contents /etc/sudoers puppet 同步大文件可以使用 rsync 模块