Add send_only_mailserver
role and deploy Send-Only-Mailserver with it
Co-authored-by: yuri <yuri@nekover.se>
This commit is contained in:
parent
f4a79fb4e2
commit
b56ca3899d
14 changed files with 263 additions and 0 deletions
|
@ -0,0 +1,55 @@
|
|||
- name: make sure DKIM private key exists
|
||||
community.crypto.openssl_privatekey:
|
||||
path: "/etc/mail-dkim/{{ item.name }}.key"
|
||||
size: 1024
|
||||
type: RSA
|
||||
owner: "root"
|
||||
group: "_rspamd"
|
||||
mode: "0640"
|
||||
become: true
|
||||
notify: Restart `rspamd.service`
|
||||
|
||||
- name: make sure DKIM public key exists
|
||||
community.crypto.openssl_publickey:
|
||||
path: "/etc/mail-dkim/{{ item.name }}.pub"
|
||||
privatekey_path: "/etc/mail-dkim/{{ item.name }}.key"
|
||||
return_content: true
|
||||
become: true
|
||||
notify: Restart `rspamd.service`
|
||||
register: send_only_mail_server__dkim_public_key
|
||||
|
||||
- name: deploy DKIM public key DNS entry # noqa: no-handler
|
||||
delegate_to: "{{ send_only_mail_server__bind_9_host }}"
|
||||
when: send_only_mail_server__dkim_public_key.changed
|
||||
block:
|
||||
- name: Add file containing nsupdate commands for removing DKIM public key TXT records
|
||||
ansible.builtin.template:
|
||||
src: nsupdate_delete_dkim_public_key_txt_records.j2
|
||||
dest: /root/nsupdate_delete_dkim_public_key_txt_records
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0600"
|
||||
|
||||
- name: Remove DNS records from BIND 9 server via nsupdate # noqa: no-changed-when
|
||||
ansible.builtin.command: /usr/bin/nsupdate -l /root/nsupdate_delete_dkim_public_key_txt_records
|
||||
|
||||
- name: Add file containing nsupdate commands for adding DKIM public key TXT record
|
||||
ansible.builtin.template:
|
||||
src: nsupdate_add_dkim_public_key_txt_record.j2
|
||||
dest: /root/nsupdate_add_dkim_public_key_txt_record
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0600"
|
||||
|
||||
- name: Add DNS record to BIND 9 server via nsupdate # noqa: no-changed-when
|
||||
ansible.builtin.command: /usr/bin/nsupdate -l /root/nsupdate_add_dkim_public_key_txt_record
|
||||
always:
|
||||
- name: Remove file containing nsupdate commands for removing DKIM public key TXT records again
|
||||
ansible.builtin.file:
|
||||
path: /root/nsupdate_delete_dkim_public_key_txt_records
|
||||
state: absent
|
||||
|
||||
- name: Remove file containing nsupdate commands for adding DKIM public key TXT record again
|
||||
ansible.builtin.file:
|
||||
path: /root/nsupdate_add_dkim_public_key_txt_record
|
||||
state: absent
|
65
playbooks/roles/send_only_mail_server/tasks/main.yaml
Normal file
65
playbooks/roles/send_only_mail_server/tasks/main.yaml
Normal file
|
@ -0,0 +1,65 @@
|
|||
- name: make sure packages are installed
|
||||
ansible.builtin.apt:
|
||||
name:
|
||||
- opensmtpd
|
||||
- rspamd
|
||||
- opensmtpd-filter-rspamd
|
||||
become: true
|
||||
|
||||
- name: make sure certificates exist
|
||||
ansible.builtin.include_role:
|
||||
name: cert
|
||||
vars:
|
||||
cert__domains:
|
||||
- "{{ send_only_mail_server__mail_server_fqdn }}"
|
||||
cert__owner: root
|
||||
cert__group: opensmtpd
|
||||
cert__bind_9_zone: "{{ send_only_mail_server__mail_server_fqdn_zone }}"
|
||||
cert__bind_9_host: "{{ send_only_mail_server__bind_9_host }}"
|
||||
cert__privkey_pem_permissions: "0640"
|
||||
cert__fullchain_pem_permissions: "0640"
|
||||
cert__chain_pem_permissions: "0640"
|
||||
cert__cert_pem_permissions: "0640"
|
||||
|
||||
- name: make sure the OpenSMTPD config is deployed
|
||||
ansible.builtin.template:
|
||||
src: etc_smtpd.conf.j2
|
||||
dest: /etc/smtpd.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0600"
|
||||
become: true
|
||||
notify: Restart `opensmtpd.service`
|
||||
|
||||
- name: make sure `/etc/mail-dkim` directory exists
|
||||
ansible.builtin.file:
|
||||
path: /etc/mail-dkim
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "755"
|
||||
become: true
|
||||
|
||||
- name: make sure DKIM keypairs for all domains exist
|
||||
loop: "{{ send_only_mail_server__mail_domains }}"
|
||||
ansible.builtin.include_tasks: ensure_dkim_keypair.yaml
|
||||
|
||||
- name: make sure the Rspamd `dkim_signing.conf` is deployed
|
||||
ansible.builtin.template:
|
||||
src: etc_rspamd_dkim_signing.conf.j2
|
||||
dest: /etc/rspamd/local.d/dkim_signing.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0600"
|
||||
become: true
|
||||
notify: Restart `rspamd.service`
|
||||
|
||||
- name: make sure the Rspamd `settings.conf` is deployed
|
||||
ansible.builtin.copy:
|
||||
src: etc_rspamd_settings.conf
|
||||
dest: /etc/rspamd/local.d/settings.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0600"
|
||||
become: true
|
||||
notify: Restart `rspamd.service`
|
Loading…
Add table
Add a link
Reference in a new issue