第一课:Puppet 入门介绍
目前存在多个不同的配置管理软件,各有优劣,本届课程做简要介绍对比,讲解puppet基本原理和入门知识。
课程内容:
运维自动化软件简要介绍和对比
Puppet安装(master/agent,standalone模式),升级,主要配置选项简要介绍,支持系统和平台,Ruby环境依赖(RVM简要介绍)。
基本工作原理,编译和catalogs。
核心配置文件。
puppet的第一个基本配置文件。
第二课:Puppet基本命令和语法
puppet实现了自己的DSL,本节课讲解puppet的语法。
课程内容:
puppet基本命令
语法风格。
保留关键字,命名规范
变量(作用域),数据类型
表达式,条件语句
functions(函数/方法)
检查puppet配置的命令。
第三课:资源和资源类型
puppet的资源是整个puppet配置更为核心的地方,puppet对整个系统的管理主要依赖于资源实现。本节课程讲解puppet资源和资源类型。
课程内容:
介绍RAL(Puppet’s resource abstraction layer),types和providers。
讲解puppet资源和资源类型,核心资源类型。
获取当前系统的存在资源和资源类型,manifest,并创建自己的puppet资源配置文件。
资源顺序 ordering(元参数,order关键字, stage,auto-order)。
资源默认值。
资源标签。
虚拟资源,导出资源。
第四课:Puppet 类,模块,模版
puppet通过一定的抽象实现来对某一类特定资源进行管理,比如ssh,会包括配置管理和服务管理,软件包管理几个部分,如何抽象出成为一个‘组合’(module),如何适应不同的操作系统,如何抽象配置文件,实现代码重用。
课程内容:
无参数类,有参数类,命名空间。
资源收集器。
puppet模块。
文件和ERB模版,ERB模版语法。
defined types。
第五课:Facts和Hiera
facts为puppet提供了节点级别的metadata,使得puppet可以根据 facts进行个性化的配置,比如是否是云服务器,就可以针对性的对主机进行配置变更优化和升级等等操作。除了puppet自带核心facts,也会涉及到如何自定义facts,来进一步增强puppet的功能。
如何重用已有的Puppet代码,如何隔离敏感数据和配置(Hiera)。
课程内容:
facts(内置变量)
自定义facts
hiera介绍和使用
结合hire和facts以及环境变量。
第六课:节点管理
日常工作中会有不同类型的服务器,有的是物理服务器,有的是云服务器;有的是db服务器,有的是web服务器;那么如何进行有效节点管理/分类也成为我们眼前的一个难题,本节课讲解节点分类的常见方法。如何有效的进行不同维度的节点管理。 比如,如何巧用环境变量来区分开发和测试环境,不同服务器的角色。
课程内容:
fqdn节点匹配,正则表达式匹配
外部节点分类器(ENC)
结合puppet环境变量和hiera,custom facts,自定义节点分类器(self-classifier)
第七课:大规模部署 和 版本控制
实际工作中可能有成百上千,成千上万台服务器需要管理维护,比如由于安全漏洞,要升级openssl到特定版本,本节课如何大规模部署puppet,同时在大规模集群环境下如何提高puppet的性能,puppet的架构如何扩展。
课程内容:
如何结合版本控制,环境变量,管理puppet的代码。
puppet master节点瓶颈和扩展。
自动签名。
文件资源管理优化。
第八课:Puppet 其它组件介绍
有些时候我们并不需要每一个模块都自己编写,我们也可以借鉴已有的代码,如何迅速高效高质量完成工作是我们的目标,本节课讲解如何借助已有的代码迅速增加自己的puppet模块。
有些时候我们需要不同agent节点共享其它节点的数据,比如db服务器的需要添加web节点ip作为白名单。
有些时候我们需要一些额外的功能,比如facts里面的某些配置是true 或者 false,但是是字符串变量,如何转换成为boolean类型呢?
课程内容:
Puppet DB 和导出资源。
Puppet Dashboard。
Puppet Forge。
Puppet stdlib。
第九课:puppet整合实战
以具体业务系统讲解实际环境puppet配置管理。本节课内容会包含多个模块设计和编码。
第十课:Mcollective
并行作业执行系统,运维工程需要经常临时执行一些命令以便检查所有服务器特定文件内容,或者特定运行指标,甚至是下载特定文件等等,使用mco可以根据预定义的factor甚至是自定的特征批量执行任务命令。
课程内容:
mco 配置和使用。
|