setup_raft_cluster.j2 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/bash
  2. #####################################################################
  3. # {{ ansible_managed }}
  4. #####################################################################
  5. {% set primary_node = cpredis_node_ips.split(',')[0]%}
  6. {% set other_nodes = cpredis_node_ips.split(',')[1:]%}
  7. #####################################################################
  8. # Data Information:
  9. #####################################################################
  10. # Primary Node: {{ primary_node }}
  11. # Other Nodes: {{ other_nodes | join(",") }}
  12. # Raft Instance Ports:
  13. {% for p in redis_ports -%}
  14. # - {{ p.port }}
  15. {% endfor %}
  16. #####################################################################
  17. # Raft Group Setups!!
  18. {% for p in redis_ports %}
  19. echo "Setting up Raft Groups - port {{ p.port }}"
  20. /usr/local/bin/redis-cli -h {{ primary_node }} -p {{ p.port }} raft.cluster init
  21. {% for node in other_nodes %}
  22. /usr/local/bin/redis-cli -h {{ node }} -p {{ p.port }} raft.cluster join {{ primary_node }}:{{ p.port }}
  23. {% endfor %}
  24. {% endfor %}
  25. #####################################################################
  26. # Sleep until raft cluster is created
  27. echo "Waiting for Raft to stabilize"
  28. sleep 10
  29. #####################################################################
  30. # Set up Shard Clusters
  31. {% for p in redis_ports %}
  32. echo "Setting up Shard Clusters"
  33. {% for t in redis_ports %}
  34. {% if t.port != p.port %}
  35. /usr/local/bin/redis-cli -h {{ primary_node }} -p {{ p.port }} RAFT.SHARDGROUP LINK {{ primary_node }}:{{ t.port }}
  36. {% endif %}
  37. {% endfor %}
  38. {% endfor %}