随着公司应用需求的增加,需要不断的扩展,服务器数量也随之增加,当服务器数量不断增加,我们会发现一台puppetmaster压力大,解析缓慢,而且时不时出现“time out”之类的报错,那这时有什么优化的办法吗?我们在Puppet官网上找寻解决方案,发现puppetmaster可以配置多端口,结合WEB代理(推荐Nginx),这样puppetmaster承受能力至少可以提升数倍以上,相当于在很大程度上优化了puppet的处理能力。

  1、遵循前面的环境设定,我们这里的服务器环境及软件版本分别为:

  服务器系统:CentOS5.8 x86_64

  Ruby版本:ruby-1.8.5

  Puppet版本:puppet-2.7.9

  Nginx版本:nginx-0.8.46

  2、Mongrel安装

  要使用puppet多端口配置,需要指定mongrel类型,默认没有安装,需要安装:


yum install -y rubygem-mongrel


  3、配置puppetmaster

  在/etc/sysconfig/puppetmaster文件末尾添加如下两行,分别代表多端口、mongrel类型,内容如下所示:


PUPPETMASTER_PORTS=(8141 8142 8143 8144 8145)
PUPPETMASTER_EXTRA_OPTS="--servertype=mongrel --ssl_client_header=HTTP_X_SSL_SUBJECT"


  4、安装Nginx服务

  安装之前请确保系统已经安装pcre-devel正则库,然后再编译安装Nginx,需要添加SSL模块参数支持,Nginx的安装过程如下所示:


yum -y install pcre-devel
cd /usr/local/src
wgethttp://nginx.org/download/nginx-0.8.46.tar.gz
tar zxvf nginx-0.8.46.tar.gz
cd nginx-0.8.46
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make && make install && cd ../


  添加www用户组及用户,命令如下所示:


groupadd www
useradd -g www www