美文网首页
PUPPET使用(一)

PUPPET使用(一)

作者: 钟大發 | 来源:发表于2019-12-14 16:06 被阅读0次

目前产线服务器数量大约高峰在1.6-1.8W台VM+BM,平时在1.2W左右, 批量同步的时候会发生非常严重的惊群效应,有时候一台主机可能6小时都不会成功同步一次,可以做一些调整避免类似情况。

版本

之前产线使用的是puppet3,相比之前puppet2来说性能已经提高了50%,但在使用过puppet4之后只能感叹4真香,更别提现在的5了,所以选择puppet的时候尽量还是选择高版本的puppet,虽然客户端性能提高不大,但master端还是提高的非常给力的。

并发

但即使选择了高版本的puppet,也不过是提高了单个进程的性能,ruby默认的webrick http 实在不适合产线的使用,所以为了使puppet 可以在单台主机上实现高并发,可以使用ruby的passenger ,这个类似python的uwsgi,在配合Nginx,可以使单台master的性能得到充分利用。

  • 安装

由于当前环境不通外网,可以在GEM上下载好包,再进行安装,版本根据自己的puppet&&ruby相关依赖找一下即可

gem local install rake rack passenger

nginx安装可以使用passenger-install-nginx-module ,不过建议还是源码安装,

cat /opt/nginx/conf/nginx.conf
passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19; #指定passenger的root目录,可以使用passenger-config –root得到
passenger_ruby /usr/bin/ruby;  #指定ruby命令的执行路径
passenger_max_pool_size 15;    #定义puppetmaster动态调用的最大进程数量
proxy_buffer_size 4000k; 
proxy_buffering on; 
proxy_buffers 32 1280k; 
proxy_busy_buffers_size 17680k; 
client_max_body_size 10m; 
client_body_buffer_size 4096k; 
server { 
   listen           8140 ssl; #由于puppet通信使用的是ssl,所以此处必须定义ssl 
   server_name      puppet.node.kddi.op.xywy.com;  #puppet服务器的主机名
   root         /etc/puppet/rack/public;  #nginx和passenger的协作目录
   access_log       /data/logs/nginx/proxy.puppet-access.log; 
   error_log        /data/logs/nginx/proxy.puppet-error.log; 
   passenger_enabled on;    #启用passenger模式
   passenger_set_cgi_param    HTTP_X_CLIENT_DN $ssl_client_s_dn; #标记client 请求时提供的dn和 VERIFY,用于传递到puppet  
   passenger_set_cgi_param    HTTP_X_CLIENT_VERIFY $ssl_client_verify; 
#ssl 证书的相关配置
   ssl_session_timeout  5m; 
   ssl_certificate /var/lib/puppet/ssl/certs/puppet.node.kddi.op.xywy.com.pem; 
   ssl_certificate_key /var/lib/puppet/ssl/private_keys/puppet.node.kddi.op.xywy.com.pem; 
   ssl_client_certificate  /var/lib/puppet/ssl/certs/ca.pem; 
   ssl_crl      /var/lib/puppet/ssl/ca/ca_crl.pem; 
   ssl_ciphers      SSLv2:-LOW:-EXPORT:RC4+RSA; 
   ssl_prefer_server_ciphers on; 
   ssl_verify_depth     1; 
   ssl_session_cache    shared:SSL:128m; 
   ssl_verify_client optional; 
} 

横向扩展就是在多个passenger+puppet 前面加个SLB,这个就不再说了,太基本了

配置

上面提到的惊群效应,客户端也可以通过一些配置进行修改,puppet默认的同步周期是半小时,可以根据时间修改,修改后可以在每次同步时间后加个随机数,在随机数内进行同步,避免大并发在同一个时间内进行同步而导致的失败

相关文章

  • PUPPET使用(一)

    目前产线服务器数量大约高峰在1.6-1.8W台VM+BM,平时在1.2W左右, 批量同步的时候会发生非常严重的惊群...

  • puppet入门

    1.puppet 是什么 puppet是一个开源的软件自动化配置和部署工具,很多大型IT公司均在使用puppet对...

  • puppet基本原理,并用puppet分段配置nginx反向代理

    一、puppet概念 1、puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的...

  • 20171204 Puppet(二)

    Puppet模块Puppet部署master/agent模式Puppet多环境配置Puppet kick机制 一、...

  • PUPPET使用(二)

    实际生产使用中,默认的puppet配置方式对应复杂的产线使用场景会遇到各种问题,业务多而杂,标准需求&&非标需求之...

  • puppet之原理及安装

    puppet官方网站:https://puppet.com/puppet中文wiki:http://puppet....

  • 20171202 Puppet(一)

    Puppet的基本概念Puppet的资源Puppet的资源类型Puppet的变量Puppet的流程控制语句Pupp...

  • Puppet

    1、Puppet:简介 2、puppet工作模型: 3、 puppet程序: 4、puppet资源: 5、资源的三...

  • Puppet

    DevOps介绍 puppet work puppet的master/agent puppet 3层代理 sco...

  • puppet

    Puppet理论定义: Puppet 是一个跨平台的集中化配置管理系统,它使用自有的描述语言,可管理配置文件、用户...

网友评论

      本文标题:PUPPET使用(一)

      本文链接:https://www.haomeiwen.com/subject/otncnctx.html