Ansible-playbook Redis6哨兵集群
hostss文件
[master] 192.168.1.5 ansible_connection=local [master:vars] hostanme=master01 [client] 192.168.1.6 hostname=node01 192.168.1.7 hostname=node02 [client:vars] hwf=123 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=123456 [redis:children] master client
gccrpm.sh文件
#!/bin/bash Gcc9=`rpm -qa|grep devtoolset-9-gcc-9.3.1-2.el7.x86_64` if [[ $Gcc9 != "devtoolset-9-gcc-9.3.1-2.el7.x86_64" ]];then cd ~/gcc yum -y localinstall *.rpm source /opt/rh/devtoolset-9/enable echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile else echo "已安装" fi ## 编译安装redis mv ~/redis /usr/local/ cd /usr/local/redis make PREFIX=/usr/local/redis install ##redis环境初始化 echo '511' > /proc/sys/net/core/somaxconn echo 1 > /proc/sys/vm/overcommit_memory echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
redis_6.yaml文件
- name: config hosts: redis vars: - redis_master01_dir: "/usr/local/redis/7000/data" - redis_master01_dir_log: "/usr/local/redis/7000/logs/redis-7000.log" - redis_master01_dir_run: "/usr/local/redis/7000/run/redis-7000.pid" - redis_port_master01: "7000" - redis_ip_master01: "192.168.1.5" - redis_requirepass_master01: "123456" - redis_masterauth_master01: "123456" - sentinel_master01_port: "26379" - sentinel_master01_pid: "/usr/local/redis/7000/run/sentinel-7000.pid" - sentinel_master01_logs: "/usr/local/redis/7000/logs/sentinel-7000.log" - redis_port_node01: "7001" - redis_ip_node01: "192.168.1.6" - redis_node01_dir: "/usr/local/redis/7001" - redis_node01_dir_log: "/usr/local/redis/7001/redis-7001.log" - redis_node01_dir_run: "/usr/local/redis/7001/redis-7001.pid" - redis_requirepass_node01: "123456" - redis_masterauth_node01: "123456" - sentinel_node01_port: "26380" - sentinel_node01_pid: "/usr/local/redis/7001/run/sentinel-7001.pid" - sentinel_node01_logs: "/usr/local/redis/7001/logs/sentinel-7001.log" - redis_port_node02: "7002" - redis_ip_node02: "192.168.1.7" - redis_node02_dir: "/usr/local/redis/7002" - redis_node02_dir_log: "/usr/local/redis/7002/redis-7002.log" - redis_node02_dir_run: "/usr/local/redis/7002/redis-7002.pid" - redis_requirepass_node02: "123456" - redis_masterauth_node02: "123456" - sentinel_node02_port: "26381" - sentinel_node02_pid: "/usr/local/redis/7002/run/sentinel-7000.pid" - sentinel_node02_logs: "/usr/local/redis/7002/logs/sentinel-7000.log" tasks: - name: 01-Extract gcc.tgz into download unarchive: src: '{{ item.src }}' dest: '{{ item.dest }}' creates: '{{ item.creates }}' loop: - { src: ./gcc.tgz, dest: ~/, creates: ~/gcc } - { src: ./redis-6.0.10.tgz, dest: ~/, creates: ~/redis } - name: 02-install gcc rpm from a local file script: /root/gccrpm.sh tags: - "gcc" - name: 03-master01 mkdir redis dir file: path: '/usr/local/redis/{{ item.w }}/{{ item.x }}' recurse: yes with_items: - { w: 7000, x: logs } - { w: 7000, x: run } - { w: 7000, x: data } - { w: 7000, x: conf } when: ( ansible_hostname == "master01" ) tags: - "mkdir" - name: 04-node01 mkdir redis dir file: path: '/usr/local/redis/{{ item.w }}/{{ item.x }}' recurse: yes with_items: - { w: 7001, x: logs } - { w: 7001, x: run } - { w: 7001, x: data } - { w: 7001, x: conf } when: ( ansible_hostname == "node01" ) - name: 05-node02 mkdir redis dir file: path: '/usr/local/redis/{{ item.w }}/{{ item.x }}' recurse: yes with_items: - { w: 7002, x: logs } - { w: 7002, x: run } - { w: 7002, x: data } - { w: 7002, x: conf } when: ( ansible_hostname == "node02" ) - name: 06-Create/Insert redis-7000.conf blockinfile: path: /usr/local/redis/7000/conf/redis-7000.conf create: yes block: | bind {{ redis_ip_master01 }} protected-mode no port {{ redis_port_master01 }} masterauth {{ redis_masterauth_master01 }} requirepass {{ redis_requirepass_master01 }} tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize yes supervised no pidfile {{ redis_master01_dir_run }} loglevel notice logfile {{ redis_master01_dir_log }} databases 16 always-show-logo yes save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb rdb-del-sync-files no dir {{ redis_master01_dir }} replica-serve-stale-data yes replica-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-diskless-load disabled repl-disable-tcp-nodelay no replica-priority 100 acllog-max-len 128 lazyfree-lazy-eviction no lazyfree-lazy-expire no lazyfree-lazy-server-del no replica-lazy-flush no lazyfree-lazy-user-del no oom-score-adj no oom-score-adj-values 0 200 800 appendonly yes appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes aof-use-rdb-preamble yes lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-size -2 list-compress-depth 0 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 stream-node-max-bytes 4096 stream-node-max-entries 100 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit replica 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 dynamic-hz yes aof-rewrite-incremental-fsync yes rdb-save-incremental-fsync yes jemalloc-bg-thread yes when: ( ansible_hostname == "master01" ) - name: 07-Create/Insert redis-7001.conf blockinfile: path: /usr/local/redis/7001/conf/redis-7001.conf create: yes block: | bind {{ redis_ip_node01 }} protected-mode no slaveof {{ redis_ip_master01 }} {{ redis_port_master01 }} slave-read-only yes port {{ redis_port_node01 }} masterauth {{ redis_masterauth_node01 }} requirepass {{ redis_requirepass_node01 }} tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize yes supervised no pidfile {{ redis_node01_dir_run }} loglevel notice logfile {{ redis_node01_dir_log }} databases 16 always-show-logo yes save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb rdb-del-sync-files no dir {{ redis_node01_dir }} replica-serve-stale-data yes replica-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-diskless-load disabled repl-disable-tcp-nodelay no replica-priority 100 acllog-max-len 128 lazyfree-lazy-eviction no lazyfree-lazy-expire no lazyfree-lazy-server-del no replica-lazy-flush no lazyfree-lazy-user-del no oom-score-adj no oom-score-adj-values 0 200 800 appendonly yes appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes aof-use-rdb-preamble yes lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-size -2 list-compress-depth 0 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 stream-node-max-bytes 4096 stream-node-max-entries 100 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit replica 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 dynamic-hz yes aof-rewrite-incremental-fsync yes rdb-save-incremental-fsync yes jemalloc-bg-thread yes when: ( ansible_hostname == "node01" ) - name: 08-Create/Insert redis-7002.conf blockinfile: path: /usr/local/redis/7002/conf/redis-7002.conf create: yes block: | bind {{ redis_ip_node02 }} slaveof {{ redis_ip_master01 }} {{ redis_port_master01 }} slave-read-only yes protected-mode no port {{ redis_port_node02 }} masterauth {{ redis_masterauth_node02 }} requirepass {{ redis_requirepass_node02 }} tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize yes supervised no pidfile {{ redis_node02_dir_run }} loglevel notice logfile {{ redis_node02_dir_log }} databases 16 always-show-logo yes save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb rdb-del-sync-files no dir {{ redis_node02_dir }} replica-serve-stale-data yes replica-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-diskless-load disabled repl-disable-tcp-nodelay no replica-priority 100 acllog-max-len 128 lazyfree-lazy-eviction no lazyfree-lazy-expire no lazyfree-lazy-server-del no replica-lazy-flush no lazyfree-lazy-user-del no oom-score-adj no oom-score-adj-values 0 200 800 appendonly yes appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes aof-use-rdb-preamble yes lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-size -2 list-compress-depth 0 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 stream-node-max-bytes 4096 stream-node-max-entries 100 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit replica 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 dynamic-hz yes aof-rewrite-incremental-fsync yes rdb-save-incremental-fsync yes jemalloc-bg-thread yes when: ( ansible_hostname == "node02" ) - name: 09-Create/Insert sentinel-7000.conf blockinfile: path: /usr/local/redis/7000/conf/sentinel-7000.conf create: yes block: | port {{ sentinel_master01_port }} daemonize yes protected-mode no pidfile {{ sentinel_master01_pid }} logfile {{ sentinel_master01_logs }} dir {{ redis_master01_dir }} sentinel monitor mymaster {{ redis_ip_master01 }} {{ redis_port_master01 }} 2 sentinel down-after-milliseconds mymaster 30000 sentinel auth-pass mymaster {{ redis_masterauth_master01 }} sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 sentinel deny-scripts-reconfig yes when: ( ansible_hostname == "master01" ) - name: 10-Create/Insert sentinel-7001.conf blockinfile: path: /usr/local/redis/7001/conf/sentinel-7001.conf create: yes block: | port {{ sentinel_node01_port }} daemonize yes protected-mode no pidfile {{ sentinel_node01_pid }} logfile {{ sentinel_node01_logs }} dir {{ redis_node01_dir }} sentinel monitor mymaster {{ redis_ip_master01 }} {{ redis_port_master01 }} 2 sentinel down-after-milliseconds mymaster 30000 sentinel auth-pass mymaster {{ redis_masterauth_master01 }} sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 sentinel deny-scripts-reconfig yes when: ( ansible_hostname == "node01" ) - name: 11-Create/Insert sentinel-7002.conf blockinfile: path: /usr/local/redis/7002/conf/sentinel-7002.conf create: yes block: | port {{ sentinel_node02_port }} daemonize yes protected-mode no pidfile {{ sentinel_node02_pid }} logfile {{ sentinel_node02_logs }} dir {{ redis_node02_dir }} sentinel monitor mymaster {{ redis_ip_master01 }} {{ redis_port_master01 }} 2 sentinel down-after-milliseconds mymaster 30000 sentinel auth-pass mymaster {{ redis_masterauth_master01 }} sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 sentinel deny-scripts-reconfig yes when: ( ansible_hostname == "node02" ) - name: 12-master01 start redis-server shell: | cd /usr/local/redis ./bin/redis-server ./7000/conf/redis-7000.conf when: ( ansible_hostname == "master01" ) - name: 13-node01 start redis-server shell: | cd /usr/local/redis ./bin/redis-server ./7001/conf/redis-7001.conf when: ( ansible_hostname == "node01" ) - name: 14-node02 start redis-server shell: | cd /usr/local/redis ./bin/redis-server ./7002/conf/redis-7002.conf when: ( ansible_hostname == "node02" ) - name: 15-master01 start redis-sentinel shell: | cd /usr/local/redis ./bin/redis-sentinel ./7000/conf/sentinel-7000.conf when: ( ansible_hostname == "master01" ) - name: 16-node01 start redis-sentinel shell: | cd /usr/local/redis ./bin/redis-sentinel ./7001/conf/sentinel-7001.conf when: ( ansible_hostname == "node01" ) - name: 17-node02 start redis-sentinel shell: | cd /usr/local/redis ./bin/redis-sentinel ./7002/conf/sentinel-7002.conf when: ( ansible_hostname == "node02" )
继续阅读

我的微信
这是我的微信扫一扫
评论