From 0a0c815268bf681e37cba42594c0741ec64a585f Mon Sep 17 00:00:00 2001 From: "flyingscorpio@clevo" Date: Mon, 8 Jan 2024 10:06:57 +0100 Subject: [PATCH] Add postfix configs --- roles/common_handlers/handlers/main.yml | 6 +++++ roles/mailserver_postfix/tasks/main.yml | 24 +++++++++++++++++++ .../templates/sql-virtual-alias-maps.cf.j2 | 7 ++++++ .../sql-virtual-mailbox-domains.cf.j2 | 7 ++++++ .../templates/sql-virtual-mailbox-maps.cf.j2 | 7 ++++++ 5 files changed, 51 insertions(+) create mode 100644 roles/mailserver_postfix/templates/sql-virtual-alias-maps.cf.j2 create mode 100644 roles/mailserver_postfix/templates/sql-virtual-mailbox-domains.cf.j2 create mode 100644 roles/mailserver_postfix/templates/sql-virtual-mailbox-maps.cf.j2 diff --git a/roles/common_handlers/handlers/main.yml b/roles/common_handlers/handlers/main.yml index fb69ab6..c29322a 100644 --- a/roles/common_handlers/handlers/main.yml +++ b/roles/common_handlers/handlers/main.yml @@ -57,3 +57,9 @@ ansible.builtin.systemd: name: fail2ban state: restarted + +- name: Reload postfix service + become: true + ansible.builtin.systemd: + name: postfix + state: reloaded diff --git a/roles/mailserver_postfix/tasks/main.yml b/roles/mailserver_postfix/tasks/main.yml index e8e7657..851f275 100644 --- a/roles/mailserver_postfix/tasks/main.yml +++ b/roles/mailserver_postfix/tasks/main.yml @@ -5,3 +5,27 @@ ansible.builtin.apt: name: - postfix + +- name: Copy configuration files + become: true + loop: + - sql-virtual-mailbox-domains.cf + - sql-virtual-mailbox-maps.cf + - sql-virtual-alias-maps.cf + ansible.builtin.template: + src: "{{ item }}.j2" + dest: "/etc/postfix/{{ item }}" + owner: root + group: postfix + mode: "640" + +- name: Add configuration lines + become: true + loop: + - virtual_mailbox_domains = pgsql:/etc/postfix/sql-virtual-mailbox-domains.cf + - virtual_mailbox_maps = pgsql:/etc/postfix/sql-virtual-mailbox-maps.cf + - virtual_alias_maps = pgsql:/etc/postfix/sql-virtual-alias-maps.cf + ansible.builtin.lineinfile: + path: /etc/postfix/main.cf + line: "{{ item }}" + notify: Reload postfix service diff --git a/roles/mailserver_postfix/templates/sql-virtual-alias-maps.cf.j2 b/roles/mailserver_postfix/templates/sql-virtual-alias-maps.cf.j2 new file mode 100644 index 0000000..fce2f25 --- /dev/null +++ b/roles/mailserver_postfix/templates/sql-virtual-alias-maps.cf.j2 @@ -0,0 +1,7 @@ +# {{ ansible_managed }} + +user = {{ mailserver_database_ro_user.name }} +password = {{ mailserver_database_ro_user.pwd }} +hosts = 127.0.0.1 +dbname = {{ mailserver_database_db }} +query = SELECT destination FROM virtual_aliases WHERE source='%s' diff --git a/roles/mailserver_postfix/templates/sql-virtual-mailbox-domains.cf.j2 b/roles/mailserver_postfix/templates/sql-virtual-mailbox-domains.cf.j2 new file mode 100644 index 0000000..bfeff8c --- /dev/null +++ b/roles/mailserver_postfix/templates/sql-virtual-mailbox-domains.cf.j2 @@ -0,0 +1,7 @@ +# {{ ansible_managed }} + +user = {{ mailserver_database_ro_user.name }} +password = {{ mailserver_database_ro_user.pwd }} +hosts = 127.0.0.1 +dbname = {{ mailserver_database_db }} +query = SELECT 1 FROM virtual_domains WHERE name='%s' diff --git a/roles/mailserver_postfix/templates/sql-virtual-mailbox-maps.cf.j2 b/roles/mailserver_postfix/templates/sql-virtual-mailbox-maps.cf.j2 new file mode 100644 index 0000000..93ef2c3 --- /dev/null +++ b/roles/mailserver_postfix/templates/sql-virtual-mailbox-maps.cf.j2 @@ -0,0 +1,7 @@ +# {{ ansible_managed }} + +user = {{ mailserver_database_ro_user.name }} +password = {{ mailserver_database_ro_user.pwd }} +hosts = 127.0.0.1 +dbname = {{ mailserver_database_db }} +query = SELECT 1 FROM virtual_users WHERE email='%s'