Matrix Docker Ansible eploy
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 

109 satır
3.9 KiB

  1. ---
  2. #
  3. # Tasks related to setting up matrix-prometheus
  4. #
  5. - name: Ensure matrix-prometheus image is pulled
  6. docker_image:
  7. name: "{{ matrix_prometheus_docker_image }}"
  8. source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
  9. force_source: "{{ matrix_prometheus_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_prometheus_docker_image_force_pull }}"
  11. when: "matrix_prometheus_enabled|bool"
  12. - name: Ensure Prometheus paths exists
  13. file:
  14. path: "{{ item }}"
  15. state: directory
  16. mode: 0750
  17. owner: "{{ matrix_user_username }}"
  18. group: "{{ matrix_user_groupname }}"
  19. with_items:
  20. - "{{ matrix_prometheus_base_path }}"
  21. - "{{ matrix_prometheus_config_path }}"
  22. - "{{ matrix_prometheus_data_path }}"
  23. when: matrix_prometheus_enabled|bool
  24. - block:
  25. # Well, this actually creates the network if it doesn't exist, but..
  26. # The network should have been created by `matrix-base` already.
  27. # We don't rely on that other call and its result, because it runs
  28. # on `--tags=setup-all`, but will get skipped during `--tags=setup-prometheus`.
  29. - name: Fetch Matrix Docker network details
  30. docker_network:
  31. name: "{{ matrix_docker_network }}"
  32. driver: bridge
  33. register: matrix_docker_network_info
  34. - set_fact:
  35. matrix_prometheus_endpoint_node_targets: ["{{ matrix_docker_network_info.network.IPAM.Config[0].Gateway }}:9100"]
  36. when: "matrix_prometheus_enabled|bool and matrix_prometheus_node_exporter_enabled|bool and matrix_prometheus_endpoint_node_targets|length == 0"
  37. - name: Ensure prometheus.yml installed
  38. copy:
  39. content: "{{ matrix_prometheus_configuration|to_nice_yaml }}"
  40. dest: "{{ matrix_prometheus_config_path }}/prometheus.yml"
  41. mode: 0644
  42. owner: "{{ matrix_user_username }}"
  43. group: "{{ matrix_user_groupname }}"
  44. when: matrix_prometheus_enabled|bool
  45. - name: Download synapse-v2.rules
  46. get_url:
  47. url: "{{ matrix_synapse_prometheus_rules_download_url }}"
  48. dest: "{{ matrix_prometheus_config_path }}/synapse-v2.rules"
  49. force: true
  50. mode: 0440
  51. owner: "{{ matrix_user_username }}"
  52. group: "{{ matrix_user_groupname }}"
  53. when: matrix_prometheus_enabled|bool
  54. - name: Ensure matrix-prometheus.service installed
  55. template:
  56. src: "{{ role_path }}/templates/systemd/matrix-prometheus.service.j2"
  57. dest: "{{ matrix_systemd_path }}/matrix-prometheus.service"
  58. mode: 0644
  59. register: matrix_prometheus_systemd_service_result
  60. when: matrix_prometheus_enabled|bool
  61. - name: Ensure systemd reloaded after matrix-prometheus.service installation
  62. service:
  63. daemon_reload: yes
  64. when: "matrix_prometheus_enabled|bool and matrix_prometheus_systemd_service_result.changed"
  65. #
  66. # Tasks related to getting rid of matrix-prometheus (if it was previously enabled)
  67. #
  68. - name: Check existence of matrix-prometheus service
  69. stat:
  70. path: "{{ matrix_systemd_path }}/matrix-prometheus.service"
  71. register: matrix_prometheus_service_stat
  72. - name: Ensure matrix-prometheus is stopped
  73. service:
  74. name: matrix-prometheus
  75. state: stopped
  76. daemon_reload: yes
  77. register: stopping_result
  78. when: "not matrix_prometheus_enabled|bool and matrix_prometheus_service_stat.stat.exists"
  79. - name: Ensure matrix-prometheus.service doesn't exist
  80. file:
  81. path: "{{ matrix_systemd_path }}/matrix-prometheus.service"
  82. state: absent
  83. when: "not matrix_prometheus_enabled|bool and matrix_prometheus_service_stat.stat.exists"
  84. - name: Ensure systemd reloaded after matrix-prometheus.service removal
  85. service:
  86. daemon_reload: yes
  87. when: "not matrix_prometheus_enabled|bool and matrix_prometheus_service_stat.stat.exists"
  88. - name: Ensure matrix-prometheus Docker image doesn't exist
  89. docker_image:
  90. name: "{{ matrix_prometheus_docker_image }}"
  91. state: absent
  92. when: "not matrix_prometheus_enabled|bool"