summaryrefslogtreecommitdiff
path: root/ansible/roles
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-08-11 14:43:44 +0100
committerJoe Carstairs <me@joeac.net>2026-08-11 14:43:44 +0100
commit4e73a59d76e8c4949908e766657f5d634d39fb67 (patch)
tree0a51e16fc9728af6dcc8d2162932ed978a0d9eba /ansible/roles
parent48b9b3a92f4593793c933ba1e21aee28dea724f9 (diff)
installs msmtp onto pi-broughton with ansible
Diffstat (limited to 'ansible/roles')
-rw-r--r--ansible/roles/mox/tasks/main.yml2
-rw-r--r--ansible/roles/mox/templates/domains.conf2
-rw-r--r--ansible/roles/msmtp/tasks/main.yml64
-rw-r--r--ansible/roles/msmtp/templates/msmtprc13
4 files changed, 79 insertions, 2 deletions
diff --git a/ansible/roles/mox/tasks/main.yml b/ansible/roles/mox/tasks/main.yml
index 8f9a9c5..7e1f6b9 100644
--- a/ansible/roles/mox/tasks/main.yml
+++ b/ansible/roles/mox/tasks/main.yml
@@ -174,7 +174,7 @@
state: started
- name: Set account passwords
- loop: "{{ mox_accounts }}"
+ loop: "{{ email_accounts }}"
no_log: true
ansible.builtin.command:
cmd: mox setaccountpassword {{ item.name }}
diff --git a/ansible/roles/mox/templates/domains.conf b/ansible/roles/mox/templates/domains.conf
index a354875..bccfab3 100644
--- a/ansible/roles/mox/templates/domains.conf
+++ b/ansible/roles/mox/templates/domains.conf
@@ -28,7 +28,7 @@ Domains:
Mailbox: TLSRPT
Accounts:
-{% for account in mox_accounts %}
+{% for account in email_accounts %}
{{ account.name }}:
Domain: mail.joeac.net
Destinations:
diff --git a/ansible/roles/msmtp/tasks/main.yml b/ansible/roles/msmtp/tasks/main.yml
new file mode 100644
index 0000000..8b2f92f
--- /dev/null
+++ b/ansible/roles/msmtp/tasks/main.yml
@@ -0,0 +1,64 @@
+- name: Check msmtp version
+ ansible.builtin.command: msmtp --version
+ register: current_msmtp_version
+ changed_when: false
+ failed_when: false
+
+- name: Install msmtp from source if needed
+ when: "'msmtp version ' ~ msmtp_version ~ '\n' not in current_msmtp_version.stdout or msmtp_auth_mech not in current_msmtp_version.stdout"
+ block:
+ - name: Install dependencies for building msmtp from source
+ community.general.apk:
+ name:
+ - autoconf
+ - automake
+ - libgsasl-dev
+ - libtool
+ - gettext
+ - git
+ - gnutls-dev
+ - pkgconf
+ - texinfo
+ state: present
+
+ - name: Fetch msmtp v{{ msmtp_version }} source code
+ ansible.builtin.get_url:
+ url: https://marlam.de/msmtp/releases/msmtp-{{ msmtp_version }}.tar.xz
+ dest: /tmp/msmtp-{{ msmtp_version }}.tar.xz
+
+ - name: Create msmtp src directory
+ ansible.builtin.file:
+ path: "{{ msmtp_src_dir }}"
+ state: directory
+ mode: "755"
+
+ - name: Extract msmtp v{{ msmtp_version }} source code
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: /tmp/msmtp-{{ msmtp_version }}.tar.xz
+ dest: "{{ msmtp_src_dir }}"
+ creates: "{{ msmtp_src_dir }}/msmtp-{{ msmtp_version }}"
+
+ - name: Run msmtp configure script
+ ansible.builtin.shell:
+ cmd: ./configure --with-libgsasl
+ chdir: "{{ msmtp_src_dir }}/msmtp-{{ msmtp_version }}"
+ creates: "{{ msmtp_src_dir }}/msmtp-{{ msmtp_version }}/Makefile"
+
+- name: Install msmtp config
+ vars:
+ account: "{{ email_accounts | selectattr('name', 'eq', 'jobot') | first }}"
+ ansible.builtin.template:
+ src: msmtprc
+ dest: /etc/msmtprc
+ owner: joeac.net
+ group: joeac.net
+ mode: "600"
+
+- name: Create msmtp log directory
+ ansible.builtin.file:
+ path: "{{ msmtp_log_dir }}"
+ state: directory
+ owner: joeac.net
+ group: joeac.net
+ mode: "770"
diff --git a/ansible/roles/msmtp/templates/msmtprc b/ansible/roles/msmtp/templates/msmtprc
new file mode 100644
index 0000000..aee3a3c
--- /dev/null
+++ b/ansible/roles/msmtp/templates/msmtprc
@@ -0,0 +1,13 @@
+account {{ account.name }}@mail.joeac.net
+host mail.joeac.net
+port 465
+auth {{ msmtp_auth_mech }}
+tls on
+tls_starttls off
+tls_trust_file /etc/ssl/certs/ca-certificates.crt
+user {{ account.name }}@mail.joeac.net
+from {{ account.name }}@mail.joeac.net
+password {{ account.password }}
+logfile {{ msmtp_log_dir }}/{{ account.name }}.mail.joeac.net.log
+
+account default : {{ account.name }}@mail.joeac.net