puppet入门与掌握之puppet介绍(介绍篇)

Puppet是开源的基于Ruby的系统配置管理工具,依赖于C/S的部署架构。主要开发者是Luke Kanies,遵循GPLv2版权协议。从1997年开始Kanies参与UNIX的系统管理工作,Puppet的开发源于这些经验。因为对已有的配置工具不甚满意,从2001年到2005年间,Kanies开始在Reductive实验室从事工具的开发。很快,Reductive实验室发布了他们的旗舰产品——Puppet。它使用简单且功能强大,正得到了越来越多地关注,现在很多大型IT公司均在使用puppet对集群中的软件进行管理和部署

一. Puppet的介绍

1. Puppet的用途

Puppet可以用来管理UNIX(包括OSX)和Linux平台,并且最近又添加了针对Microsoft Windows的支持。Puppet通常可以用来管理一台主机的整个生命周期:从初始化到安装、升级、维护以及最后将服务迁移并下架。Puppet被设计为能够持续与主机进行交互,而不是仅仅提供一个只负责搭建主机却并不管理它们的工具。                    官方的定义是这样的:Puppet是一个开源的新一代的集中化配置管理工具,它由自己所声明的语言表达系统配置,通过客户端与服务端之间的连接,维护着关系库。Puppet的设计目标是让Puppet成为一个由富有表现力的语言支撑的足够强大的库。这样只需要编写短短的几行代码的自动化应用程序即可实现设计目标。同时Puppet是开放的,允许添加任何新的功能。                                                              通常这样定义:Puppet是一个跨平台的集中化配置管理系统,它使用自有的描述语言,可管理配置文件、用户、Cron、软件包,系统服务等,Puppet把这些统称为“资源”。Puppet的设计目标就是简化对这些资源的管理以及妥善处理资源之间的依赖关系。

2. Pupput的特性

许多系统配置管理工具工作的方式非常类似,如cfengine。是什么让Puppet与众不同?Puppet的语法允许你创建一个单独脚本,用来在你所有的目标主机上建立一个用户。所有的目标主机会依次使用适用于本地系统的语法解释和执行这个模块。举例:如果这个配置是在Red Hat服务器上执行,建立用户使用useradd命令;如果这个配置是在FreeBSD主机上执行,使用的是adduser命令。Puppet另一个卓越的地方是它的灵活性。源于开源软件的天性,你可以自由的获得Puppet的源码,如果你遇到问题并且有能力的话,你可以修改或者加强Puppet的代码去适用于你的环境。另外,社区开发者和捐献者还在不断增强Puppet的功能。一个大的开发者和用户社区也致力于提供Puppet的文档和技术支持。

Puppet也是易于扩展的。定制软件包的支持功能和特殊的系统环境配置能够快速简单的添加进Puppet的安装程序中。

3. Puppet的工作模式

Puppet是一个C/S架构的配置管理工具,在中央服务器上安装puppet-server软件包(被称作Puppet master)。在需要管理的目标主机上安装puppet客户端软件(被称作Puppet Client)。

当客户端连接上Puppet master后,定义在Puppet master上的配置文件会被编译,然后在客户端上运行。每个客户端默认每半个小时和服务器进行一次通信,确认配置信息的更新情况。如果有新的配置信息或者配置信息已经改变,配置将会被重新编译并发布到各客户端执行。也可以在服务器上主动触发一个配置信息的更新,强制各客户端进行配置。如果客户端的配置信息被改变了,它可以从服务器获得原始配置进行校正。

Puppet拥有一个简单并且容易理解和实施的操作模型。这个模型由三部分组成:1.部署; 2.配置语言资源抽象层; 3.事务层,如下图所示:

1.1.1 部署

Puppet通常使用简单的客户端-服务端模型进行部署。服务端被称为"Puppet master",客户端软件被称为agent,主机本身则被定义为一个节点。如下图:

Puppet master在一台主机上以守护进程的方式运行,它包含了环境所需的所有配置。Puppet agent则通过一个使用标准SSL协议进行加密和验证的连接与Puppet master进行通信,然后接收或者"拉取"需要被应用的配置。很重要的一点是,Puppet agent在已经获得了需要的配置或者没有任何可以被应用的配置时不会做任何事情。这意味着Puppet只会在需要时对你的环境作出变更。这整个过程被称为一次配置运行。

每一个客户端既可以通过守护进程的方式来运行Puppet(比如使用cron),也可以手动启动。通常的做法是以守护进程的方式运行Puppet,并周期性地与master进行通信,以此来保证配置已经更新到最新并且能及时接收新的配置。不过,也有很多人觉得使用cron或者手动运行Puppet更符合他们的需求。

在默认情况下,Puppet agent会每30分钟与master进行一次通信,检查新添加的或者已改变的配置。你可以自行设定这个周期来适应你的环境。当然也存在其他部署模型。比如,Puppet也能抛开Puppet master以独立方式运行。在这种模式下,配置放置在被管理的主机上,然后通过手动运行puppet程序来执行和应用这些配置。我们将在稍后讨论这种模式。

时间: 2024-08-24 22:13:17

puppet入门与掌握之puppet介绍(介绍篇)的相关文章

puppet入门与掌握之puppet工作原理(原理篇)

对于puppet的的掌握,理解puppet的工作原理是一个必要的的阶段,只有在了解了puppet的工作原理后才能更好应用puppet,下面让我们一起了解学习puppet的工作原理: 说到puppet的工作原理,不得不从以下四个方面来说到,如下所示: (1)定义:使用Puppet特定的语言定义基础配置信息.通常我们把这些信息写在Modules中. (2)模板:在配置执行之前检测代码,但并不真正执行. (3)执行:定义的配置自动部署.检测并记录下所发生变化的部分. (4)报告:将期待的变化.实际发生

46 puppet master-agent模型、运维工具介绍及pxe环境的实现、cobbler简单实现、CentOS7 cobbler

01 puppet master-agent模型 配置环境 node1 192.168.1.131 CentOS7.2 node2 192.168.1.132 CentOS7.2 node3 192.168.1.133 CentOS7.2 node4 192.168.1.134 CentOS7.2 1.agent节点扩展为master节点 [[email protected] ~]# yum -y install puppet-server-3.8.4-1.el7.noarch.rpm [[em

Puppet C/S初探 site.pp文件介绍(十)

Puppet生产中常用的就是C/S架构./etc/puppet/manifests/site.pp文件是puppet站点导航文件,Agent访问Master的一切配置管理工作都有site.pp文件开始,site.pp文件作用是让Master载入并寻找Agent的配置信息.site.pp文件默认在/etc/puppet/manifests/目录中. manifests是puppet的资源清单目录,puppet的所有资源配置文件都以*.pp文件作为扩展名.manifests和site.pp文件的路径

(转)Android开发书籍推荐:从入门到精通系列学习路线书籍介绍

Android开发书籍推荐:从入门到精通系列学习路线书籍介绍 转自:http://blog.csdn.net/findsafety/article/details/52317506 很多时候我们都会不断收到新手的提问"Android开发的经典入门教材和学习路线?"."android 开发入门教程有哪些推荐?"等类似的问题,我们不断重复回答这些问题,这让我们萌生了做< Android开发书籍推荐:从入门到精通系列学习路线书籍介绍>的想法,整理收集开发大牛的

实战Puppet 集中配置管理系统(3)——Puppet dashboard与nginx+passenger安装配置

     本次实验内容紧接前两次实验,第一节内容主要介绍PUPPET的安装认证与资源定义,第二节主要写apache与nginx模块的应用,本次介绍Puppet dashboard与nginx+passenger 的安装,Puppet dashboard 是用以 web 方式管理 puppet.puppet 默认使用基于 Ruby 的WEBRickHTTP 来处理 HTTPS 请求,单个服务器使用Apache/Nginx+Passenger 替换掉 WEBRickHTTP,Passenger 是用

puppet报告系统dashboard以及puppet+nginx

Puppet Dashboard是由支持Puppet开发的公司Puppetlabs创建的,是Ruby on Rails程序.可以作为一个ENC(外部节点分类器)以及一个报告工具,并且正在逐渐成为一个包含许多Puppet新功能的集成界面,例如审计和资源管理功能. Puppet Dashboard是一个Ruby on Rails程序,用于显示Puppet master和agent的相关信息.它允许你查看从一个或多个Puppet master汇总的图形和报告数据.它同时从一个或者多个Puppet ma

Puppet整合Dashboard(一):Puppet整合Dashboard

一.安装配置Dshboard 1.功能说明 Puppet Dasshboard是由支持Puppet开发的公司Puppetlabs创建的,是Ruby on Rails程序: 可以作为一个ENC(外部节点分类器)以及一个报告工具,包含许多Puppet新功能的集成界面,例如审计和资源管理功能: 能显示Puppet master和agent的相关信息: 它能作为一个ENC来配置Puppet节点,并指定这些节点上的类和参数: Puppet Dashboard(1.2.3)程序目前版本只支持Ruby 1.8

Puppet整合SVN(三):Puppet整合SVN

1.检查 [[email protected] ~]# ll /etc/puppet/ 总用量 32 -rw-r--r--  1 root root 4178 11月  5 16:10 auth.conf -rw-r--r--  1 root root   11 11月  5 16:10 autosign.conf drwxr-xr-x  5 root root 4096 11月  5 16:10 environments -rw-r--r--  1 root root 1561 11月  5 

内存泄露从入门到精通三部曲之排查方法篇

内存泄露从入门到精通三部曲之排查方法篇 最原始的内存泄露测试 重复多次操作关键的可疑的路径,从内存监控工具中观察内存曲线,是否存在不断上升的趋势且不会在程序返回时明显回落.这种方式可以发现最基本,也是最明显的内存泄露问题,对用户价值最大,操作难度小,性价比极高. MAT内存分析工具 2.1 MAT分析heap的总内存占用大小来初步判断是否存在泄露 在Devices 中,点击要监控的程序. 点击Devices视图界面中最上方一排图标中的“Update Heap” 点击Heap视图 点击Heap视图