Puppet的agent/master原理与案例实现

本文介绍了Puppet的自动化运维工具特性,对比了Puppet与Ansible的区别。详细阐述了Puppet agent与master的安全认证和交互流程,并通过实验展示了如何配置一个简单的agent/master环境,实现在agent上安装redis并同步时间。实验包括环境准备、master端模块开发、配置与客户端启动等步骤。
摘要由CSDN通过智能技术生成

简介

puppet类似于ansible,但ansible是轻量化的自动化运维工具,管理20台左右的机器还是可以的,但是当机器数量多的情况下,ansible就应付不过来了,需要更高级的自动化运维工具puppet、saltstack等,不过puppet是由ruby语言开发的,ruby语言已经江河日下,对于目前来说由python开发的saltstack当然会成为主流,不过这需要以后去挖掘它吧,目前多数企业还是使用puppet来进行自动化部署。

注意:agent严重依赖于主机名,因此最好要配置一台DNS服务器。这里就简单的使用hosts文件来解析主机名吧。

agent与master交互流程


注:这是网上一位朋友的图片,发现画的比较好,就引用一下。
Puppet通信agent和master都采用SSL安全加密协议,以保障所有数据传输的安全性。

一、先是agent和master的安全认证
  1. Puppet Master 在启动后会向自己签发证书和key。可以在/var/puppet/ssl或/var/lib/puppet/ssl目录下看到它们。
  2. 等待客户端请求证书签署请求。
  3. 客户端启动服务,将自己的主机名和签署请求发送给master端,请求签署证书。如果Master一直不签发证书,客户端会每2分钟请求一次。
  4. master签署证书,根据证书名称就是agent的主机名。这样master和agent端都可以知道对方的证书公钥了。这样客户端就可以和master相互通信了
二、agent和master交互
  1. agent每隔30分钟把节点名与facts信息发送给master.因此如果在证书签署过后不会立即请求,重启agent服务即可。
  2. master通过site.pp中包含的node.pp判断agent要做什么,将所需要的class类信息编译后存入catalog并发送给agent。
  3. agent对catalog进行代码验证(检测语法及错误)并执行,执行信息、结果写入日志
  4. agent完成执行,系统达到预期状态,把结果及执行数据返回给master

实验

实验描述

我们来配置一个最简单的agent/master,来让agent安装redis,并同

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值