ansible-role-mailman/tasks/main.yml
2021-06-15 17:59:30 +02:00

70 lines
2 KiB
YAML

- 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/django-auth-ldap-remoteuser.git
- git+https://git.cccv.de/uffd/postorius-ldap-membership-management.git
pip:
executable: pip3
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 ( {{ current_list.key }} )"
notify: restart mailman-web
loop: "{{ mailman.lists|expand_dict_keys_with_defaults(mailman.list_defaults)|dict2items }}"
loop_control:
loop_var: current_list
mailman_list:
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 syncldap --pythonpath /usr/share/mailman3-web --settings settings; /usr/bin/django-admin syncldapmemberships --pythonpath /usr/share/mailman3-web --settings settings
minute: "*/15"