设为首页 收藏本站
查看: 1025|回复: 0

[经验分享] 52.puppet自动化运维工具

[复制链接]

尚未签到

发表于 2018-8-1 13:26:06 | 显示全部楼层 |阅读模式
  puppet自动化运维工具
  Puppet是一款运维自动化工具,在一些大型的互联网企业,它可以针对多台服务器进行统一操作,如统一部署软件,进行统一上线维护等,意思就是说在一台linux服务器上所部署的操作,会通过puppet同步到其他linux服务器的一款强大工具。
  Puppet使用的端口是8139
  搭建puppetmaster:
  v 规划服务器主机名
  # vim /etc/sysconfig/network
  修改内容:
  NETWORKING=yes
  HOSTNAME=master.test.cn
  # vim /etc/hosts
  添加解析记录:
  1.1.1.128       master.test.cn
  1.1.1.129       client.test.cn
  # hostname master.test.cn
  # bash
  v 服务器时间同步
  #vim /etc/ntp.com
  添加两行:
  server 127.127.1.0
  fudge 127.127.1.0 stratum 8
  # yum -y install ntpdate
  #service ntpd restart
  #chkconfig ntpd on
  v 安装ruby
  # yum -y install ruby
  #ruby -v
  v 安装puppet和facter
  # useradd -s /sbin/nologin puppet
  # tar xzvf facter-1.7.1.tar.gz
  # cd facter-1.7.1
  # ruby install.rb
  # tar xzvf puppet-2.7.21.tar.gz
  # cd puppet-2.7.21
  # ruby install.rb
  # cp conf/redhat/fileserver.conf   /etc/puppet/
  # cp conf/redhat/puppet.conf  /etc/puppet/
  # cp conf/redhat/server.init /etc/init.d/puppetmaster
  # chmod +x /etc/init.d/puppetmaster
  # mkdir /etc/puppet/manifests
  # mkdir /etc/puppet/modules
  v Puppet服务证书与签名
  # iptables -F
  # vim /etc/puppet/puppet.conf
  在main行添加:
  ssldir = $vardir/ssl
  modulepath = /etc/puppet/modules:/usr/share/puppet/modules
  # /etc/init.d/puppetmaster start
  搭建client客户端:
  v 规划服务器主机名
  # vim /etc/sysconfig/network
  NETWORKING=yes
  HOSTNAME=client.test.cn
  # vim /etc/hosts
  1.1.1.128       master.test.cn
  1.1.1.129       client.test.cn
  # hostname client.test.cn
  # bash
  v 同步服务时间
  # ntpdate 1.1.1.128
  v 安装ruby安装工具
  # yum -y install ruby
  # ruby -v
  v 安装puppet和facter
  #useradd -s /sbin/nologin  puppet
  # tar xzvf facter-1.7.1.tar.gz
  # cd facter-1.7.1
  # ruby install.rb
  # tar xzvf puppet-2.7.2
  # cd puppet-2.7.21
  # ruby install.rb
  # cp conf/redhat/puppet.conf /etc/puppet
  # cp conf/redhat/client.init  /etc/init.d/puppetclient
  # chmod +x /etc/init.d/puppetclient
  # iptables -F
  # vim /etc/puppet/puppet.conf
  在main项添加内容 :
  ssldir = $vardir/ssl
  server = master.test.cn
  v 在client端申请与注册
  # puppet agent --server=master.test.cn --no-daemonize --verbose
  在master端提交注册信息
  # puppet cert --list                     查看申请列表
  # puppet cert sign --all                  提交注册信息,会在下面目录中创建证书
  #ll /var/lib/puppet/ssl/ca/signed          查看client端的注册信息文件
  案例需求:需要将ssh服务的端口统一更改为9922
  节点入口存放目录:/etc/puppet/manifests/nodes
  模块存放目录:/etc/puppet/modules
  Puppet分发部署:
  v 创建必要目录
  #mkdir -p /etc/puppet/modules/ssh/{manifests,templates,files}
  #mkdir  /etc/puppet/modules/ssh/files/ssh
  #mkdir  /etc/puppet/manifests/nodes
  #chown -R puppet /etc/puppet/modules/
  #ll /etc/puppet/modules/ssh
  注:ssh/manifests目录是ssh模块配置文件目录,ssh/files是ssh模块的文件发布目录
  v 创建模块配置文件
  # vim /etc/puppet/modules/ssh/manifests/install.pp     确定客户端是否安装ssh服务
  class  ssh::install{
  package{ "openssh":
  ensure => present,
  }
  }
  # vim /etc/puppet/modules/ssh/manifests/config.pp     配置需要同步的文件
  class ssh::config{                                  定义类
  file { "/etc/ssh/sshd_config":                         文件路径
  ensure => present,                         确定客户端此文件存在
  owner =>"root",                           文件所属用户
  group =>"root",                           文件所属组
  mode =>"0600",                           文件属性
  source =>"puppet://$puppetserver/modules/ssh/ssh/sshd_config",从服务器同步文件

  require =>>
  notify =>>  }
  }
  # vim /etc/puppet/modules/ssh/manifests/service.pp
  class ssh::service {                              定义类
  service {"sshd":
  ensure=>running,                       确定ssh在运行
  hasstatus=>true,                        查看ssh服务状态
  hasrestart=>true,                       重启ssh服务
  enable=>ture,                          服务器是否开机
  require=>Class["ssh::config"]              调用ssh::config类
  }
  }
  # vim /etc/puppet/modules/ssh/manifests/init.pp    模块主配置文件
  class ssh{
  include  ssh::install,ssh::config,ssh::service    调用上面三个类
  }
  v 复制已修改好的ssh的配置文件到默认目录
  # cp /etc/ssh/sshd_config  /etc/puppet/modules/ssh/files/ssh/
  #chown puppet /etc/puppet/modules/ssh/files/ssh/sshd_config
  v 创建节点配置文件
  # vim /etc/puppet/manifests/nodes/ssh.pp
  node 'client.test.cn' {                            定义客户端入口
  include ssh
  }
  # vim /etc/puppet/manifests/nodes/site.pp          配置节点位置
  import "nodes/ssh.pp"
  同步方法:
  v 客户端主动拉取
  #puppet agent -t
  v 服务器推送同步
  2 客户端
  # echo "listen = true" >> /etc/puppet/puppet.conf
  # echo "allow *" >> /etc/puppet/auth.conf
  #/etc/init.d/puppetclient restart
  #vim /etc/ssh/sshd_config
  #netstat -lnupt |grep ssh
  2 服务端
  #puppet kick client.test.cn

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-544849-1-1.html 上篇帖子: puppet自动化运维工具安装配置 下篇帖子: puppet基础篇(练习篇)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表