diff --git a/playbooks/mailserver.yml b/playbooks/mailserver.yml index 215acfe..c380afa 100644 --- a/playbooks/mailserver.yml +++ b/playbooks/mailserver.yml @@ -26,5 +26,7 @@ tags: spf, report - role: mailserver_dmarc tags: dmarc, report + - role: mailserver_monitoring + tags: monitoring, icinga, icinga2 - role: mailserver_dns_report tags: report diff --git a/roles/icinga2_master/tasks/main.yml b/roles/icinga2_master/tasks/main.yml index 0529be9..5cd7a62 100644 --- a/roles/icinga2_master/tasks/main.yml +++ b/roles/icinga2_master/tasks/main.yml @@ -52,7 +52,26 @@ group: nagios mode: 0644 with_fileglob: - - "{{ role_path }}/templates/zones.d/master/*" + - "{{ role_path }}/templates/zones.d/master/*.conf.j2" + notify: Reload icinga2 service + +- name: Create services directory + become: true + ansible.builtin.file: + path: /etc/icinga2/zones.d/master/services + state: directory + owner: nagios + group: nagios + mode: 0750 + +- name: Copy common services + become: true + ansible.builtin.template: + src: zones.d/master/services/common.conf.j2 + dest: /etc/icinga2/zones.d/master/services/common.conf + owner: nagios + group: nagios + mode: 0644 notify: Reload icinga2 service - name: Install bsd-mailx for sending mail notifications diff --git a/roles/icinga2_master/templates/zones.d/master/services.conf.j2 b/roles/icinga2_master/templates/zones.d/master/services/common.conf.j2 similarity index 80% rename from roles/icinga2_master/templates/zones.d/master/services.conf.j2 rename to roles/icinga2_master/templates/zones.d/master/services/common.conf.j2 index 7b397a1..57b3468 100644 --- a/roles/icinga2_master/templates/zones.d/master/services.conf.j2 +++ b/roles/icinga2_master/templates/zones.d/master/services/common.conf.j2 @@ -87,23 +87,3 @@ apply Service "mailq" { vars.mailq_warning = 10 vars.mailq_critical = 20 } - -apply Service "smtp" { - import "generic-service" - check_command = "smtp" - assign where host.name == "{{ relayhost }}" -} - -apply Service "submission" { - import "generic-service" - check_command = "smtp" - assign where host.name == "{{ relayhost }}" - vars.smtp_port = 587 - vars.smtp_starttls = true -} - -apply Service "imaps" { - import "generic-service" - check_command = "simap" - assign where host.name == "{{ relayhost }}" -} diff --git a/roles/mailserver_monitoring/handlers/main.yml b/roles/mailserver_monitoring/handlers/main.yml new file mode 100644 index 0000000..1acd5db --- /dev/null +++ b/roles/mailserver_monitoring/handlers/main.yml @@ -0,0 +1,8 @@ +--- + +- name: Reload icinga2 service + delegate_to: "{{ icinga2_master }}" + become: true + ansible.builtin.systemd: + name: icinga2 + state: reloaded diff --git a/roles/mailserver_monitoring/tasks/main.yml b/roles/mailserver_monitoring/tasks/main.yml new file mode 100644 index 0000000..c670f7a --- /dev/null +++ b/roles/mailserver_monitoring/tasks/main.yml @@ -0,0 +1,12 @@ +--- + +- name: Copy mailserver services on icinga2 Master + delegate_to: "{{ icinga2_master }}" + become: true + ansible.builtin.template: + src: zones.d/master/services/mailserver.conf.j2 + dest: /etc/icinga2/zones.d/master/services/mailserver.conf + owner: nagios + group: nagios + mode: 0644 + notify: Reload icinga2 service diff --git a/roles/mailserver_monitoring/templates/zones.d/master/services/mailserver.conf.j2 b/roles/mailserver_monitoring/templates/zones.d/master/services/mailserver.conf.j2 new file mode 100644 index 0000000..572fbd3 --- /dev/null +++ b/roles/mailserver_monitoring/templates/zones.d/master/services/mailserver.conf.j2 @@ -0,0 +1,21 @@ +# {{ ansible_managed }} + +apply Service "smtp" { + import "generic-service" + check_command = "smtp" + assign where host.name == "{{ inventory_hostname }}" +} + +apply Service "submission" { + import "generic-service" + check_command = "smtp" + assign where host.name == "{{ inventory_hostname }}" + vars.smtp_port = 587 + vars.smtp_starttls = true +} + +apply Service "imaps" { + import "generic-service" + check_command = "simap" + assign where host.name == "{{ inventory_hostname }}" +}