Puppet自动化高可用集群部署

前言:随着公司应用需求的增加,需要不断的扩展,服务器数量也随之增加,当服务器数量不断增加,我们会发现一台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高可用集群,其实也不难,大家可以发散思维去搭建一下哦。更多精彩文章,欢迎持续关注!

时间: 2024-08-11 01:26:28

Puppet自动化高可用集群部署的相关文章

线上测试高可用集群部署文档【我的技术我做主】

线上测试高可用集群部署文档 目录: 目录:1 项目需求:2 实现方式:2 拓扑图:3 系统及软件版本:3 安装步骤:4 IP分配:4 LVS和keepalived的安装和配置:4 LVS主配置:4 LVS2备 配置:7 web服务器配置9 Mysql-MHA高可用:13 Mysql主配置:13 manager管理端操作:15 VIP切换:16 测试:26 下面是centos5.6的系统环境,如果是centos6版本,只需改动少许地方即可,步骤一致 . ---- by 金戈铁马行飞燕 项目需求:

SpringCloud组件:Eureka高可用集群部署

高可用集群部署 Eureka 服务注册中心.构建项目使用 idea 开发工具创建一个 SpringBoot 项目,添加 Eureka Server 依赖即可, pom.xml 配置文件如下所示: ...... <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>

Spark 概述及其高可用集群部署

Spark入门 一. 学习目标 目标1:熟悉Spark相关概念 目标2:搭建一个Spark集群 二. Spark概述 2.1什么是Spark(官网:http://spark.apache.org) Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目.目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL.Spark Str

pacemaker+corosync+haporxy高可用集群部署

# 安装 Corosync以及pacemaker 部署 yum install -y pacemaker pcs psmisc policycoreutils-python corosync fence-agents-all systemctl start pcsd.service systemctl enable pcsd.service # 修改密码(全执行) echo 'HAcluster123' | passwd --stdin hacluster # 验证集群 pcs cluster

HA高可用集群部署(ricci+luci+fence) 双机热备

主机环境 redhat6.5 6位 实验环境 服务端1 ip172.25.29.1   主机名:server1.example.com   ricci     服务端2 ip172.25.29.2    主机名:server2.example.com    ricci     管理端1 ip172.25.29.3    主机名:server3.example.com    luci     管理端2 ip172.25.29.250     fence_virtd 防火墙状态:关闭 1. 安装ri

Kubernetes1.10HA高可用集群环境搭建

k8s 高可用2个核心 apiserver master 和 etcd etcd:(需高可用)集群的数据中心,用于存放集群的配置以及状态信息,非常重要,如果数据丢失那么集群将无法恢复:因此高可用集群部署首先就是etcd是高可用集群: Apiserver:提供了资源操作的唯一入口,并提供认证.授权.访问控制.API注册和发现等机制.整个集群中其他角色只有通过Apiserver才能访问etcd.CLI工具kubectl也是通过apiserver来对整体集群进行访问控制. Controller-man

Redis Cluster 4.0高可用集群安装、在线迁移操作记录

之前介绍了redis cluster的结构及高可用集群部署过程,今天这里简单说下redis集群的迁移.由于之前的redis cluster集群环境部署的服务器性能有限,需要迁移到高配置的服务器上.考虑到是线上生产环境,决定在线迁移,迁移过程,不中断服务.操作过程如下: 一.机器环境 1 2 3 4 5 6 7 8 9 10 11 12 13 迁移前机器环境 ----------------------------------------------------------------------

ClickHouse 高可用集群安装测试

1. 环境 CentOS 7.6 2. 安装前准备 2.1 检查是否支持 SSE 4.2 指令集 grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported" 2.2 CentOS 取消文件打开数限制 文件打开数限制 在 /etc/security/limits.conf 文件尾追加 * soft nofile 65536 * hard

ProxySQL Cluster 配置详解 以及 高可用集群方案部署记录(完结篇)

早期的ProxySQL若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数据并不能共通,在主实例上配置后,仍需要在备用节点上进行配置,对管理来说非常不方便.但是ProxySQl 从1.4.2版本后,ProxySQL支持原生的Cluster集群搭建,实例之间可以互通一些配置数据,大大简化了管理与维护操作. ProxySQL是一个非中心化代理,在拓扑中,建议将它部署在靠近应用程序服务器的位置处.ProxySQL节点可以很方便地扩展到上百个节点,因为它支持runtime修改配