脚本部署redis数据库集群

#!/bin/bash
#部署一主二从三哨兵redis集群,请将redis-3.2.12.tar.gz、redis.sh上传到三个节点的/root目录
#填写自己的IP地址
HOSTIP1=192.168.200.11
HOSTIP2=192.168.200.12
HOSTIP3=192.168.200.13
#检查是否是root用户
if [ $(id -u) != "0" ]; then
    echo "Error: You must be root to run this script, please use root to install"
    exit 1
fi

#配置基本环境
install_init(){
    #关闭防火墙
    systemctl stop firewalld && systemctl disable firewalld
    setenforce 0
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    #获取主机IP
    HOSTIP=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}')
    #根据主机IP修改主机名、设置主机名映射
    if [ $HOSTIP1 == $HOSTIP ]; then
        hostnamectl set-hostname redis1
        echo "$HOSTIP1 redis1" >>/etc/hosts
    elif [  $HOSTIP2 == $HOSTIP ]; then
        hostnamectl set-hostname redis2
        echo "$HOSTIP2 redis2" >>/etc/hosts
    elif [ $HOSTIP3 == $HOSTIP ]; then
        hostnamectl set-hostname redis3
        echo "$HOSTIP3 redis3" >>/etc/hosts
    fi
    #配置本地yum源
    tar -xvf redis-3.2.12.tar.gz -C /opt/
    mv /etc/yum.repos.d/* /media/
    cat >/etc/yum.repos.d/redis.repo<< EOF
[redis]
name=redis
baseurl=file:///opt/redis
gpgcheck=0
enabled=1
EOF
    yum clean all && yum repolist
}

#安装、配置redis
install_redis(){
  #使用yum安装redis
  yum install -y redis
  #启动redis并设置开机自启
  systemctl enable redis &&  systemctl start redis
  #检查redis服务是否ok
  if [ $? -eq 0 ];then
      echo -e "\033[36m==========redis安装、启动成功==========\033[0m"
  else
      echo -e "\033[31m**********redis安装、启动失败,请检查**********\033[0m"
      exit 1
  fi
  sleep 2
  #修改redis配置文件
  sed -i 's/bind 127.0.0.1/#bind 127.0.0.1/g' /etc/redis.conf
  sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf
  sed -i 's/daemonize no/daemonize yes/g' /etc/redis.conf
  sed -i 's/appendonly no/appendonly yes/g' /etc/redis.conf
  sed -i '$a\requirepass "123456"' /etc/redis.conf
  sed -i '$a\masterauth "123456"' /etc/redis.conf
  #修改非主节点的配置文件
  if [ $HOSTIP != $HOSTIP1 ]; then
        echo "slaveof $HOSTIP1 6379" >>/etc/redis.conf
  fi
  systemctl restart redis
}

#配置哨兵模式
sentinels(){
   #修改配置文件
   sed -i 's/# protected-mode no/protected-mode no/g' /etc/redis-sentinel.conf
   sed -i 's/sentinel monitor mymaster 127.0.0.1 6379 2/sentinel monitor mymaster 192.168.200.11 6379 2/g' /etc/redis-sentinel.conf
   sed -i 's/sentinel down-after-milliseconds mymaster 30000/sentinel down-after-milliseconds mymaster 5000/g' /etc/redis-sentinel.conf
   sed -i 's/sentinel failover-timeout mymaster 180000/sentinel failover-timeout mymaster 15000/g' /etc/redis-sentinel.conf
   sed -i 's/sentinel parallel-syncs mymaster 1/sentinel parallel-syncs mymaster 2/g' /etc/redis-sentinel.conf
   sed -i '$a\sentinel auth-pass mymaster 123456' /etc/redis-sentinel.conf
   systemctl enable redis-sentinel
   systemctl restart redis-sentinel
   #检查哨兵模式是否ok
   if [ $? -eq 0 ];then
       echo -e "\033[36m==========redis哨兵模式启动成功==========\033[0m"
   else
       echo -e "\033[31m**********redis哨兵模式启动失败,请检查**********\033[0m"
       exit 1
   fi
}

#运行脚本的入口,以下为函数调用顺序
install_init
install_redis
sentinels





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值