No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

monit.yml 6.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. - name: Add monitoring vhost to apache
  2. template: src=etc_apache2_sites-available_00-status.conf dest=/etc/apache2/sites-available/00-status.conf
  3. - name: Enable the status vhost
  4. command: a2ensite 00-status.conf creates=/etc/apache2/sites-enabled/00-status.conf
  5. notify: restart apache
  6. - name: Install monit
  7. apt:
  8. name: monit
  9. state: present
  10. tags:
  11. - dependencies
  12. - name: Copy monit master config file into place
  13. template: src=etc_monit_monitrc.j2 dest=/etc/monit/monitrc
  14. notify: restart monit
  15. - name: Determine if ZNC is installed
  16. stat: path=/usr/lib/znc/configs/znc.conf
  17. register: znc_config_file
  18. - name: Determine if XMPP is installed
  19. stat: path=/etc/prosody/prosody.cfg.lua
  20. register: prosody_config_file
  21. - name: Determine if Fathom is installed
  22. stat: path=/usr/local/bin/fathom
  23. register: fathom_config_file
  24. - name: Determine if Redis is installed
  25. stat: path=/etc/redis/redis.conf
  26. register: redis_config_file
  27. - name: Determine if RSpamD is installed
  28. stat: path=/etc/rspamd/rspamd.conf
  29. register: rspamd_config_file
  30. - name: Determine if gitea is installed
  31. stat: path=/etc/gitea/app.ini
  32. register: gitea_config_file
  33. - name: Determine if Synapse is installed
  34. stat: path=/etc/matrix-synapse/homeserver.yaml
  35. register: synapse_config_file
  36. - name: Determine if Mastodon is installed
  37. stat: path=/home/mastodon/mastodon
  38. register: mastodon_config_file
  39. - name: Determine if Commento is installed
  40. stat: path=/home/{{ main_user_name }}/commento/commento
  41. register: commento_config_file
  42. - name: Determine if Grafana is installed
  43. stat: path=/etc/grafana/grafana.ini
  44. register: grafana_config_file
  45. - name: Determine if InfluxDB is installed
  46. stat: path=/etc/influxdb/influxdb.conf
  47. register: influxdb_config_file
  48. - name: Determine if Telegraf is installed
  49. stat: path=/etc/telegraf/telegraf.conf
  50. register: telegraf_config_file
  51. - name: Determine if Mosquitto is installed
  52. stat: path=/etc/mosquitto/mosquitto.conf
  53. register: mosquitto_config_file
  54. - name: Determine if OpenVPN is installed
  55. stat: path=/etc/openvpn/server.conf
  56. register: openvpn_config_file
  57. - name: Determine if Jitsi is installed
  58. stat: path=/etc/jitsi/jicofo/config
  59. register: jitsi_config_file
  60. - name: Copy ZNC monit service config files into place
  61. copy: src=etc_monit_conf.d_znc dest=/etc/monit/conf.d/znc
  62. notify: restart monit
  63. when: znc_config_file.stat.exists == True
  64. - name: Copy XMPP monit service config files into place
  65. copy: src=etc_monit_conf.d_prosody dest=/etc/monit/conf.d/prosody
  66. notify: restart monit
  67. when: prosody_config_file.stat.exists == True
  68. - name: Copy Jitsi monit service config files into place
  69. copy: src=etc_monit_conf.d_jitsi dest=/etc/monit/conf.d/jitsi
  70. notify: restart monit
  71. when: jitsi_config_file.stat.exists == True
  72. - name: Copy Fathom monit service config files into place
  73. copy: src=etc_monit_conf.d_fathom dest=/etc/monit/conf.d/fathom
  74. notify: restart monit
  75. when: fathom_config_file.stat.exists == True
  76. - name: Copy Redis monit service config files into place
  77. copy: src=etc_monit_conf.d_redis dest=/etc/monit/conf.d/redis
  78. notify: restart monit
  79. when: redis_config_file.stat.exists == True
  80. - name: Copy RSpamD monit service config files into place
  81. copy: src=etc_monit_conf.d_rspamd dest=/etc/monit/conf.d/rspamd
  82. notify: restart monit
  83. when: rspamd_config_file.stat.exists == True
  84. - name: Copy gitea monit service config files into place
  85. copy: src=etc_monit_conf.d_gitea dest=/etc/monit/conf.d/gitea
  86. notify: restart monit
  87. when: gitea_config_file.stat.exists == True
  88. - name: Copy Synapse monit service config files into place
  89. copy: src=etc_monit_conf.d_matrix dest=/etc/monit/conf.d/matrix
  90. notify: restart monit
  91. when: synapse_config_file.stat.exists == True
  92. - name: Copy Mastodon monit service config files into place
  93. copy: src=etc_monit_conf.d_mastodon dest=/etc/monit/conf.d/mastodon
  94. notify: restart monit
  95. when: mastodon_config_file.stat.exists == True
  96. - name: Copy Commento monit service config files into place
  97. copy: src=etc_monit_conf.d_commento dest=/etc/monit/conf.d/commento
  98. notify: restart monit
  99. when: commento_config_file.stat.exists == True
  100. - name: Copy Grafana monit service config files into place
  101. copy: src=etc_monit_conf.d_grafana dest=/etc/monit/conf.d/grafana
  102. notify: restart monit
  103. when: grafana_config_file.stat.exists == True
  104. - name: Copy InfluxDB monit service config files into place
  105. copy: src=etc_monit_conf.d_influxdb dest=/etc/monit/conf.d/influxdb
  106. notify: restart monit
  107. when: influxdb_config_file.stat.exists == True
  108. - name: Copy Telegraf monit service config files into place
  109. copy: src=etc_monit_conf.d_telegraf dest=/etc/monit/conf.d/telegraf
  110. notify: restart monit
  111. when: telegraf_config_file.stat.exists == True
  112. - name: Copy Mosquitto monit service config files into place
  113. copy: src=etc_monit_conf.d_mosquitto dest=/etc/monit/conf.d/mosquitto
  114. notify: restart monit
  115. when: mosquitto_config_file.stat.exists == True
  116. - name: Copy OpenVPN monit service config files into place
  117. copy: src=etc_monit_conf.d_openvpn dest=/etc/monit/conf.d/openvpn
  118. notify: restart monit
  119. when: openvpn_config_file.stat.exists == True
  120. - name: Copy dnsmasq monit service config files into place
  121. copy: src=etc_monit_conf.d_dnsmasq dest=/etc/monit/conf.d/dnsmasq
  122. notify: restart monit
  123. when: openvpn_config_file.stat.exists == True
  124. - name: Copy monit service config files into place
  125. copy: src=etc_monit_conf.d_{{ item }} dest=/etc/monit/conf.d/{{ item }}
  126. with_items:
  127. - apache2
  128. - dovecot
  129. - postfix
  130. - sshd
  131. notify: restart monit
  132. - name: Copy monit service config files into place
  133. copy: src=etc_monit_conf.d_{{ item }} dest=/etc/monit/conf.d/{{ item }}
  134. with_items:
  135. - pgsql_deb9
  136. - tomcat_deb9
  137. notify: restart monit
  138. when: ansible_distribution_version == '9'
  139. - name: Copy monit service config files into place
  140. copy: src=etc_monit_conf.d_{{ item }} dest=/etc/monit/conf.d/{{ item }}
  141. with_items:
  142. - pgsql_deb10
  143. - tomcat_deb10
  144. notify: restart monit
  145. when: ansible_distribution_version == '10'
  146. - name: Copy monit service config files into place
  147. copy: src=etc_monit_conf.d_{{ item }} dest=/etc/monit/conf.d/{{ item }}
  148. with_items:
  149. - pgsql_deb10
  150. - tomcat_deb10
  151. notify: restart monit
  152. when: ansible_distribution_version == '11'
  153. # TODO add to fail2ban when monit_page_public == 1
  154. - name: Create the Apache monit sites config files
  155. template:
  156. src=etc_apache2_sites-available_monit.j2
  157. dest=/etc/apache2/sites-available/monit_{{ item.name }}.conf
  158. owner=root
  159. group=root
  160. with_items: "{{ virtual_domains }}"
  161. when: monit_page_public == 1
  162. - name: Enable Apache sites (creates new sites-enabled symlinks)
  163. command: a2ensite monit_{{ item }}.conf creates=/etc/apache2/sites-enabled/monit_{{ item }}.conf
  164. notify: restart apache
  165. with_items: "{{ virtual_domains | json_query('[*].name') }}"
  166. when: monit_page_public == 1