From 628d0c326ad08bba827bcb7ef1d65ed5a7cd9a9b Mon Sep 17 00:00:00 2001 From: Tunui Franken Date: Wed, 24 Jul 2024 16:46:30 +0200 Subject: [PATCH] For needed mailboxes: add postmaster, use aliases instead, and create them --- roles/mailserver_database/defaults/main/plain.yml | 11 ++++++++--- roles/mailserver_database/templates/tables.sql.j2 | 8 ++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/roles/mailserver_database/defaults/main/plain.yml b/roles/mailserver_database/defaults/main/plain.yml index 5a469ee..b5a59a5 100644 --- a/roles/mailserver_database/defaults/main/plain.yml +++ b/roles/mailserver_database/defaults/main/plain.yml @@ -10,7 +10,12 @@ mailserver_database: pwd: "{{ vault_mailserver_database.ro_user.pwd }}" # Create pwd hashes with `doveadm pw -s BLF-CRYPT` virtual_users: - - name: abuse - pwd: '{BLF-CRYPT}$2y$05$9rYhnwHxmu9nqLHyxE/JoOjAds22PQAM42cJr.sRtdzmFBykyUy3S' - - name: dns + - name: "{{ ansible_facts['env']['USER'] }}" pwd: '{BLF-CRYPT}$2y$05$9rYhnwHxmu9nqLHyxE/JoOjAds22PQAM42cJr.sRtdzmFBykyUy3S' + virtual_aliases: + - source: abuse + destination: "{{ ansible_facts['env']['USER'] }}" + - source: postmaster + destination: "{{ ansible_facts['env']['USER'] }}" + - source: dns + destination: "{{ ansible_facts['env']['USER'] }}" diff --git a/roles/mailserver_database/templates/tables.sql.j2 b/roles/mailserver_database/templates/tables.sql.j2 index 7cdf553..ead8b34 100644 --- a/roles/mailserver_database/templates/tables.sql.j2 +++ b/roles/mailserver_database/templates/tables.sql.j2 @@ -31,3 +31,11 @@ CREATE TABLE IF NOT EXISTS virtual_aliases ( FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE ); + +{% for alias in mailserver_database.virtual_aliases %} +INSERT INTO virtual_aliases (domain_id, source, destination) VALUES ( + (SELECT id FROM virtual_domains WHERE name = '{{ virtual_domain }}'), + '{{ alias.source }}@{{ virtual_domain }}', + '{{ alias.destination }}@{{ virtual_domain }}' +) ON CONFLICT (source) DO UPDATE SET destination = EXCLUDED.destination; +{% endfor %}