Puppet技术介绍

1 Puppet

Puppet是开源的配置管理工具。其原理机制为:用户使用Puppet语言将需要对设备进行的配置写成脚本,保存到服务器中,再通过服务器把这些配置脚本下发到各网络设备,实现对网络设备的集中配置管理。

1.1  Puppet网络架构

图1-1 Puppet网络架构

 

1-1所示,Puppet采用“服务器端/客户端”网络架构,服务器端称为Puppet master,客户端称为Puppet agentPuppet masterPuppet agent之间使用通过SSL加密的连接进行通信。

1.1.1  Puppet master

Puppet master用于对Puppet agent进行集中管理,其主要功能如下:

·              以守护进程的方式运行,监听Puppet agent的请求。

·              建立连接时,对Puppet agent进行认证。

·              集中保存配置脚本,并根据用户要求将配置脚本下发到Puppet agent

1.1.2  Puppet agent

Puppet网络中,由Puppet master集中管理的设备称为Puppet agentPuppet agent的工作过程如下:

(1)      Puppet agent启动Puppet进程,并向Puppet master发起认证请求。

(2)      Puppet agent周期性检查认证是否通过。如果认证通过,Puppet master建立连接。

(3)      Puppet agentPuppet master建立连接后,Puppet agent周期性向Puppet master发送请求获取新配置。

(4)      Puppet agent获取到新配置,并将新配置与设备当前运行的配置进行对比,如果设备当前运行配置与获取的配置存在差异,则运行差异配置。

(5)      Puppet agent完成配置后,向Puppet master反馈配置运行结果。

H3C设备作为Puppet agent运行,支持版本3.7.3

1.2  Puppet资源

Puppet使用Puppet语言定义配置项,各配置项的集合即为一个配置脚本。在Puppet中,配置项叫做资源。

Puppet划分了多个不同类型的资源,每个类型的资源都由名称和多个属性组成,每个属性对应功能的一个配置,属性值即为该配置应达到的状态。用户在对Puppet资源进行配置时,通过为不同属性赋值,从而指定设备应该达到的状态,而不需要关心如何达到这些状态。

H3C定义了一系列Puppet资源,Puppet master可以使用这些资源对设备进行配置。

附件下载

联系我们