- 쉘 프로그래밍 - 활용2023년 03월 29일 11시 32분 10초에 업로드 된 글입니다.작성자: 각수짱728x90반응형SMALL
쉘 스크립트로 레디스 7대 센티넬 구성으로 세팅.
Role Hostname IP Master master 192.168.52.157 Slave slave 192.168.52.158 slave 192.168.52.159 slave 192.168.52.160 Sentinel sentinel 192.168.52.161 sentinel 192.168.52.162 sentinel 192.168.52.163 sshpass 설치
yum install -y sshpass
레디스 설치
vi commands.sh #!/bin/bash # 패키지 설치 및 방화벽 및 SELinux 설정 yum install -y redis & wait systemctl stop firewalld setenforce 0
master 설정
vi master.sh #!/bin/bash # 마스터 서버 설정 sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis.conf sed -i 's/daemonize no/daemonize yes/g' /etc/redis.conf sed -i 's/# min-replicas-to-write 3/min-replicas-to-write 1/g' /etc/redis.conf sed -i 's/# min-replicas-max-lag 10/min-replicas-max-lag 10/g' /etc/redis.conf sed -i 's/# requirepass foobared/requirepass qwer1234/g' /etc/redis.conf systemctl restart redis
슬레이브 설정
vi slave.sh #!/bin/bash # 슬레이브 서버 설정 sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis.conf sed -i 's/daemonize no/daemonize yes/g' /etc/redis.conf sed -i 's/# replicaof <masterip> <masterport>/replicaof 192.168.52.157 6379/g' /etc/redis.conf sed -i 's/# masterauth <master-password>/masterauth qwer1234/g' /etc/redis.conf sed -i 's/# requirepass foobared/requirepass qwer1234/g' /etc/redis.conf systemctl restart redis
센티널 설정
vi sentinel.sh #!/bin/bash # 센티넬 서버 설정 sed -i 's/# bind 127.0.0.1 192.168.1.1/bind 0.0.0.0/g' /etc/redis-sentinel.conf sed -i 's/daemonize no/daemonize yes/g' /etc/redis-sentinel.conf sed -i 's/sentinel monitor mymaster 127.0.0.1 6379 2/sentinel monitor mymaster 192.168.52.157 6379 2/g' /etc/redis-sentinel.conf sed -i 's/# sentinel auth-pass <master-name> <password>/sentinel auth-pass mymaster qwer1234/g' /etc/redis-sentinel.conf systemctl restart redis-sentinel
센티널 구성
vi config_sentinel.sh #!/bin/bash # 서버 IP 및 역할 설정 servers=" 192.168.52.157:master 192.168.52.158:slave 192.168.52.159:slave 192.168.52.160:slave 192.168.52.161:sentinel 192.168.52.162:sentinel 192.168.52.163:sentinel " # 서버별 설정 적용 for server in $servers do server_ip=`echo $server | cut -d":" -f 1` server_role=`echo $server | cut -d":" -f 2` echo $server_ip echo $server_role # commands.sh 파일 전송 sshpass -p 'qwer1234' scp -o StrictHostKeyChecking=no commands.sh root@$server_ip:/root/commands.sh # commands.sh 실행 sshpass -p 'qwer1234' ssh -t -o StrictHostKeyChecking=no root@$server_ip "bash /root/commands.sh" if [ $server_role = "master" ] then echo "config master" sshpass -p 'qwer1234' ssh -t -o StrictHostKeyChecking=no root@$server_ip < master.sh elif [ $server_role = "slave" ] then echo "config slave" sshpass -p 'qwer1234' ssh -t -o StrictHostKeyChecking=no root@$server_ip < slave.sh elif [ $server_role = "sentinel" ] then echo "config sentinel" sshpass -p 'qwer1234' ssh -t -o StrictHostKeyChecking=no root@$server_ip < sentinel.sh fi done
확인
master에서 바뀐 거 확인
vi /etc/redis.conf
redis-cli auth qwer1234 info Replication
마스터에서 slave3대가 연결돼 있는 것을 확인할 수 있다
sentinel에서도 확인
redis-cli -p 26379 sentinel master mymaster sentinel slaves mymaster
마스터확인
슬레이브 확인
728x90반응형LIST'IaC' 카테고리의 다른 글
4. Terraform(테라폼) (0) 2023.03.30 Ansible(앤서블) - 활용(3계층구현) (0) 2023.03.29 3. Ansible(앤서블) (0) 2023.03.29 2. 쉘 프로그래밍 (0) 2023.03.29 1. IaC (0) 2023.03.28 이전글이 없습니다.댓글