Puppet

本文深入探讨了Puppet作为Linux、Unix平台的集中配置管理系统的工作原理,包括其使用自有的Puppet描述语言进行资源管理的功能特性,以及Puppet同步机制的实现方式,包括周期性同步和触发同步两种模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

puppet是一种LinuxUnix平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。

  puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端下载最新的配置文件,并且严格按照配置文件来配置服务器配置完成以后,puppet客户端可以反馈给服务器端一个消息如果出错,也会给服务器端反馈一个消息.

1. Puppet元数据描述定义

资源定义:

默认提供的类型

文件,cron,服务,用户,用户组,软件包,执行文件,通知(写在日志)

变量:

  • l 自定义变量
  • l 系统变量
  1. n Facter根据本地环境生成一系列的key-value,可在资源定义中直接使用
  2. n 可以通过Ruby扩展自己的Facter

模块和类:

可把资源文件定义成类。方便代码重用。而且类和函数是支持参数的。

其描述语言的其它特点:

  • 支持资源直接的依赖关系
    • 比如user依赖某个groupcron依赖某个文件,服务依赖某个配置文件(自动重启)
  • 支持条件关系
    • Case, 正则表达等来根据环境设置变量
  • 支持模板
    • 支持条件和变量生成目标文件,典型应用可用于根据环境生成配置文件




2. Puppet同步

2.1. C/S方式的同步

PuppetMaster默认是用Ruby自带的WEBbrick通过http提供资源同步或者rest操作功能。为了更好的性能,你可以使用Mongrel或者PassengerApache Extension)提供服务

执行过程是根据资源定义和他们的依赖关系,变量,条件逻辑等编译成Catalog(特定顺序的资源列表),然apply顺序执行。

同步的方式

  • l 周期性同步 

Puppet Agent根据配置定时从Master上边通过http同步自己定义的

  • l 触发同步

对指定的一批主机通过mcollective触发他们跟master同步

2.2. 无中心同步

通过rsync, git等手段去同步,然后通过cron来apply客户机上应用。

3. 相关

Mcollective

集群管理工具,可把一个请求传递到集群的所有服务器上。

扩展性好,你可以使用你自己的插件来替换他的插件,比如用AMQP替换STOMP;序列化等功能

初步看其描述,它实现上是基于订阅系统中间件的,所以理论扩容等操作相当透明和简单。 (如果实际就是这样的话,那server只是一个配置中心和发布事件的中心)


Puppet和Mcollective目前都没有找到他们完整的进程或者架构图,所以暂时无法了解具体运行场景和流程如何。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值