cp_nodes.yml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. ---
  2. - hosts: all
  3. become: yes
  4. become_user: root
  5. become_method: sudo
  6. gather_facts: yes
  7. vars:
  8. consul_ui: true
  9. consul_server: true
  10. consul_server_nodes:
  11. - 10.161.11.148
  12. - 10.161.2.71
  13. - 10.161.18.196
  14. redis_ports:
  15. - 19901
  16. - 19902
  17. - 19903
  18. - 19904
  19. - 19905
  20. - 19906
  21. - 19907
  22. - 19908
  23. - 19909
  24. - 19910
  25. - 19911
  26. - 19912
  27. handlers:
  28. - name: restart_consul
  29. service:
  30. name: consul
  31. state: restarted
  32. - name: reload_redis_services
  33. command: systemctl daemon-reload
  34. - name: restart_redis_services
  35. systemd:
  36. name: "redis-{{ item }}"
  37. state: restarted
  38. with_items: "{{ redis_ports }}"
  39. pre_tasks:
  40. - name: Update Apt Cache
  41. apt: update_cache=yes cache_valid_time=86400
  42. when: ansible_os_family == "Debian"
  43. - name: Ubuntu Packages
  44. apt: >
  45. pkg={{item}}
  46. state=present
  47. with_items:
  48. - build-essential
  49. - autoconf
  50. - automake
  51. - libbsd-dev
  52. - libltdl-dev
  53. - libltdl7
  54. - libtool
  55. tasks:
  56. - name: create redis user
  57. user:
  58. name: redis
  59. uid: 4001
  60. shell: /bin/bash
  61. state: present
  62. - name: copy the redis raft library
  63. copy:
  64. src: redisraft.so
  65. dest: /usr/lib/redisraft.so
  66. owner: redis
  67. group: redis
  68. mode: '0755'
  69. notify:
  70. - restart_redis_services
  71. - name: create raft directories
  72. file:
  73. path: /redis/persistant/cpredis
  74. owner: redis
  75. group: redis
  76. mode: '0755'
  77. state: directory
  78. - name: create raft directories
  79. file:
  80. path: /var/log/cpredis
  81. owner: redis
  82. group: redis
  83. mode: '0755'
  84. state: directory
  85. - name: checkout redis git repo
  86. git:
  87. repo: 'https://github.com/antirez/redis'
  88. dest: /home/redis/redis
  89. version: 6.0
  90. - name: Build the default target
  91. make:
  92. chdir: /home/redis/redis
  93. - name: Run 'install' target as root
  94. make:
  95. chdir: /home/redis/redis
  96. target: install
  97. become: yes
  98. - name: Redis Systemd
  99. template:
  100. src: systemd_redis.j2
  101. dest: /lib/systemd/system/redis-{{item}}.service
  102. owner: root
  103. group: root
  104. mode: 0644
  105. with_items: "{{ redis_ports }}"
  106. notify:
  107. - reload_redis_services
  108. - restart_redis_services
  109. - name: Enable Redis Services
  110. systemd:
  111. name: redis-{{item}}
  112. enabled: yes
  113. state: started
  114. with_items: "{{ redis_ports }}"
  115. roles:
  116. - consul
  117. - ntp
  118. post_tasks:
  119. - name: Redis Consul Services
  120. template:
  121. src: redis.services.j2
  122. dest: /opt/consul/consul.d/redis.json
  123. owner: consul
  124. group: consul
  125. mode: 0644
  126. notify:
  127. - restart_consul