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
时间: 2024-10-11 20:55:23