puppet简介
puppet是一种基于ruby语言开发的Lnux、Unix、windows平台的集中配置管理系统。它使用自有的puppet描述语言,可管理配置文件file、用户user、cron任务、软件包、系统服务等系统实体。
puppet依赖于C/S(客户端/服务器)的部署架构。它需要在puppet服务器上安装puppet-server软件包(以下简称master),在需要管理的目标主机上安装puppet客户端软件(以下简称client)。
为了保证安全,master和client之间是基于SSL和证书的,只有经过master证书认证的client才可以与master通信。
puppet工作原理
1、客户端puppet调用fast探测出主机的一些变量,如主机名、内存大小、IP地址等。Puppet把这些信息使用SSL连接发送给服务器端;
2、服务器端的puppetmaster通过fast工具分析检测客户端的主机名,然后找到项目的主配置文件manifest里面对应的node配置,并对该部分内容进行解析,fast发送过来的信息可以作为变量处理,node牵扯到的代码才被解析,没牵扯到的不解析,解析分为语法检查,如果语法没错,继续解析,解析结果生成一个结果‘伪代码’,然后把‘伪代码’发给客户端;
3、客户端收到‘伪代码’并且执行,客户端把执行结果发给服务器;
4、服务器端把客户端的执行结果写入日志。
实验:
使用四台服务器模拟搭建Puppet环境,具体拓扑图如下:
1.安装NTP Server
由于Puppet需要使用SSL证书,依赖时间同步,所有需要搭建NTP服务器。
(1)关闭所有服务器的防火墙和安全性策略
(2)yum安装NTP并修改配置文件
vi /etc/ntp.conf server fudge
(3)启动ntp服务
chkconfig ntpd
(4)查看同步状态`
2.安装Puppet Master
(1)规划主机名
/etc/hostname master.test.cn vi /etc/hosts master.test.cn client1.test.cn
然后重启,将安全性策略再关一下
(2)搭建NTP客户端服务
服务
(3)安装puppet控制端
yum install -y puppet-server
(4)启动Puppet主程序
3.安装Puppet client(client1 client2配置一样)
(1)规划主机名
/etc/hostname client1.test.cn vi /etc/hosts master.test.cn client1.test.cn
然后重启,将安全性策略再关一下
(2)搭建NTP客户端服务
服务
(3)安装puppet控制端
yum install -y puppet
(4)编辑puppet配置文件
/etc/puppet/puppet.conf [main] server = master.test.cn ......
(5)client端申请证书
执行完会有如下提示:
client2.test.cn ca csr_attributes file loading from /etc/puppet/csr_attributes.yaml client2.test.cn
等待一会儿按ctrl+c组合键结束
4.回到Puppet Master端查看申请信息
(1)查看申请证书的客户端
(2)将未申请的客户端进行授权
(3)通过目录查看已经申请注册的客户端
5.批量修改客户端ssh端口
master端配置:
(1)创建ssh模块,模块下面有3个文件:manifests、templates和files
(2)创建模块配置文件install.pp
package{: => present, } }
(3)创建模块配置文件config.pp
file { owner => group => mode => source => notify => Class[ } }
(4)创建模块配置文件service.pp
service {: hasstatus=> hasrestart=> enable=> } }
(5)创建模块主配置文件init.pp
{ }
此时/etc/puppet/modules/ssh/manifests目录下有四个文件:
(6)建立服务端ssh统一维护文件
将服务端ssh配置文件sshd_config复制到模块默认路径
chown -R puppet /etc/puppet/modules/ssh/files/ssh/sshd_config
(7)创建测试节点配置文件,并将ssh加载进去
/etc/puppet/manifests/nodes/ssh.pp node { ssh } node { ssh }
(8)将测试节点载入puppet,创建站点文件site.pp
/
(9)修改服务端维护的sshd_cofig配置文件
Port
(10)重新启动puppet
下面就是介绍客户端怎么获取到服务器端的资源的方式:
(1)一般在小规模自动化集群中,客户端主动拉取
在客户端查看/etc/ssh/sshd_config的内容
查看服务器ssh服务是否重启,端口是否生效
(2)当大规模部署时,采用服务器推送
client端(192.168.26.133)为例:
1)修改配置文件
listen = true
allow *
2)启动puppet客户端
在客户端查看/etc/ssh/sshd_config的端口内容
查看服务器ssh服务是否重启,端口是否生效
master端:
3)修改服务端维护的sshd_cofig配置文件
Port
4)开始往客户端推送
在客户端查看/etc/ssh/sshd_config的内容
在客户端查看ssh服务是否重启,端口是否生效
上篇:
高并发性能测试,it人员必备技能
下篇:
阿里员工都是这样排查Java问题的,附工具单
1 11 个最热门的 MCP 资源平台,收藏备用 2 从 0 到 1:使用 Loki + Promtail + Grafana 搭建日... 3 Unsloth:大模型微调的革命性工具,支持DeepSeek QwQ Gemma... 4 选品、支付、运营、翻译和客户服务等工具是跨境电商的关键。 5 快速对QWen2.5大模型进行微调 6 ImagePrompt:一款 AI 图片提示词工具,使用图片 7 VLAN基础+划分详细教程 8 使用Easy Dataset为大模型准备训练数据,在线部署 9 【TL-FW6300】防火墙配置指南——三层路由网关实例设置 10 模拟一个三层办公大楼,实现所有部门、楼层的互通,以及都可以访问公网;出口网关配置... 11 【防火墙】PPTP VPN PC到站点配置方法 12 【防火墙】PPTP 站点到站点VPN配置指南