aboutsummaryrefslogtreecommitdiffstats
path: root/ansible/roles/dovecot-monitoring/tasks/main.yml
blob: 4795bcb1e013cc70b6aa3aac5b81653b2f514518 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
---
- name: Create dovecot monitoring directory
  ansible.builtin.file:
    path: "{{ dovecot_monitoring_scripts_directory }}"
    state: directory
    owner: root
    group: root
    mode: "0755"
  tags:
    - role::dovecot-monitoring

- name: Create dovecot monitoring scripts
  ansible.builtin.template:
    src: "{{ item }}.j2"
    dest: "{{ dovecot_monitoring_scripts_directory }}/{{ item }}"
    owner: root
    group: root
    mode: "0544"
  tags:
    - role::dovecot-monitoring
  loop:
    - maildir-mails.sh
    - maildir-sizes.sh

- name: Create Maildir size monitoring cronjobs
  ansible.builtin.cron:
    name: "{{ item.name }}"
    minute: "*/20"
    hour: "*"
    job: "nice {{ item.job }}"
    cron_file: "{{ dovecot_monitoring_cron_filename }}"
    user: root
  tags:
    - role::dovecot-monitoring
  register: dovecot_monitoring_cron_file
  loop_control:
    label: "{{ item.name }}"
  loop:
    - name: Dovecot maildir size Prometheus exporter
      job: "{{ dovecot_monitoring_scripts_directory }}/maildir-sizes.sh"
    - name: Dovecot maildir mail count Prometheus exporter
      job: "{{ dovecot_monitoring_scripts_directory }}/maildir-mails.sh"

- name: Report to DevOps when Maildir size exporter fails
  ansible.builtin.cron:
    name: MAILTO
    env: true
    job: [email protected]
    cron_file: "{{ dovecot_monitoring_cron_filename }}"
    user: vmail
  tags:
    - role::dovecot-monitoring