设为首页 收藏本站
查看: 1259|回复: 0

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

[复制链接]

尚未签到

发表于 2018-8-2 08:04:02 | 显示全部楼层 |阅读模式
  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版本众多,一般而言Puppet的最佳版本通常都是最新的版本,如: 0.24.x 0.25.x 2.6.x 2.7.x 3.x 4.x 当然,版本越高,支持的特征越多,由于Puppet 0.2x支持的特性非常少,不建议再安装使用它。对于正在使用此版本的用户,建议升级成最新版。对于新用户,建议直接安装Puppet 3.0版本。对于正在使用Puppet 2.6或2.7的用户,建设逐步升级,且先升级Master,然后再升级Agent,平滑过渡,以避免遇到不可预知的问题。目前Puppet最新版为4.0,其中增添了许多新特性:
  1. 性能提升:目录编译采用JSON作为目录缓存。
  2. 增强操作系统与平台支持:对Ruby1.9的完美支持,对操作系统Windows、Solaris包和服务的更多支持,Yumrepo对SSL的支持。
  3. 使用Rubygems加载插件:可以通过Rubygems来安装和使用Puppet的扩展代码。
  4. Server自动发现:通过DNS SRV寻找CA、Master、Report和Fileserver。
  5. DSL/config变化:auth.conf增加allow_ip配置选项,unless支持,插件同步默认改为True,更新configure的语法。
  6. 其他BUG的修复:修复了3.0 Agent 与2.7Master工作的问题、kick无法工作问题、rack安装启动出错问题等。
  注意:Puppet 3.x 4.x将不再支持Ruby 1.8.5以下版本。提示:更多Puppet版本信息可参考:    http://projects.puppetlabs.com/projects/1/wiki/Release_Notes)
  
  5. Puppet的工作模式
  Puppet是一个C/S架构的配置管理工具,在中央服务器上安装puppet-server软件包(被称作Puppet master)。在需要管理的目标主机上安装puppet客户端软件(被称作Puppet agent)。
  当客户端连接上Puppet master后,定义在Puppet master上的配置文件会被编译,然后在客户端上运行。每个客户端默认每半个小时和服务器进行一次通信,确认配置信息的更新情况。如果有新的配置信息或者配置信息已经改变,配置将会被重新编译并发布到各客户端执行。也可以在服务器上主动触发一个配置信息的更新,强制各客户端进行配置。如果客户端的配置信息被改变了,它可以从服务器获得原始配置进行校正。
  Puppet拥有一个简单并且容易理解和实施的操作模型。这个模型由三部分组成:1.部署; 2.配置语言资源抽象层; 3.事务层,如下图所示:
DSC0000.png

  1.1.1 部署
  Puppet通常使用简单的客户端-服务端模型进行部署。服务端被称为"Puppet master",客户端软件被称为agent,主机本身则被定义为一个节点。如下图:
DSC0001.png

  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-545025-1-1.html 上篇帖子: puppet入门与掌握之puppet介绍二(介绍篇) 下篇帖子: puppet的概述和架构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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