Matrix Docker Ansible eploy
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

100 строки
3.5 KiB

  1. ---
  2. #
  3. # Tasks related to setting up an internal redis server
  4. #
  5. - name: Ensure redis Docker image is pulled
  6. docker_image:
  7. name: "{{ matrix_redis_docker_image_to_use }}"
  8. source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
  9. force_source: "{{ matrix_redis_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
  10. force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_redis_docker_image_force_pull }}"
  11. when: matrix_redis_enabled|bool
  12. - name: Ensure redis paths exist
  13. file:
  14. path: "{{ item }}"
  15. state: directory
  16. mode: 0700
  17. owner: "{{ matrix_user_username }}"
  18. group: "{{ matrix_user_username }}"
  19. with_items:
  20. - "{{ matrix_redis_base_path }}"
  21. - "{{ matrix_redis_data_path }}"
  22. when: matrix_redis_enabled|bool
  23. # We do this as a separate task, because:
  24. # - we'd like to do it for the data path only, not for the base path (which contains root-owned environment variable files we'd like to leave as-is)
  25. # - we need to do it without `mode`, or we risk making certain `.conf` and other files's executable bit to flip to true
  26. - name: Ensure redis data path ownership is correct
  27. file:
  28. path: "{{ matrix_redis_data_path }}"
  29. state: directory
  30. owner: "{{ matrix_user_username }}"
  31. group: "{{ matrix_user_username }}"
  32. recurse: yes
  33. when: matrix_redis_enabled|bool
  34. - name: Ensure redis environment variables file created
  35. template:
  36. src: "{{ role_path }}/templates/{{ item }}.j2"
  37. dest: "{{ matrix_redis_base_path }}/{{ item }}"
  38. mode: 0644
  39. with_items:
  40. - "redis.conf"
  41. when: matrix_redis_enabled|bool
  42. - name: Ensure matrix-redis.service installed
  43. template:
  44. src: "{{ role_path }}/templates/systemd/matrix-redis.service.j2"
  45. dest: "{{ matrix_systemd_path }}/matrix-redis.service"
  46. mode: 0644
  47. register: matrix_redis_systemd_service_result
  48. when: matrix_redis_enabled|bool
  49. - name: Ensure systemd reloaded after matrix-redis.service installation
  50. service:
  51. daemon_reload: yes
  52. when: "matrix_redis_enabled|bool and matrix_redis_systemd_service_result.changed"
  53. #
  54. # Tasks related to getting rid of the internal redis server (if it was previously enabled)
  55. #
  56. - name: Check existence of matrix-redis service
  57. stat:
  58. path: "{{ matrix_systemd_path }}/matrix-redis.service"
  59. register: matrix_redis_service_stat
  60. when: "not matrix_redis_enabled|bool"
  61. - name: Ensure matrix-redis is stopped
  62. service:
  63. name: matrix-redis
  64. state: stopped
  65. daemon_reload: yes
  66. when: "not matrix_redis_enabled|bool and matrix_redis_service_stat.stat.exists"
  67. - name: Ensure matrix-redis.service doesn't exist
  68. file:
  69. path: "{{ matrix_systemd_path }}/matrix-redis.service"
  70. state: absent
  71. when: "not matrix_redis_enabled|bool and matrix_redis_service_stat.stat.exists"
  72. - name: Ensure systemd reloaded after matrix-redis.service removal
  73. service:
  74. daemon_reload: yes
  75. when: "not matrix_redis_enabled|bool and matrix_redis_service_stat.stat.exists"
  76. - name: Check existence of matrix-redis local data path
  77. stat:
  78. path: "{{ matrix_redis_data_path }}"
  79. register: matrix_redis_data_path_stat
  80. when: "not matrix_redis_enabled|bool"
  81. # We just want to notify the user. Deleting data is too destructive.
  82. - name: Notify if matrix-redis local data remains
  83. debug:
  84. msg: "Note: You are not using a local redis instance, but some old data remains from before in `{{ matrix_redis_data_path }}`. Feel free to delete it."
  85. when: "not matrix_redis_enabled|bool and matrix_redis_data_path_stat.stat.exists"