Puppet快速入门!

1

企业中管理环境的痛点



痛点1:在企业内部,部署4台服务器,每台服务器包含 JDk,Tomcat,AngularJs 等等看起来不是大问题,可以人工部署。但是,当需要部署同样的配置到100台服务器上,运维的同学该怎么办?



痛点2:设想公司需要升级某一个软件,例如 MongoDb,当升级完成之后发现有问题,需要回滚。如何做回滚?只能依次卸载新版本,安装旧版本,费时费力,效率低下。



痛点3:开发和运维最常见的对话: 


运维:”哥们,你写的代码有问题,我部署之后完全不能用!” 

开发:”不可能!我在本地跑得好好的,你是不是有东西没配?”



解决方法

 


基础设施即代码。用代码描述基础设施,包括机器 ip,操作系统,安装的软件,第三方依赖的路径,部署包的路径。


使用同一份代码,不同的配置文件在统一的虚拟化平台创建开发环境,测试环境,部署环境。这样能够屏蔽各种环境之间的差异,实现基础设施即代码。


2

目前的开源配置管理工具



配置管理工具有两种实现方式:推送或者拉取。

基于推送的工具是 Ansible 和 Salt。基于拉取的工具有 Puppet 和 Chef。

 


3

Puppet 的作用以及工作原理


Puppet 能干什么?

 


举个例子:我想在某个几个机器上快速部署 Mysql服务器,用 Puppet 怎么实现?


1. 在 Puppet 主节点机器上安装 Puppet  Mysql模块。



2. 在 Puppet 主节点上写site.pp配置文件,描述需要部署的 Mysql。



3. 在目标机上执行 puppet agent –t。


4. 完成!Mysql 已经在目标机上安装好。



Puppet 工作原理是什么?

 



Puppet 主要用于部署,配置管理,以及服务器管理。 Puppert 由Master 和 Agent组成,Master 负责管理所有的配置文件, Agent 节点向Master拉取配置文件。

 

      Puppet 如何实现 Master 节点的高可用?

 


它使用了Multi-Master的模式来实现高可用,这也是精典的高可用实现方式:冗余+故障转移。

 

主从节点如何通信?

 



主从节点通信是 基于SSL 的受信任通信,一旦主节点和从节点建立了 SSL 双向认证,之后发自从节点的请求都会经过 SSL 加密传输到主节点,主节点向从节点的数据传输也是加密的。


Puppet的组成部分



Puppet 由 Classes ,Resources,Manifests 和 Modules 组成。


1. Resource – 任何文件,配置可以做为一个 Resource。例如



它描述了文件的信息,以及文件在目标机上的将来时状态。


2. Classes – Classes 是一组 Resource 的集合,用来描述一组服务或应用。


3. Manifest – 由Class生成若干个 Manifest。在 Manifest 里可以使用某个模块,将这个模块部署到节点上。



4. Module – 由若干个 Manifest 组合成一个 Module,用来高效的组织你的 Puppet 代码,以便将来重用。Puppet 社区已经有了非常丰富的 Module,你可以直接下载使用。



Puppet 的工作流程


1.     Facts – Node 节点向 Puppet 主节点报告自己的信息,使得自己处于一个被发现的状态。 Facts 是一组键值对,可以是 IP 地址,或者是操作系统 信息。

2.      Catalog 是一组资源的关系集合,Puppet 使用 Catalog 来描述某一个节点应该被配置成什么样子。

3.     当 Node 节点完成的配置,它会向 Puppet 主节点报告任务完成。


如何管理开源社区的已有模块?

 


不重复造车轮,是软件开发中是很关键的理念。重复利用现有的模块,能够加速你的环境搭建的速度,而且更加的稳定,虽然开源社区已经有了非常丰富的共用 Module,但每次连接外网去下载 Module 又带来了网速慢,下载不稳定的问题。 Artifactory 5.1以上版本已经支持了 Puppet 仓库,以及Chef 仓库。将 Artifactory 设置为 Puppet 的 Module 源,即可实现远程Puppet Module仓库的私有化,让你的环境发布变得实时,可控。



4

总结

使用 Puppet可以帮助运维团队快速,可重复的发布一个计算环境,并且安装配置文件安装指定的软件,服务,实现基础设施即代码。


有了按需创建的运行环境,开发人员可以轻松的重现生产环境的 bug,运维人员可以轻松实现环境的回滚;开发,测试,部署的团队都能够使用相同的环境来协同工作,大大减少环境差异带来的反复沟通,排查环境问题的成本。

 

关于JFrog

世界领先DevOps平台

公司成立于2008年,在美国、以色列、法国、西班牙,以及中国北京市拥有超过200名员工。JFrog 拥有3000多个付费客户,其中知名公司包括如腾讯、谷歌、思科、Netflix、亚马逊、苹果等。连续两年,JFrog 被德勤评选为50家发展最快的技术公司之一,并被评为硅谷增长最快的私营企业之一。


  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

JFrog杰蛙中国

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值