wanmin444 发表于 2018-8-2 08:50:08

【中级篇】puppet部署与应用

Puppet部署与应用
  1.          实验需求:
  1)   2台服务器部署puppet服务
  2)   1台服务器做puppetmaster和NTP Server
  3)   实现主动拉取,服务器推送同步。
  2.          实验环境:
  主机
  操作系统
  IP地址
  主要软件
  Puppetmaster
  NTP Server
  CentOS6.5 X86_64
  192.168.10.30
  Facter-1.7.1.tar.gz
  Puppet-2.7.21.tar.gz
  Puppetclient1
  CentOS6.5 X86_64
  192.168.10.15
  Facter-1.7.1.tar.gz
  Puppet-2.7.21.tar.gz
  Puppetclient2
  CentOS6.5 X86_64
  192.168.10.18
  Facter-1.7.1.tar.gz
  Puppet-2.7.21.tar.gz
  3.      实验步骤:
  基本安装操作:
  1.搭建puppetmaster
  1)规划服务器主机名



  添加以下几行:


  2).服务器时间同步
  由于facter使用SSL证书,依赖时间同步,所以需要搭建NTP服务器。


  添加两行:其作用是当/etc/ntp.conf中定义的server都不可用时,将使用local时间作为NTP服务提供给NTP客户端。


  Puppet作为NTP客户端的配置

  安装ruby


  安装完成后检查ruby版本。

  Puppet、facter 安装

  通过facter工具分析检测客户端传输过来的信息。
  安装facter:

  解压源码包

  编译安装源码包

  安装puppet:
  解压源码包:

  编译安装源码包:

  复制配置文件:

  修改文件属性:


  Puppet服务证书请求与签名:
  生产环境中iptables默认是全部关闭的
  Master端配置:

  修改配置文件:

  在【main】标题下添加以下一行,配置服务器模块路径:

  启动Puppet主程序

  2.搭建puppetclient
  首先配置puppetclient1,步骤如下:
  1) 规划服务器主机名



  添加以下几行:


  确保可以用通过域名ping通Puppetmaster,

  2)服务器时间同步


  3)安装ruby



  4) puppet、facter安装

  通过facter工具分析检测客户端传输过来的信息。
  安装facter:
  解压源码包:

  编译安装源码包:

  安装puppet:

  编译安装源码包:

  复制配置文件:

  修改文件属性:

  Puppet服务证书请求与签名:
  生产环境中iptables默认是全部关闭的

  修改配置文件:

  在【main】标题下添加以下一行,设置服务器的域名:

  Puppetclient2的配置过程和puppetclient1的类似,注意将主机名改为client2.


  下面的操作都跟client1 一样,这里我就不截图了。
  Client端:
  分别在puppetclient1和puppetclient2 上进行注册。


  此时可以按ctrl+c 结束,因为puppet一直在等待任务,但是已经从server查看到申请信息。

  将未注册的客户端进行注册:

  可以通过目录去查看已经注册的客户端:

  此时客户端已经完成证书的请求与签名。
  3.配置实例:
  1)配置一个测试节点:
  节点信息:/etc/puppet/manifests/nodes
  模块信息:/etc/puppet/modules/
  为了保护Linux的ssh端***破,批量修改客户端的sshd端口,将端口22修改为9922,并实现重启工作。
  Master端:
  1)创建需要的必要目录:

  2)修改权限:

  此时/etc/puppet/modules/ssh/ 目录下结构如下:

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

  输入以下信息(首先确定客户端安装ssh服务)

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

  输入以下信息配置需要同步的文件

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


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


  此时/etc/puppet/modules/ssh/manifests/目录下有4个文件。

  7)建立服务器端ssh统一维护文件
  由于服务器端和客户端的sshd_config文件默认一样,此时将服务器端/etc/ssh/sshd_config复制到模块默认路径。

  修改权限

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


  9)将测试节点载入puppet ,修改site.pp


  10)修改服务器端维护的sshd_config配置文件


  11)重启puppet

  在client1 客户端主动拉取:(192.168.10.15)

  此时在client1端已经执行成功,验证如下:


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

  服务器推送同步:
  当大规模部署时采用服务器推送模式
  Client2端:
  1)修改配置文件

  最后一行添加:


  最后一行添加:

  2)启动puppet客户端



  确认启动ssh服务

  Master端:
  3)开始往客户端推送:

  4)验证结果

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

  实验总结:
  1.puppet可以在单机上使用,也可以在C/S结构上使用,在大规模使用puppet的情况下,通常使用C/S结构,在这种结构中puppet客户端只运行puppetclient,puppet服务器端只运行puppetmaster。
  2.Facter工具使用SSL证书依赖时间同步,需要搭建NTP服务器。
  3.通过一个配置实例批量修改客户端sshd端口。
页: [1]
查看完整版本: 【中级篇】puppet部署与应用