Ansible-playbook Redis6哨兵集群

root
233
文章
0
评论
2021年5月30日19:43:39 评论 10938字阅读36分27秒

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" )




 

 

 

 

 

 

 

 

 

继续阅读
weinxin
我的微信
这是我的微信扫一扫
  • 文本由 发表于 2021年5月30日19:43:39
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Ansiable-ploybook LVM Ansible

Ansiable-ploybook LVM

Ansiable-ploybook LVM Ansible 配置文件修改 位置在:vim /etc/ansible/ansible.cfg host_key_checking = False # 首次...
Ansible-roles Ansible

Ansible-roles

Ansible-roles Roles是基于已知文件结构自动加载某些变量文件,任务和处理程序的方法。按角色对内容进行分组,适合构建复杂的部署环境。 1、定义Roles ansible-galaxy i...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: