diff options
| author | Joe Carstairs <me@joeac.net> | 2026-08-11 14:43:44 +0100 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-08-11 14:43:44 +0100 |
| commit | 4e73a59d76e8c4949908e766657f5d634d39fb67 (patch) | |
| tree | 0a51e16fc9728af6dcc8d2162932ed978a0d9eba /ansible/roles | |
| parent | 48b9b3a92f4593793c933ba1e21aee28dea724f9 (diff) | |
installs msmtp onto pi-broughton with ansible
Diffstat (limited to 'ansible/roles')
| -rw-r--r-- | ansible/roles/mox/tasks/main.yml | 2 | ||||
| -rw-r--r-- | ansible/roles/mox/templates/domains.conf | 2 | ||||
| -rw-r--r-- | ansible/roles/msmtp/tasks/main.yml | 64 | ||||
| -rw-r--r-- | ansible/roles/msmtp/templates/msmtprc | 13 |
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 |
