欢迎user
Puppet是开源的配置管理工具。其原理机制为:用户使用Puppet语言将需要对设备进行的配置写成脚本,保存到服务器中,再通过服务器把这些配置脚本下发到各网络设备,实现对网络设备的集中配置管理。
图1-1 Puppet网络架构
如图1-1所示,Puppet采用“服务器端/客户端”网络架构,服务器端称为Puppet master,客户端称为Puppet agent,Puppet master与Puppet agent之间使用通过SSL加密的连接进行通信。
Puppet master用于对Puppet agent进行集中管理,其主要功能如下:
· 以守护进程的方式运行,监听Puppet agent的请求。
· 建立连接时,对Puppet agent进行认证。
· 集中保存配置脚本,并根据用户要求将配置脚本下发到Puppet agent。
Puppet网络中,由Puppet master集中管理的设备称为Puppet agent。Puppet agent的工作过程如下:
(1) Puppet agent启动Puppet进程,并向Puppet master发起认证请求。
(2) Puppet agent周期性检查认证是否通过。如果认证通过,则与Puppet master建立连接。
(3) Puppet agent与Puppet master建立连接后,Puppet agent周期性向Puppet master发送请求获取新配置。
(4) Puppet agent获取到新配置,并将新配置与设备当前运行的配置进行对比,如果设备当前运行配置与获取的配置存在差异,则运行差异配置。
(5) Puppet agent完成配置后,向Puppet master反馈配置运行结果。
H3C设备作为Puppet agent运行,支持版本3.7.3。
Puppet使用Puppet语言定义配置项,各配置项的集合即为一个配置脚本。在Puppet中,配置项叫做资源。
Puppet划分了多个不同类型的资源,每个类型的资源都由名称和多个属性组成,每个属性对应功能的一个配置,属性值即为该配置应达到的状态。用户在对Puppet资源进行配置时,通过为不同属性赋值,从而指定设备应该达到的状态,而不需要关心如何达到这些状态。
H3C定义了一系列Puppet资源,Puppet master可以使用这些资源对设备进行配置。