Common middleware installation statements

content include:

Install Redis

  • installRedis.sh
cd /tools
scp [email protected]:/tools/redis-5.0.5.tar.gz  /tools
 
tar -zxvf redis-5.0.5.tar.gz -C /usr/local/
cd /usr/local/redis-5.0.5/
make install  prefix=/usr/local/bin
mkdir /etc/redis
cp /usr/local/redis-5.0.5/redis.conf /etc/redis/
chmod 777 /etc/redis/redis.conf
 
sed -i 's/daemonize no/daemonize yes/g' `grep -lr 'daemonize no' /etc/redis/`
cp /usr/local/redis-5.0.5/utils/redis_init_script /etc/init.d/redis
chmod +x /etc/init.d/redis
sed -i 's/REDISPORT=6379/REDISPORT=redis/g' /etc/init.d/redis
sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/init.d/redis
sed -i 's/# requirepass foobared/requirepass Spdb@1234/g' /etc/init.d/redis
 
chkconfig --add   redis
systemctl enable  redis
systemctl status  redis.service
systemctl start   redis.service
  • Redis.conf
protected-mode yes
bind 0.0.0.0
port 6379
daemonize yes

pidfile "/var/run/redis_6379.pid"
logfile "/etc/redis/redis.log"

dir "/etc/redis"
dbfilename "dump.rdb"
replica-read-only yes

masterauth "ljfirst"
requirepass "ljfirst"
replicaof 10.xxx.xxx.214 6379 # 从节点才配置这个
  • Sentinel.conf
port 26379
daemonize yes
protected-mode no
 
pidfile "/var/run/redis-sentinel.pid"
logfile "/etc/redis/sentinel.log"
dir "/tmp"
 
sentinel myid 9632dc4e6abd37cfbc1cf347bcf38f3aa81a2450
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster01 10.xxx.xxx.214 6379 2
sentinel down-after-milliseconds mymaster01 5000

sentinel failover-timeout mymaster01 10000
sentinel client-reconfig-script mymaster01 /etc/redis/transip.sh # 启用VIP的语句
sentinel auth-pass mymaster01 Spdb@1234
  • VIP binding script
#!/bin/bash
MASTER_IP=$6
LOCAL_IP='10.xxx.xxx.212'
VIP='10.xxx.xxx.202'
NETMASK='24'
# 此处的网卡用 ifconfig 查看
INTERFACE='eth0'

if [ ${MASTER_IP}=${LOCAL_IP} ]; then
    /sbin/ip  addr  add  ${VIP}/${NETMASK} dev ${INTERFACE}
    /sbin/arping    -q -c 3 -A ${VIP}  -I ${INTERFACE}
    exit 0
else
    /sbin/ip  addr  del  ${VIP}/${NETMASK} dev ${INTERFACE}
    exit 0
fi
exit 1

Install NGINX

  • installNginx.sh
cd /tools
scp [email protected]:/tools/\{nginx.sh,nginx-1.19.0.tar.gz}  /tools
 
tar -zxvf /tools/nginx-1.19.0.tar.gz -C /usr/local/
yum install -y pcre pcre-devel zlib zlib-devel  openssl openssl-devel
cd /usr/local/nginx-1.19.0
cp /tools/nginx.sh ./
source nginx.sh
 
make && make install
mkdir -p /var/temp/nginx/client
cd /usr/local/nginx/sbin
./nginx
ps aux |grep nginx
  • makeNginx.sh
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-file-aio \
--with-http_realip_module
  • nginx.conf
#user  nobody;
user  root;
worker_processes  1;
error_log   /usr/local/nginx/logs/error.log;
pid        /usr/local/nginx/logs/nginx.pid;

events {
    worker_connections  1024;
}

# 此处是 TCP 的分流写法,与HTTP的好像不能同时存在
stream{
    upstream cloudadapt{
            server 10.145.33.221:81  weight=1;
            server 10.145.33.222:81  weight=1;
    }
    server {
        listen       81;
        proxy_timeout 500s;
        #server_name  localhost;
        proxy_pass  cloudadapt;
    }
}

# 此处是 HTTP 的分流写法
http {
    include       mime.types;
    default_type  application/octet-stream;
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
 
    # 此处是Nginx本服务对外暴露的地址
    server {
        listen       88;
        server_name  localhost;
        location / {
            root   /usr/local/nginx/html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
 
    # 此处是用于负载均衡的写法
    upstream loverlj{
            server 10.xx.xx.15:8104 ;
            #此处为主备模式
            server 10.xx.xx.16:8104 backup;
    }
    server {
        listen       1104;
        server_name  localhost;
        location  / {
            proxy_pass  http://loverlj;
            root   /usr/local/nginx/html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

Install RabbitMQ

  • installRabbitMQ.sh
cd /tools
scp [email protected]:/tools/\{rabbitmq-server-3.7.17-1.el7.noarch.rpm,socat-1.7.3.2-2.el7.x86_64.rpm,erlang-22.0.7-1.el7.x86_64.rpm}  /tools
 
rpm  -ivh  erlang-22.0.7-1.el7.x86_64.rpm
yum  -y  install  socat
rpm  -ivh  rabbitmq-server-3.7.17-1.el7.noarch.rpm
service  rabbitmq-server  start
chkconfig  rabbitmq-server  on
 
cd /usr/lib/rabbitmq/bin
rabbitmqctl  add_user sa Spdb@1234
rabbitmqctl  set_user_tags sa administrator
rabbitmqctl  set_permissions  -p  /  sa   ".*"  ".*"  ".*"
rabbitmq-plugins enable rabbitmq_management
  • installRabbitMQMirrorCluster.sh
echo "please handle"
read
 
ipmaster=10.12
ip1=10.12
ip2=10.12
scp  /var/lib/rabbitmq/.erlang.cookie  root@$ip1:/root/
scp  /var/lib/rabbitmq/.erlang.cookie  root@$ip2:/root/
 
rabbitmq-server --detached
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbitmq@HA
rabbitmqctl cluster_status
 
echo $ipmaster kf06mq01   >>  /etc/hosts
echo $ip1      kf06mq2    >>  /etc/hosts
echo $ip2      kf06mq03   >>  /etc/hosts
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

Install HAProxy

  • installHAProxy.sh
scp [email protected]:/tools/\{haproxy.cfg,haproxy-2.1.0.tar.gz,ha_check.py}  /tools
tar -zxvf haproxy-2.1.0.tar.gz -C  /usr/local/
cd /usr/local/haproxy-2.1.0
make TARGET=linux31
make install PREFIX=/usr/local/haproxy
 
cp /tools/haproxy.cfg /usr/local/haproxy/conf
cp /usr/local/haproxy/sbin/haproxy /etc/init.d/
chkconfig  --add  haproxy
#/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
service haproxy start
  • haproxy.cfg
####################HAProxy配置中分成五部分内容,当然这些组件不是必选的,可以根据需要选择部分作为配置。
#global  :参数是进程级的,通常和操作系统(OS)相关。这些参数一般只设置一次,如果配置无误,就不需要再次配置进行修改
#defaults:配置默认参数的,这些参数可以被利用配置到frontend,backend,listen组件
#frontend:接收请求的前端虚拟节点,Frontend可以根据规则直接指定具体使用后端的 backend(可动态选择)。
#backend :后端服务集群的配置,是真实的服务器,一个Backend对应一个或者多个实体服务器。
#listen  :Frontend和Backend的组合体。
 
global
        log             127.0.0.1 local0
        maxconn         20000
        chroot          /usr/local/haproxy-2.1.0
        uid             200
        gid             200
        daemon
        pidfile         /usr/local/haproxy-2.1.0/haproxy.pid
        ulimit-n        40020
        nbproc          1
 
defaults
        log         global
        mode    tcp
        option  tcplog
        option  dontlognull
        retries 3
        timeout connect 5000
        timeout client  50000
        timeout server  50000
#       errorfile 400 /etc/haproxy/errors/400.http
#       errorfile 403 /etc/haproxy/errors/403.http
#       errorfile 408 /etc/haproxy/errors/408.http
#       errorfile 500 /etc/haproxy/errors/500.http
#       errorfile 502 /etc/haproxy/errors/502.http
#       errorfile 503 /etc/haproxy/errors/503.http
#       errorfile 504 /etc/haproxy/errors/504.http
 
listen middlesoft
    bind *:5673
    balance  roundrobin
    mode  tcp
    option tcplog
    option  tcpka
    #bind-process 2
    timeout client 15s
    timeout connect 3s
    timeout server 15s
    server HARabbitmq1 10.129.0.162:5672 check inter 5000 rise 2 fall 3
    server HARabbitmq2 10.129.0.163:5672 check inter 5000 rise 2 fall 3
    server HARabbitmq3 10.129.0.164:5672 check inter 5000 rise 2 fall 3
 
    # weight - 调节服务器的负重
    # check - 允许对该服务器进行健康检查
    # inter - 设置连续的两次健康检查之间的时间,单位为毫秒(ms),默认值 2000(ms)
    # rise - 指定多少次连续成功的健康检查后,可认定该服务器处于可操作状态,默认值 2
    # fall - 指定多少次不成功的健康检查后,认为服务器为当掉状态,默认值 3
    # maxconn - 指定可被发送到该服务器的最大并发连接数
 
listen rabbitmqbrower
    bind *:15673
    balance  roundrobin
    server HARabbitmq1 10.129.0.162:15672 check inter 5000 rise 2 fall 3
    server HARabbitmq2 10.129.0.163:15672 check inter 5000 rise 2 fall 3
    server HARabbitmq3 10.129.0.164:15672 check inter 5000 rise 2 fall 3
 
# 配置haproxy web监控,查看统计信息
listen monitoring
       bind    0.0.0.0:8100
       mode    http
       option  httplog
       stats   enable
       #设置haproxy监控地址为http://localhost:8100/stats
       stats   uri  /stats
       stats   refresh 5s

Install Keepalived

  • installKeepalived.sh
scp [email protected]:/tools/\{keepalived.conf,keepalived-2.0.20.tar.gz}  /tools
tar -zxvf keepalived-2.0.20.tar.gz -C  /usr/local/
 
cd  /usr/local/keepalived-2.0.20
yum -y install openssl-devel
./configure --prefix=/usr/local/keepalived
 
make && make install
mkdir /etc/keepalived

cp /tools/keepalived.conf /etc/keepalived/
chmod 664 /etc/keepalived/keepalived.conf
cp /tools/keepalived-2.0.20/keepalived/etc/init.d/keepalived  /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/
cp /usr/local/keepalived/etc/sysconfig/keepalived  /usr/sbin
 
chmod +x /etc/init.d/keepalived
chkconfig  --add  keepalived
systemctl enable keepalived.service
 
systemctl start keepalived.service
  • keepalived.conf
! Configuration File for keepalived
 
global_defs {
   notification_email {
       root@localhost
   }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id HARabbitmq3
   #vrrp_mcast_group4 224.26.1.1
}
 
vrrp_script chk_haproxy {
    script "/tools/ha_check.sh"
    interval 1
    weight -2
    timeout 30
}
 
vrrp_instance haproxy {
    state BACKUP
    interface eth0
    virtual_router_id 108
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1234
    }
 
    track_script {
        chk_haproxy
    }
    virtual_ipaddress {
        10.129.0.180
    } 
}

  • ha_check.py
#!/bin/bash
 
if [ ${ps -C haproxy --no-header |wc -l} -eq 0 ]; then
   /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
fi
 
sleep 3
 
if [ ${ps -C haproxy --no-header |wc -l} -eq 0 ]; then
   systemctl stop keepalived
fi

Centos7 repo sample, sentence to refresh yum source

  • centos7.repo
[base7_7]
name=CentOS-7Server - Base
baseurl=http://10.129.9.217/repo/20200701/centos7_7/base7_7
enabled=1
gpgcheck=0
 
[updates7_7]
name=CentOS-7Server - Updates
baseurl=http://10.129.9.217/repo/20200701/centos7_7/updates7_7
enabled=1
gpgcheck=0
 
[extras7_7]
name=CentOS-7Server - Extras
baseurl=http://10.129.9.217/repo/20200701/centos7_7/extras7_7
enabled=1
gpgcheck=0
  • yum.sh
scp [email protected]:/tools/\{centos7.repo,installHAProxy.sh,installkeepalived.sh,installNginx.sh,installRabbitMQMirrorCluster.sh,installRabbitMQ.sh,installRedis.sh}  /etc/yum.repos.d/
chmod 777 /etc/yum.repos.d/centos7.repo
 
yum repolist all
yum clean all
yum makecache
yum install -y gcc-c++ tcl
 

Guess you like

Origin blog.csdn.net/ljfirst/article/details/107848874