puppet详解(一)——puppet基础知识

今天继续给大家介绍Linux运维相关知识,本文主要内容是puppet的理论基础。

一、puppet简介

在前面,我们详细讲解了Ansible的工作原理及配置案例。今天,我们来详细讲解另一个常用的自动化运维配置工具——puppet。puppet也是目前互联网企业的自动化运维工具之一,其使用一种描述性的语言给客户端声明了一些状态配置,比如,一个服务应该被安装等。
puppet基于传统的C/S架构,架构中通常有一台服务器,负责对下游客户端的控制。每个被控制的设备都要安装puppet客户端,每个puppet客户端通过ssl证书链接服务器,得到本机的配置列表,然后更新列表来完成配置工作。
puppet既可以工作在主动模式下,也可以工作在被动模式下,在主动模式下,puppet客户端主动拉取服务器配置文件;在被动模式下,puppet服务器主动通知puppet客户端,使puppet客户端开启同步工作。
对于puppet而言,如果硬件设备性能比较高,在被管理客户端配置一致的情况下,管理成千上百台设备是非常简单的。但是在一些大型的企业中,如果只有一台puppet服务器,则puppet服务器的压力则会非常大,这时可以考虑把puppet扩展成一个服务器集群组。
puppet使用ruby语言编写,而ruby语言是解析型语言,所谓解析型语言,就是ruby语言的每次执行,都需要借助翻译器将ruby语言翻译成可以被CPU直接执行的机器码。由于多了这么一个“翻译”的过程,因此,ruby语言编写的程序执行速度较慢。
puppet官网为https://puppet.com/,如下所示:

二、puppet工作原理

puppet工作原理如下图所示:
在这里插入图片描述
主要有以下4个步骤:
1、puppet客户端调用本地facter,本地facter会探测出主机的常用变量(如主机名、IP地址等),并将这些变量信息发送给puppet服务器。
2、puppet服务器检测到客户端发送的这些信息,会检测本地配置,根据本地配置内容和客户端发送来的信息进行解析,进行语法检查后生成一个中间的伪代码,然后把伪代码发送给puppet客户端。
3、puppet客户端在收到伪代码后就会执行,然后把执行结果反馈给puppet服务器。
4、puppet服务器在收到puppet客户端执行的结果后,会把客户端的执行结果写入日志文件中。

三、puppet常见资源与模块

puppet主要基于各种资源模块管理客户端,目前主流企业的puppet资源模块如下:
1、file
主要负责管理文件。
2、package
主要负责软件包的安装管理。
3、service
主要负责系统服务的管理。
4、cron
主要负责配置定时任务。
5、exec
可以远程执行命令。
在puppet安装完成(puppet安装的相关过程详情请参见文章puppet详解(二)——puppet安装)后,我们可以查看puppet支持的模块。
执行命令:

puppet describe -l

可以查看puppet支持的资源,结果如下所示:
在这里插入图片描述
执行命令:

puppet describe -s 【资源名】

可以查看puppet具体的资源用法,结果如下所示:
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/123624258
今日推荐