随着公司应用需求的增加,需要不断的扩展,服务器数量也随之增加,当服务器数量不断增加,我们会发现一台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 wget 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