aboutsummaryrefslogtreecommitdiffstats
path: root/playbook.yml
diff options
context:
space:
mode:
authorJan T <jan@jantuomi.fi>2025-06-23 11:44:03 +0000
committerJan Tuomi <jan@jantuomi.fi>2025-06-23 14:45:45 +0300
commitb3c6ca37500b52821b2b66147b22190414c09993 (patch)
tree08efb4bdd320e07b1ae7fdb79ef16c645231dcd2 /playbook.yml
Initial commit
Diffstat (limited to 'playbook.yml')
-rw-r--r--playbook.yml71
1 files changed, 71 insertions, 0 deletions
diff --git a/playbook.yml b/playbook.yml
new file mode 100644
index 0000000..19ea687
--- /dev/null
+++ b/playbook.yml
@@ -0,0 +1,71 @@
+---
+- name: Configure dma with generic SMTP on FreeBSD
+ hosts: pursotin
+
+ pre_tasks:
+ - name: Fail if direnv wasn't loaded and SMTP_USER is missing
+ assert:
+ that:
+ - lookup('env', 'SMTP_USER') != ''
+ fail_msg: >
+ Required environment variables are missing. Did you forget to run `direnv allow` or load `.envrc`?
+ vars:
+ ansible_assert_no_log: true
+
+ vars:
+ smtp_user: "{{ lookup('env', 'SMTP_USER') }}"
+ smtp_password: "{{ lookup('env', 'SMTP_PASSWORD') }}"
+ smtp_host: "{{ lookup('env', 'SMTP_HOST') }}"
+ smtp_port: "{{ lookup('env', 'SMTP_PORT') }}"
+ dma_mail_hostname: "{{ lookup('env', 'DMA_MAILNAME') }}"
+ dma_to_address: "{{ lookup('env', 'DMA_TO_ADDRESS') }}"
+
+ tasks:
+ - name: Install dma
+ package:
+ name: dma
+ state: present
+
+ - name: Create dma config directory
+ file:
+ path: /etc/dma
+ state: directory
+ owner: root
+ group: wheel
+ mode: "0755"
+
+ - name: Configure dma.conf
+ template:
+ src: dma.conf.j2
+ dest: /etc/dma/dma.conf
+ owner: root
+ group: wheel
+ mode: "0644"
+
+ - name: Configure auth.conf
+ template:
+ src: auth.conf.j2
+ dest: /etc/dma/auth.conf
+ owner: root
+ group: mail
+ mode: "0640"
+
+ - name: Configure aliases
+ template:
+ src: aliases.j2
+ dest: /etc/aliases
+ owner: root
+ group: wheel
+ mode: "0644"
+
+ - name: Run newaliases
+ shell: newaliases
+
+ - name: Test mail delivery
+ shell: echo "DMA test message from Ansible" | mail -s "Test DMA" root
+ register: mail_result
+ changed_when: false
+
+ - name: Show mail result
+ debug:
+ var: mail_result