Puppet之原理篇

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Puppet之原理篇相关的知识,希望对你有一定的参考价值。


一、Puppet 简介

1Puppet的用途

Puppet是开源的基于Ruby的系统配置管理工具,依赖于C/S的部署架构。主要开发者是Luke Kanies,遵循GPLv2版权协议。从1997年开始Kanies参与UNIX的系统管理工作,Puppet的开发源于这些经验。因为对已有的配置工具不甚满意,从2001年到2005年间,Kanies开始在Reductive实验室从事工具的开发。很快,Reductive实验室发布了他们的旗舰产品——Puppet

 

2.Pupput的特性

许多系统配置管理工具工作的方式非常类似,如cfengine。是什么让Puppet与众不同?

Puppet的语法允许你创建一个单独脚本,用来在你所有的目标主机上建立一个用户。所有的目标主机会依次使用适用于本地系统的语法解释和执行这个模块。举例:如果这个配置是在Red Hat服务器上执行,建立用户使用useradd命令;如果这个配置是在FreeBSD主机上执行,使用的是adduser命令。

Puppet另一个卓越的地方是它的灵活性。源于开源软件的天性,你可以自由的获得Puppet的源码,如果你遇到问题并且有能力的话,你可以修改或者加强Puppet的代码去适用于你的环境。另外,社区开发者和捐献者还在不断增强Puppet的功能。一个大的开发者和用户社区也致力于提供Puppet的文档和技术支持。

Puppet也是易于扩展的。定制软件包的支持功能和特殊的系统环境配置能够快速简单的添加进Puppet的安装程序中。

 

二、Puppet 组织结构

安装Puppet后,在/etc/puppettree就可以看到

 

技术分享

 

三、Puppet工作方式与流程

 

1Puppet的基本工作流程

1)、定义

2)、模拟

3)、执行

4报告

 

2Puppet的详细工作流程

技术分享

aagent把节点名与facts信息发送给master

bmaster通过site.pp中包含的node.pp判断agent要做什么,将所需要的class类信息编译后存入catalog并发送给agent

cagentcatalog进行代码验证(检测语法及错误)并执行,执行信息、结果写入日志

dagent完成执行,系统达到预期状态,把结果及执行数据返回给master

 

 客户端与服务器端的安全认证

  • Puppet通信都采用SSL安全加密协议,以保障所有数据传输的安全性。

  • Puppet Master 在启动后会向自己签发证书和key。可以在/var/puppet/ssl/var/lib/puppet/ssl目录下看到它们

  • Puppet Agent 在运行puppet apply--test 时添加参数--verbose 可以在客户端终端看到申请证书的详细过程

  • Puppet Master 同样可以使用puppetcert list查看申请证书的客户端列表。使用命令puppetcert sign agent_name来签发证书。

  • 如果Master一直不签发证书,客户端会每2分钟请求一次


以上是关于Puppet之原理篇的主要内容,如果未能解决你的问题,请参考以下文章

Puppet之基础篇

puppet入门与掌握之puppet介绍(介绍篇)

Mysql原理篇之事务--08

原理篇 | 推荐系统之矩阵分解模型

Redis原理篇之数据结构

puppet工作原理之模块使用