您的位置:首页 > 其它

puppet学习笔记1

2017-08-08 10:53 211 查看

一、puppet基础知识

1、官方网址:http://puppet.wikidot.com 中文 wiki

2、现有集中管理系统简介

puppet(ruby)--行业老大

ansible(python)--无需客户端,易用,中国国内比较火

saltstack(python)--阿里使用

3、puppet简介

puppet 是一个典型的配置管理工具, C/S和星型结构. 所有的puppet 客户端同一个服务器端的puppet通讯。每个puppet 客户端每半小时(可以设置)连接一次服务器端,下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,puppet 客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息. 下图展示了一个典型的 puppet 配置的数据流动情况。

 

 

 

4、puppet的细节和原理

    puppet 的目的是集中管理目标,而忽略实现的细节,例如命令名,参数或者文件格式. puppet把系统里面的用户,软件包,服务看作是"资源", puppet 的作用就是管理这些资源

以及资源之间的相互联系.

 

    puppet 采用了非常简单的 C/S 架构,所有数据的交互都通基于SSL 进行,以保证安全。它的工作流程如图所示:

 

1) 客户端 Puppetd 向 Master 发起认证请求,或使用带签名的证书。

2) Master 告诉 Client 你是合法的。3. 客户端 Puppetd 调用 Facter,Facter 探测出主机的一些变量,例如主机名、内存大小、IP 地址等。Puppetd 将这些信息通过 SSL 连接发送到服务器端。

3) 服务器端的 Puppet Master 检测客户端的主机名,然后找到 manifest 对应的 node 配置,并对该部分内容进行解析。Facter 送过来的信息可以作为变量处 理,node 牵涉到的代码才解析,其他没牵涉的代码不解析。解析分为几个阶段,首先是语法检查,如果语法错误就报错;如果语法没错,就继续解析,解析的结 果生成一个中间的“伪代码”(catelog),然后把伪代码发给客户端。

4) 客户端接收到“伪代码”,并且执行。

5) 客户端在执行时判断有没有 File 文件,如果有,则向 fileserver 发起请求。

6) 客户端判断有没有配置 Report,如果已配置,则把执行结果发送给服务器。

7) 服务器端把客户端的执行结果写入日志,并发送给报告系统。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: