阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Puppet自动化高可用集群部署

141次阅读
没有评论

共计 3668 个字符,预计需要花费 10 分钟才能阅读完成。

前言:随着公司应用需求的增加,需要不断的扩展,服务器数量也随之增加,当服务器数量不断增加,我们会发现一台 puppetmaster 响应很慢,压力大,解析缓慢,有什么优化的方案吗?可以使用 Puppetmaster 配置多端口,结合 Nginx web 代理,这样 puppetmaster 承受能力至少可以提升 10 倍以上。

一、安装配置 mongrel 服务:

要使用 puppet 多端口配置,需要指定 mongrel 类型,默认没有安装,需要安装。在 Puppetmaster 服务器端执行如下命令 (前提是已经安装了对应版本的 epel RedHat 源):

rpm -Uvh http://mirrors.sohu.com/Fedora-epel/5/x86_64/epel-release-5-4.noarch.rpm

yum  install  -y  rubygem-mongrel

在 vi /etc/sysconfig/puppetmaster 文件末尾添加如下两行、

同时注释掉原相同配置项,分别代表多端口、mongrel 类型:

PUPPETMASTER_PORTS=(18140 18141 18142 18143 18144)

PUPPETMASTER_EXTRA_OPTS=”–servertype=mongrel –ssl_client_header=HTTP_X_SSL_SUBJECT”

二、安装配置 Nginx 服务器:

cd /usr/src ;wget -c http://nginx.org/download/nginx-1.2.6.tar.gz ;tar xzf nginx-1.2.6.tgz && cd nginx-1.2.6 &&./configure –prefix=/usr/local/nginx –with-http_ssl_module &&make &&make install

Nginx.conf 配置文件部分内容:

upstream puppetmaster {

        server 127.0.0.1:18140;

        server 127.0.0.1:18141;

        server 127.0.0.1:18142;

        server 127.0.0.1:18143;

        server 127.0.0.1:18144;

  }

server{

  listen 8140;

  root /etc/puppet;

  ssl on;

  ssl_session_timeout 5m;

  #如下为 Puppetmaster 服务器端证书地址

  ssl_certificate /var/lib/puppet/ssl/certs/192-9-117-162-usr/local.com.pem;

  ssl_certificate_key /var/lib/puppet/ssl/private_keys/192-9-117-162-usr/local.com.pem;

  ssl_client_certificate /var/lib/puppet/ssl/ca/ca_crt.pem;

  ssl_crl /var/lib/puppet/ssl/ca/ca_crl.pem;

  ssl_verify_client optional;

  # File sections

  location  /production/file_content/files/{

  types {}

  default_type /usr/locallication/x-raw;

  #主要用于推送文件,定义 files 别名路径

  alias /etc/puppet/files/;

  }

  # Modules files sections

  location  ~/production/file_content/modules/.+/ {

  root /etc/puppet/modules;

  types {}

  default_type usr/locallication/x-raw;

  rewrite ^/production/file_content/modules/(.+)/(.+)$ /$1/files/$2 break;

  } 

  location / {

  #设置跳转到 puppetmaster 负载均衡

  proxy_pass http://puppetmaster;

  proxy_redirect off;

  proxy_set_header Host $host;

  proxy_set_header X-Real-IP $remote_addr;

  proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;

  proxy_set_header X-Client-Verify$ssl_client_verify;

  proxy_set_header X-SSL-Subject$ssl_client_s_dn;

  proxy_set_header X-SSL-Issuer$ssl_client_i_dn;

  proxy_buffer_size 10m;

  proxy_buffers 1024 10m;

  proxy_busy_buffers_size 10m;

  proxy_temp_file_write_size 10m;

  proxy_read_timeout 120;

  }

}

然后重启服务器端 /etc/init.d/puppetmaster restart,重启 nginx WEB,在客户端测试即可。

三、Puppet 多 master 主部署:

如果配置多主集群的话,可以共享 33.10 master1 的证书,然后另外一台 master 挂载证书即可,192.168.33.10 nfs 配置方式如下:

Vi  /etc/exports 内容:

/var/lib/puppet/  *(no_root_squash,rw,sync)

然后在 192.168.33.11master2 上执行:

mount -t  nfs  192.168.33.10:/var/lib/puppet/ssl  /var/lib/puppet/ssl

然后重启 master2puppetmaster 服务。

添加多端口服务,同上需要安装:

yum  install -y rubygem-mongrel

同时修改 master2/etc/sysconfig/puppet.conf 里面:

[main] 段添加 bind address = 0.0.0.0,使监听端口为 0.0.0.0 全局所有地址。

这样在 master1 nginx 可以 upstream,最终 master1 nginx.conf upstream 配置如下:

upstreampuppetmaster {

        server 127.0.0.1:18140;

        server 127.0.0.1:18141;

        server 127.0.0.1:18142;

        server 127.0.0.1:18143;

        server 127.0.0.1:18144;

        #config add 2014-10-10

        server 192.168.33.11:18140;

        server 192.168.33.11:18141;

        server 192.168.33.11:18142;

        server 192.168.33.11:18143;

        server 192.168.33.11:18144;

  }

如果需要做 keepalived 高可用集群,其实也不难,大家可以发散思维去搭建一下哦。更多精彩文章,欢迎持续关注!

Puppet 学习系列:

Puppet 学习一:安装及简单实例应用 http://www.linuxidc.com/Linux/2013-08/88710.htm

Puppet 学习二: 简单模块配置和应用 http://www.linuxidc.com/Linux/2013-08/88711.htm

相关阅读:

有关 Puppet agent 端三种备份恢复方案探讨研究 http://www.linuxidc.com/Linux/2013-07/87885.htm
选择更安全的方式注册你的 Puppet 节点 http://www.linuxidc.com/Linux/2013-07/87884.htm
通过配置 SSH 深刻理解 Puppet 的语法及工作机制 http://www.linuxidc.com/Linux/2013-07/87882.htm
Puppet 利用 Nginx 多端口实现负载均衡 http://www.linuxidc.com/Linux/2013-02/79794.htm
Puppet 集中配置管理系统详解
CentOS(5 和 6)下 Puppet 的 C / S 模式实例 http://www.linuxidc.com/Linux/2011-12/50502.htm

Puppet 的详细介绍 :请点这里
Puppet 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-09/122622.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3668字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中