PUPPET生产拾遗(1)

目前产线服务器数量大约高峰在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默认的同步周期是半小时,可以根据时间修改,修改后可以在每次同步时间后加个随机数,在随机数内进行同步,避免大并发在同一个时间内进行同步而导致的失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值