From e3cc297474fe076258db25aa5dd61b0b02b495d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Sachse?= <joerg.sachse@slub-dresden.de>
Date: Tue, 14 Jan 2025 13:31:47 +0100
Subject: [PATCH] feat: add OS switch to install Postfix on Ubuntu instead of
 Exim MTA

---
 tasks/configure_mail.yml               | 12 ++++++++++++
 tasks/{ => mail}/configure_exim.yml    |  7 ++++++-
 tasks/{ => mail}/configure_postfix.yml |  7 ++++++-
 tasks/main.yml                         | 12 +++---------
 4 files changed, 27 insertions(+), 11 deletions(-)
 create mode 100644 tasks/configure_mail.yml
 rename tasks/{ => mail}/configure_exim.yml (93%)
 rename tasks/{ => mail}/configure_postfix.yml (81%)

diff --git a/tasks/configure_mail.yml b/tasks/configure_mail.yml
new file mode 100644
index 0000000..9176577
--- /dev/null
+++ b/tasks/configure_mail.yml
@@ -0,0 +1,12 @@
+---
+- name: Install and configure Exim MTA.
+  ansible.builtin.import_tasks: "mail/configure_exim.yml"
+  when: ansible_distribution == "Debian"
+  tags: [exim, mail]
+
+- name: Install and configure Postfix MTA.
+  ansible.builtin.import_tasks: "mail/configure_postfix.yml"
+  when: (( ansible_os_family == "RedHat" ) or (
+         ( ansible_distribution == "Ubuntu" ))
+  tags: [postfix, mail]
+
diff --git a/tasks/configure_exim.yml b/tasks/mail/configure_exim.yml
similarity index 93%
rename from tasks/configure_exim.yml
rename to tasks/mail/configure_exim.yml
index bf3b5be..45e6dd5 100644
--- a/tasks/configure_exim.yml
+++ b/tasks/mail/configure_exim.yml
@@ -1,5 +1,10 @@
 ---
-- name: Configure exim4
+- name: Install Exim4 MTA.
+  ansible.builtin.package:
+    name: "exim4"
+    state: latest
+
+- name: Configure Exim4.
   ansible.builtin.template:
     src: 'update-exim4.conf.conf'
     dest: "/etc/exim4/update-exim4.conf.conf"
diff --git a/tasks/configure_postfix.yml b/tasks/mail/configure_postfix.yml
similarity index 81%
rename from tasks/configure_postfix.yml
rename to tasks/mail/configure_postfix.yml
index 67ff479..f727be2 100644
--- a/tasks/configure_postfix.yml
+++ b/tasks/mail/configure_postfix.yml
@@ -1,5 +1,10 @@
 ---
-- name: configure Postfix
+- name: Install Postfix MTA.
+  ansible.builtin.package:
+    name: "postfix"
+    state: latest
+
+- name: Configure Postfix MTA.
   ansible.builtin.blockinfile:
     path: "/etc/postfix/main.cf"
     owner: "root"
diff --git a/tasks/main.yml b/tasks/main.yml
index 23134a8..970025c 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -118,15 +118,9 @@
   ansible.builtin.import_tasks: "configure_sar.yml"
   tags: [sar, sysstat]
 
-- name: Exim konfigurieren
-  ansible.builtin.import_tasks: "configure_exim.yml"
-  when: ansible_os_family == "Debian"
-  tags: [exim, mail]
-
-- name: Postfix konfigurieren
-  ansible.builtin.import_tasks: "configure_postfix.yml"
-  when: ansible_os_family == "RedHat"
-  tags: [postfix, mail]
+- name: Configure Mail Transfer Agent (MTA)
+  ansible.builtin.import_tasks: "configure_mail.yml"
+  tags: [exim, postfix, mail, mta]
 
 # - name: Glances-Server abschalten
 #   ansible.builtin.import_tasks: "configure_glances.yml"
-- 
GitLab