ansible 200.200.200.201
all:
children:
master:
hosts:
200.200.200.21:
200.200.200.22:
200.200.200.23:
slave:
hosts:
200.200.200.24:
200.200.200.25:
200.200.200.26:
---
# tasks file for firewall
- name: Stop SELinux
command: setenforce 0
become: yes
- name: Stop Firewalld
systemd:
name: firewalld
state: stopped
become: yes
- name: Install the latest version of Redis
yum:
name: redis
state: latest
- name: Copy redis.conf file
template:
src: redis.conf.j2
dest: /etc/redis.conf
remote_src: no
become: yes
- name: Start Redis Server
systemd:
name: redis
state: restarted
become: yes
bind {{ ansible_facts.default_ipv4.address }}
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 3000
---
allips: |
{% set ips = '' %}
{% for host in groups['master'] -%}
{% set ips = ips ~ host ~ ',' %}
{{ ips }}
{%- endfor -%}
---
- name: Execute redis-cli Command
shell: |
redis-cli -h {{ ansible_facts.default_ipv4.address }} --cluster add-node {{ slave_ip }}:6379 {{ groups['master'][master_idx | int] }}:6379 --cluster-slave
become: yes
- hosts: ["all"]
roles:
- role: common
- hosts: ["200.200.200.21"]
tasks:
- name: vars
include_vars: "/root/redis-cluster/master/vars/main.yml"
- name: Execute redis-cli Command
shell: |
printf yes | redis-cli --cluster create {{ allips.replace(',', ':6379 ') }}
become: yes
- hosts: ["slave"]
roles:
- role: slave
ansible-playbook -i hosts playbook