设为首页 收藏本站
查看: 1909|回复: 2

[经验分享] puppet入门与掌握之puppet介绍(介绍篇)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-3-30 14:46:26 | 显示全部楼层 |阅读模式
Puppet是开源的基于Ruby的系统配置管理工具,依赖于C/S的部署架构。主要开发者是Luke Kanies,遵循GPLv2版权协议。从1997年开始Kanies参与UNIX的系统管理工作,Puppet的开发源于这些经验。因为对已有的配置工具不甚满意,从2001年到2005年间,Kanies开始在Reductive实验室从事工具的开发。很快,Reductive实验室发布了他们的旗舰产品——Puppet。它使用简单且功能强大,正得到了越来越多地关注,现在很多大型IT公司均在使用puppet对集群中的软件进行管理和部署一. Puppet的介绍
1. Puppet的用途
Puppet可以用来管理UNIX(包括OSX)和Linux平台,并且最近又添加了针对Microsoft Windows的支持。Puppet通常可以用来管理一台主机的整个生命周期:从初始化到安装、升级、维护以及最后将服务迁移并下架。Puppet被设计为能够持续与主机进行交互,而不是仅仅提供一个只负责搭建主机却并不管理它们的工具。                    官方的定义是这样的:Puppet是一个开源的新一代的集中化配置管理工具,它由自己所声明的语言表达系统配置,通过客户端与服务端之间的连接,维护着关系库。Puppet的设计目标是让Puppet成为一个由富有表现力的语言支撑的足够强大的库。这样只需要编写短短的几行代码的自动化应用程序即可实现设计目标。同时Puppet是开放的,允许添加任何新的功能。                                                              通常这样定义:Puppet是一个跨平台的集中化配置管理系统,它使用自有的描述语言,可管理配置文件、用户、Cron、软件包,系统服务等,Puppet把这些统称为“资源”。Puppet的设计目标就是简化对这些资源的管理以及妥善处理资源之间的依赖关系
2. Pupput的特性
许多系统配置管理工具工作的方式非常类似,如cfengine。是什么让Puppet与众不同?Puppet的语法允许你创建一个单独脚本,用来在你所有的目标主机上建立一个用户。所有的目标主机会依次使用适用于本地系统的语法解释和执行这个模块。举例:如果这个配置是在Red Hat服务器上执行,建立用户使用useradd命令;如果这个配置是在FreeBSD主机上执行,使用的是adduser命令。Puppet另一个卓越的地方是它的灵活性。源于开源软件的天性,你可以自由的获得Puppet的源码,如果你遇到问题并且有能力的话,你可以修改或者加强Puppet的代码去适用于你的环境。另外,社区开发者和捐献者还在不断增强Puppet的功能。一个大的开发者和用户社区也致力于提供Puppet的文档和技术支持。
  Puppet也是易于扩展的。定制软件包的支持功能和特殊的系统环境配置能够快速简单的添加进Puppet的安装程序中。
3. Puppet的工作模式
Puppet是一个C/S架构的配置管理工具,在中央服务器上安装puppet-server软件包(被称作Puppet master)。在需要管理的目标主机上安装puppet客户端软件(被称作Puppet Client)。
当客户端连接上Puppet master后,定义在Puppet master上的配置文件会被编译,然后在客户端上运行。每个客户端默认每半个小时和服务器进行一次通信,确认配置信息的更新情况。如果有新的配置信息或者配置信息已经改变,配置将会被重新编译并发布到各客户端执行。也可以在服务器上主动触发一个配置信息的更新,强制各客户端进行配置。如果客户端的配置信息被改变了,它可以从服务器获得原始配置进行校正。
Puppet拥有一个简单并且容易理解和实施的操作模型。这个模型由三部分组成:1.部署; 2.配置语言资源抽象层; 3.事务层,如下图所示:
wKiom1b5-TaAWerQAAA6aIaAH5w204.jpg
1.1.1 部署
Puppet通常使用简单的客户端-服务端模型进行部署。服务端被称为"Puppet master",客户端软件被称为agent,主机本身则被定义为一个节点。如下图:
wKioL1b5_3eT4h86AABG1lL1ZLs115.jpg
Puppet master在一台主机上以守护进程的方式运行,它包含了环境所需的所有配置。Puppet agent则通过一个使用标准SSL协议进行加密和验证的连接与Puppet master进行通信,然后接收或者"拉取"需要被应用的配置。很重要的一点是,Puppet agent在已经获得了需要的配置或者没有任何可以被应用的配置时不会做任何事情。这意味着Puppet只会在需要时对你的环境作出变更。这整个过程被称为一次配置运行。
每一个客户端既可以通过守护进程的方式来运行Puppet(比如使用cron),也可以手动启动。通常的做法是以守护进程的方式运行Puppet,并周期性地与master进行通信,以此来保证配置已经更新到最新并且能及时接收新的配置。不过,也有很多人觉得使用cron或者手动运行Puppet更符合他们的需求。
在默认情况下,Puppet agent会每30分钟与master进行一次通信,检查新添加的或者已改变的配置。你可以自行设定这个周期来适应你的环境。当然也存在其他部署模型。比如,Puppet也能抛开Puppet master以独立方式运行。在这种模式下,配置放置在被管理的主机上,然后通过手动运行puppet程序来执行和应用这些配置。我们将在稍后讨论这种模式。
关于puppet的配置语言和资源抽象层会在puppet入门与掌握之puppet介绍(2)介绍到。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-197709-1-1.html 上篇帖子: Puppet之基础篇 下篇帖子: 自动化运维介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表