1、认识puppet 1.1 引入
puppet是什么,咱们先不用专业的名词解释它,咱们先描述一些工作场景,看明白这些工作场景,自然会知道puppet是什么。
(1)场景一:
管理员想要在100台服务器上同时创建一个名叫"zsythink"的用户,怎么办,当然,我们可以"手动解决",登录每一台服务器,然后一台一台的创建用户,如果你真的这样干,那么我只能说,算你狠!!!但是,既然我们这篇文章是介绍puppet的,我们肯定会推荐你使用puppet解决这个问题。
(2)场景二:
公司新买了一堆云服务器,这些服务器最终可能要提供相同的服务,现在需要管理员在这一堆服务器上安装一些相同的应用,而且安装完成后,还需要这些服务器上的应用自动启动,怎么办,当然,手动解决算你狠,兄弟我服了,你说你写脚本解决,嗯,这是个办法,在我没有认识puppet之前我可能也会写个脚本,但是我们是介绍puppet的,我们会推荐你使用puppet解决这个问题。
(3)场景三:
在一些服务器中,执行大批量的重复操作,我们可以使用puppet。
看完上述三个场景,你应该已经大概猜出puppet是干吗的了,没错,说的糙一点,你可以把它理解成批量处理工具,但是你又不能完全把它理解成批量处理工具,因为除了批量处理,他还有一些别的功能和特性,我们暂且先这么认为,以便我们入门。
1.2 介绍
(1)我自己对puppet的了解
像puppet这种工具有几个专业的名词可以用来称呼它们:"配置管理工具"、"自动化运维管理工具"。
Linux中,常见的配置管理工具有puppet、saltstack、ansible(博主之前讲解过)、chef等,它们的功能类似,puppet算是这个领域里面的老大哥,时间久(我说的是创始时间久,不要想歪了····),成熟,被广泛的应用,google、twitter、redhat,cisco等大公司都用到了它,功能强大,puppet是使用ruby研发的,saltstack和ansible都属于python系的, ansible和saltstack与puppet相比,属于后起之秀,我们以后也可能会对它们进行总结,但是现在,我们只聊puppet。
(2)专业术语介绍
① puppet是一种Linux/Unix平台下的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
② Puppet是开源的基于Ruby的系统配置管理工具,puppet是一个C/S结构。所有的puppet客户端同一个服务器端的puppet通讯,每个puppet客户端每半小时(可以设置)连接一次服务器端,下载最新的配置文件,并且严格按照配置文件来配置服务器。 配置完成以后,puppet客户端可以反馈给服务器端一个消息, 如果出错,也会给服务器端反馈一个消息。
③ Puppet是用于大规模集群管理的神器。其本身使用Ruby语言开发,基于C/S架构。在每台机器上部署的客户端每隔一个指定的时间会连接到Master检查资源变化情况,若资源发生变化,将按配置动作进行相应的操作。