前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动化运维工具Puppet服务安装和部署详解

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

作者头像
星哥玩云
发布2022-07-25 11:44:17
1.2K0
发布2022-07-25 11:44:17
举报
文章被收录于专栏:开源部署开源部署

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服务安装和部署详解
自动化运维工具Puppet服务安装和部署详解
1.安装NTP Server

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

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

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

代码语言:javascript
复制
vi /etc/ntp.conf  
                            
    server 
    fudge 

(3)启动ntp服务

代码语言:javascript
复制
chkconfig ntpd 

(4)查看同步状态`

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

(1)规划主机名

代码语言:javascript
复制
 /etc/hostname
   master.test.cn     

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

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

(2)搭建NTP客户端服务

代码语言:javascript
复制
服务
自动化运维工具Puppet服务安装和部署详解
自动化运维工具Puppet服务安装和部署详解

(3)安装puppet控制端

代码语言:javascript
复制
yum install -y puppet-server   

(4)启动Puppet主程序

3.安装Puppet client(client1 client2配置一样)

(1)规划主机名

代码语言:javascript
复制
 /etc/hostname
   client1.test.cn     

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

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

(2)搭建NTP客户端服务

代码语言:javascript
复制
服务

(3)安装puppet控制端

代码语言:javascript
复制
yum install -y puppet   

(4)编辑puppet配置文件

代码语言:javascript
复制
 /etc/puppet/puppet.conf
    [main]
    server = master.test.cn
    ......
自动化运维工具Puppet服务安装和部署详解
自动化运维工具Puppet服务安装和部署详解

(5)client端申请证书

执行完会有如下提示:

代码语言:javascript
复制
 client2.test.cn
 ca
 csr_attributes file loading from /etc/puppet/csr_attributes.yaml
 client2.test.cn

等待一会儿按ctrl+c组合键结束

4.回到Puppet Master端查看申请信息

(1)查看申请证书的客户端

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

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

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

(3)通过目录查看已经申请注册的客户端

自动化运维工具Puppet服务安装和部署详解
自动化运维工具Puppet服务安装和部署详解
5.批量修改客户端ssh端口

master端配置:

(1)创建ssh模块,模块下面有3个文件:manifests、templates和files

(2)创建模块配置文件install.pp

代码语言:javascript
复制
package{:
         => present,
        }
}

(3)创建模块配置文件config.pp

代码语言:javascript
复制
file {
        
        owner => 
        group => 
        mode => 
        source => 
        
        notify => Class[
        }
}

(4)创建模块配置文件service.pp

代码语言:javascript
复制
        service {:          
                
                hasstatus=>
                hasrestart=>
                enable=>
                
        }
}

(5)创建模块主配置文件init.pp

代码语言:javascript
复制
{
        
}

此时/etc/puppet/modules/ssh/manifests目录下有四个文件:

(6)建立服务端ssh统一维护文件 将服务端ssh配置文件sshd_config复制到模块默认路径

代码语言:javascript
复制
chown -R puppet /etc/puppet/modules/ssh/files/ssh/sshd_config  

(7)创建测试节点配置文件,并将ssh加载进去

代码语言:javascript
复制
 /etc/puppet/manifests/nodes/ssh.pp  
node  {
         ssh
}
node  {
         ssh
}

(8)将测试节点载入puppet,创建站点文件site.pp

代码语言:javascript
复制
/

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

代码语言:javascript
复制
Port 

(10)重新启动puppet

下面就是介绍客户端怎么获取到服务器端的资源的方式:

(1)一般在小规模自动化集群中,客户端主动拉取

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

在客户端查看/etc/ssh/sshd_config的内容

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

查看服务器ssh服务是否重启,端口是否生效

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

(2)当大规模部署时,采用服务器推送

client端(192.168.26.133)为例:

1)修改配置文件

代码语言:javascript
复制
listen = true
代码语言:javascript
复制
allow *

2)启动puppet客户端

在客户端查看/etc/ssh/sshd_config的端口内容

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

查看服务器ssh服务是否重启,端口是否生效

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

master端:

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

代码语言:javascript
复制
Port 

4)开始往客户端推送

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

在客户端查看/etc/ssh/sshd_config的内容

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

在客户端查看ssh服务是否重启,端口是否生效

自动化运维工具Puppet服务安装和部署详解
自动化运维工具Puppet服务安装和部署详解
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • puppet简介
  • puppet工作原理
  • 实验:
    • 1.安装NTP Server
      • 2.安装Puppet Master
        • 3.安装Puppet client(client1 client2配置一样)
          • 4.回到Puppet Master端查看申请信息
            • 5.批量修改客户端ssh端口
            相关产品与服务
            SSL 证书
            腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档