第一篇puppet

1,什么是puppet

puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置客户端. 配置完成以后,puppet客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息

puppet模型由三部分组成

1 部署

2 配置语言和资源抽象层

3事务层

1.1.1部署

服务端称为puppet master,客户端称为agent端,puppet master在一台主机上守护进程的方式运行,包含所有的配置文件。agent通过标准的ssl加密和验证的连接与puppet master通信连接,接受或者拉取需要配应用的配置。

默认情况下,agent会30分钟与puppet master进行一次通信,检查新添加的主机或者新的配置。

1.1.2配置语言

配置语言小例子:

安装vim包 一个puppet的资源结构

1 类型{标题:
2     属性 => 值,
3 }

具体实例:

1 package{"vim":
2      ensure => present,
3 }

 puppet默认提供很多资源类型,可以来管理文件,服务,软件包,以及计划任务等等。

上边的例子我们指定了属性ensure,他的值为present,ensure来指明软件包的状态,已安装,已卸载,present是告诉puppet来安装这个包,卸载的话是absent

1.1.3资源抽象层

当一个agent连接master的时候Puppet使用一个叫做Facter的工具来返回agent的信息,其中包含了操作系统,然后puppet会根据操作系统来选择合适的软件包管理工具,最后puppet会向puppetmaster汇报资源是否配置成功。

1.1.4事务层

puppet事务过程涉及每一台主机的配置过程

解释和编译配置

将编译好的配置同步到agent

在agent上面应用配置

向master汇报结果

学习puppet的网址:

http://kisspuppet.com/2014/03/04/puppet_learning_base2/

http://www.kancloud.cn/wizardforcel/puppet-27-cookbook

 

posted @ 2016-11-14 12:00  Dicky_Zhang  阅读(325)  评论(0编辑  收藏  举报