Puppet 自动运维企业实战
Puppet 是目前互联网主流三大自动化运维工具(Puppet、Ansible、Saltstack)之一,Puppet 是一
种 Linux、Unix 平台的集中配置管理系统,所谓配置管理系统,就是管理机器里面诸如文件、用户、进
程、软件包等资源,其设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。内容分介绍
Puppet 工作原理、Puppet 安装配置、企业资源案例讲解、Puppet 高可用集群配置、Puppet 批量更新
部署网站、Puppet+SVN 实现代码自动部署等。
Puppet 入门简介
Puppet 使用一种描述性语言来定义配置项,配置项中被称为”资源”,描述性语言可以声明你的配置
的状态,比如声明一个软件包应该被安装或者一个服务应该被启动用。
Puppet 可以运行一台服务器端,每个客户端通过 ssl 证书连接服务器,得到本机器的配置列表,然后更
加列表的来完成配置工作,所以如果硬件性能比较高,维护个管理上千上万台机器是非常轻松的,前提是
客户端机器的配置、服务器路径、软件需要保持一致。
在企业级大规模的生成环境中,如果只有一台 puppetmaster 压力会非常大,因为 puppet 是用
ruby 语言编写,ruby 是解析型语言,每个客户端来访问都要解析一次,当客户端服务器很多,会操作服
务器端压力很多,所以需要扩展成一个服务器集群组。
Puppetmaster 可以看作一个 web 服务器,实际上也是由 ruby 提供的 web 服务器模块来做的。
因此可以利用 web 代理软件来配合 puppetmaster 做集群设置,一般使用 Nginx+Puppet Master 整
合构建大型企业自动化运维管理工具,puppet 项目主要开发者是 Luke Kanies,目前为 puppet labs
CEO,Puppet 遵循 GPLv2 版权协议。
从 1997 年开始 Kanies 参与 UNIX 的系统管理工作,Puppet 的开发源于这些经验。因为对已有的
配置工具不甚满意,从 2001 年到 2005 年间,Kanies 开始在 Reductive 实验室从事工具的开发。很快
Reductive 实验室发布了他们新的旗舰产品。
Puppet 是开源的基于 Ruby 的系统配置管理工具,Puppet 工作流程为:puppet 是一个 C/S 结构,
所有的 puppet 客户端同一个服务器端的 puppet 通讯,每个 puppet 客户端每半小时(可以设置)连接一
次服务器端,下载最新的配置文件,并且严格按照配置文件来配置服务器,配置完成以后 puppet 客户端
可以反馈给服务器端一个消息,如果报错会给服务器端反馈一个消息。
Puppet 工作原理
要熟练掌握 Puppet 在企业生产环境中的应用,需要深入理解 Puppet 服务端与客户端详细的工作流程
及原理,如图 20-1(a)、20-1(b)所示,为 PuppetMaster 与 Agent 完整工作流程图:
评论0
最新资源