cp_nodes.yml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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.31.154
  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: '0700'
  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: checkout redis git repo
  79. git:
  80. repo: 'https://github.com/antirez/redis'
  81. dest: /home/redis/redis
  82. version: 6.0
  83. - name: Build the default target
  84. make:
  85. chdir: /home/redis/redis
  86. - name: Run 'install' target as root
  87. make:
  88. chdir: /home/redis/redis
  89. target: install
  90. become: yes
  91. - name: Redis Systemd
  92. template:
  93. src: systemd_redis.j2
  94. dest: /lib/systemd/system/redis-{{item}}.service
  95. owner: root
  96. group: root
  97. mode: 0644
  98. with_items: "{{ redis_ports }}"
  99. notify:
  100. - reload_redis_services
  101. - restart_redis_services
  102. - name: Enable Redis Services
  103. systemd:
  104. name: redis-{{item}}
  105. enabled: yes
  106. state: started
  107. with_items: "{{ redis_ports }}"
  108. roles:
  109. - consul
  110. post_tasks:
  111. - name: Redis Consul Services
  112. template:
  113. src: redis.services.j2
  114. dest: /opt/consul/consul.d/redis.json
  115. owner: consul
  116. group: consul
  117. mode: 0644
  118. notify:
  119. - restart_consul