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

[经验分享] 自动运维工具之puppet

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-9-9 09:09:56 | 显示全部楼层 |阅读模式
一、puppet简介概念:

puppet 是一个配置管理工具, 典型的,puppet 是一个 C/S 结构, 当然,这里的 C 可以有很多,因此,也可以说是一个星型结构.。所有的 puppet 客户端同一个服务器端的 puppet 通讯。 每个puppet 客户端每半小时(可以设置)连接一次服务器端,,下载最新的配置文件,并且严格按照配置文件来配置服务器。配置完成以后,puppet 客户端可以反馈给服务器端一个消息.,如果出错,也会给服务器端反馈一个消息,下图展示了一个典型的 puppet 配置的数据流动情况。
wKioL1fQHPuzQj67AAGCEB1R0UA977.jpg

二、稳定性
puppet 与其他手工操作工具有一个最大的区别就是 puppet 的配置具有稳定性,因此你可以多次执puppet, 一旦你更新了你的配置文件,puppet 就会根据配置文件来更改你的机器配置,通常每 30 分钟检查一次。puppet 会让你的系统状态同配置文件所要求的状态保持一致.,比如你配置文件里面要求 ssh 服务必须开启.。假如不小心 ssh 服务被关闭了,那么下一次执行 puppet 的时候,puppet 会发现这个异常,然后会开启 ssh 服务, 以使系统状态和配置文件保持一致。puppet 就象一个魔术师,会让你的混乱的系统收敛到 puppet 配置文件所想要的状态。可以使用 puppet 管理服务器的整个生命周期,从初始化到退役,不同于传统的例如 sun 的Jumpstart 或者 redhat 的 Kickstart, puppet 可以长年让服务器保持最新状态,只要一开始就正确的配置他们,然后再也不用去管他们,通常 puppet 用户只需要给机器安装好 puppet 并让他们运行,然后剩余的工作都由 puppet 来完成。

三、puppet 的细节和原理
puppet 的目的是让你只集中于你要管理的目标,而忽略实现的细节,例如命令名,参数或者文件格式,puppet 把系统里面的用户,软件包,服务看作是"资源",,puppet 的作用就是管理这些资源以及资源之间的相互联系。

puppet采用了非常简单的C/S架构,所有的数据交互都通过SSL进行,以保证安全。它的工作流程如下图:
wKioL1fQIA6B-U9mAAMaHykgTtU814.jpg
  1.客户端 Puppetd 向 Master 发起认证请求,或使用带签名的证书。
  2.Master 告诉 Client 你是合法的。
  3.客户端 Puppetd 调用 Facter,Facter 探测出主机的一些变量,例如主机名、内存大小、IP 地址
     等。Puppetd 将这些信息通过 SSL 连接发送到服务器端。
  4.服务器端的 Puppet Master 检测客户端的主机名,然后找到 manifest 对应的 node 配置,并对该部分内容 进行解析。Facter 送过来的信息可以作为变量处 理,node 牵涉到的代码才解析,其他没牵涉的代码不解析。解析分为几个阶段,首先是语法检查,如果语法错误就报错;如果语法没错,就继续解析,解析的结 果生成一个中间的“伪代码”(catelog),然后把伪代码发给客户端。
  5.客户端接收到“伪代码”,并且执行。
  6.客户端在执行时判断有没有 File 文件,如果有,则向 fileserver 发起请求。
  7.客户端判断有没有配置 Report,如果已配置,则把执行结果发送给服务器。
  8.服务器端把客户端的执行结果写入日志,并发送给报告系统。
四、puppet工作:
  • 定义:使用puppet特定的语言定义基础配置信息,通常把这些配置信息写在Moudules中。

  • 模拟:在配置执行之前检测代码,但并不是真正的执行。
  • 执行:按步骤一定义的配置自动部署。检测并记录下所发生变化的内容。
  • 报告:将期待的变化、实际发生的变化以及任何修改发送给报告系统。





运维网声明 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-269699-1-1.html 上篇帖子: puppet kick使用详解 下篇帖子: puppet集中配置管理系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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