阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

自动化运维工具Puppet服务安装和部署详解

211次阅读
没有评论

共计 2296 个字符,预计需要花费 6 分钟才能阅读完成。

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 环境,具体拓扑图如下:
自动化运维工具 Puppet 服务安装和部署详解

1. 安装 NTP Server

由于 Puppet 需要使用 SSL 证书,依赖时间同步,所有需要搭建 NTP 服务器。

(1)关闭所有服务器的防火墙和安全性策略

(2)yum 安装 NTP 并修改配置文件



vi /etc/ntp.conf  
                            
    server 
    fudge 

(3)启动 ntp 服务


chkconfig ntpd 

(4)查看同步状态 `

自动化运维工具 Puppet 服务安装和部署详解

2. 安装 Puppet Master

(1)规划主机名

 /etc/hostname
   master.test.cn     

vi /etc/hosts  
   master.test.cn
   client1.test.cn

然后重启,将安全性策略再关一下

(2)搭建 NTP 客户端服务


服务

自动化运维工具 Puppet 服务安装和部署详解

(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
    ......

自动化运维工具 Puppet 服务安装和部署详解
(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)查看申请证书的客户端

自动化运维工具 Puppet 服务安装和部署详解

(2)将未申请的客户端进行授权

自动化运维工具 Puppet 服务安装和部署详解
(3)通过目录查看已经申请注册的客户端

自动化运维工具 Puppet 服务安装和部署详解

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)一般在小规模自动化集群中,客户端主动拉取

自动化运维工具 Puppet 服务安装和部署详解
在客户端查看 /etc/ssh/sshd_config 的内容
自动化运维工具 Puppet 服务安装和部署详解
查看服务器 ssh 服务是否重启,端口是否生效
自动化运维工具 Puppet 服务安装和部署详解
(2)当大规模部署时,采用服务器推送

client 端 (192.168.26.133) 为例:

1)修改配置文件


listen = true

allow *

2)启动 puppet 客户端

在客户端查看 /etc/ssh/sshd_config 的端口内容
自动化运维工具 Puppet 服务安装和部署详解
查看服务器 ssh 服务是否重启,端口是否生效
自动化运维工具 Puppet 服务安装和部署详解
master 端:

3)修改服务端维护的 sshd_cofig 配置文件


Port 

4)开始往客户端推送

自动化运维工具 Puppet 服务安装和部署详解
在客户端查看 /etc/ssh/sshd_config 的内容
自动化运维工具 Puppet 服务安装和部署详解
在客户端查看 ssh 服务是否重启,端口是否生效
自动化运维工具 Puppet 服务安装和部署详解

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2296字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中