- name: install mailman package: name: - mailman3 - mailman3-web - python3-mailman-hyperkitty - lynx # needed to convert html mail - python3-wheel - python3-pip - python3-django-auth-ldap - python3-mailmanclient - name: install mailman addons via pip notify: restart mailman loop: - git+https://git.cccv.de/uffd/postorius-ldap-membership-management.git pip: executable: pip3 state: latest name: "{{ item }}" - name: copy mailman config notify: restart mailman template: src: mailman.cfg.j2 dest: /etc/mailman3/mailman.cfg mode: 0640 owner: root group: list - name: copy mailman-web config notify: restart mailman-web template: src: mailman-web.py.j2 dest: /etc/mailman3/mailman-web.py mode: 0640 owner: root group: www-data - name: copy mailman-hyperkitty config notify: restart mailman template: src: mailman-hyperkitty.cfg.j2 dest: /etc/mailman3/mailman-hyperkitty.cfg mode: 0640 owner: root group: list - name: flush handlers to get mailman ready meta: flush_handlers - name: "setup mailing list" notify: restart mailman-web loop: "{{ mailman.lists|expand_dict_keys_with_defaults(mailman.list_defaults)|dict2items }}" loop_control: loop_var: current_list mailman_list: # noqa no-log-password api_url: "http://{{ mailman.api.hostname }}:{{ mailman.api.port }}/{{ mailman.api.version }}" api_user: "{{ mailman.api.admin.name }}" api_password: "{{ mailman.api.admin.pw }}" name: "{{ current_list.value.name }}" settings: "{{ current_list.value.settings }}" - name: add ldap sync job when: mailman.web.ldap.sync|d(False) cron: name: "mailman ldap sync" user: www-data job: /usr/bin/django-admin syncldapusers --pythonpath /usr/share/mailman3-web --settings settings 2>&1 | /usr/bin/logger -t "mailman-ldapsync"; /usr/bin/django-admin syncldapmemberships --pythonpath /usr/share/mailman3-web --settings settings 2>&1 | /usr/bin/logger -t "mailman-ldapsync" minute: "*/15"