puppet(一)——puppet是什么?

本文转载自朱双印个人日志:https://www.zsythink.net/archives/185

puppet是什么,咱们先不用专业的名词解释它,咱们先描述一些工作场景,看明白这些工作场景,自然会知道puppet是什么。

  • 场景一:

管理员想要在100台服务器上同时创建一个名叫”liuhaoran”的用户,怎么办,当然,我们可以”手动解决”,登录每一台服务器,然后一台一台的创建用户,如果你真的这样干,那么我只能说,算你狠!!!但是,既然我们这篇文章是介绍puppet的,我们肯定会推荐你使用puppet解决这个问题。

  • 场景二:

公司新买了一堆云服务器,这些服务器最终可能要提供相同的服务,现在需要管理员在这一堆服务器上安装一些相同的应用,而且安装完成后,还需要这些服务器上的应用自动启动,怎么办,当然,手动解决算你狠,兄弟我服了,你说你写脚本解决,嗯,这是个办法,在我没有认识puppet之前我可能也会写个脚本,但是我们是介绍puppet的,我们会推荐你使用puppet解决这个问题。

  • 场景三:

在一些服务器中,执行大批量的重复操作,我们可以使用puppet。

看完上述三个场景,你应该已经大概猜出puppet是干吗的了,没错,说的糙一点,你可以把它理解成批量处理工具,但是你又不能完全把它理解成批量处理工具,因为除了批量处理,他还有一些别的功能和特性,我们暂且先这么认为,以便我们入门。

像puppet这种工具有几个专业的名词可以用来称呼它们:”配置管理工具”、”自动化运维管理工具”。

Linux中,常见的配置管理工具有puppet、saltstack、ansible、chef等,它们的功能类似,puppet算是这个领域里面的老大哥,时间久,成熟,被广泛的应用,google、twitter、redhat,cisco等大公司都用到了它,功能强大,puppet是使用ruby研发的,saltstack和ansible都属于python系的, ansible和saltstack与puppet相比,属于后起之秀,我们以后也可能会对它们进行总结,但是现在,我们只聊puppet。

那么我把网上的专业解释复制过来,以便为大家从更专业的角度解释puppet是个什么东西,如果你看不懂如下解释,没有关系,这并不影响我们学习puppet,因为网上的概念往往要把实际的东西说的高大上一点,以便显得自己很NB,但是这样往往有碍我们理解,所以,如下解释你”只是看看”即可。

  • 以下专业解释来自百度百科:

puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置客户端。 配置完成以后,puppet客户端可以反馈给服务器端一个消息。如果出错,也会给服务器端反馈一个消息。

从上述专业的解释中,我们可以得知puppet是C/S架构的,也就是说,它有服务端,也有客户端(代理程序),也就是上述专业解释中提到的C/S星状结构,说白了就是一个或少数几个服务端作为中心,一堆客户端围绕着服务端展开具体工作,管理员在puppet服务端中进行配置管理,通过服务端,将管理员的”配置”传输到客户端,客户端再将管理员的”配置”落实到具体的服务器上。 用文字描述显得太无力,我们画个图来看看:

刚才说的大段的话,描述的就是上图中的场景。

原文地址:https://www.cnblogs.com/even160941/p/14934215.html