Clark Boylan 4c4e27cb3a Ansible mailman configs
This converts our existing puppeted mailman configuration into a set of
ansible roles and a new playbook. We don't try to do anything new and
instead do our best to map from puppet to ansible as closely as
possible. This helps reduce churn and will help us find problems more
quickly if they happen.

Followups will further cleanup the puppetry.

Change-Id: If8cdb1164c9000438d1977d8965a92ca8eebe4df
2021-05-11 08:40:01 -07:00

109 lines
3.0 KiB
YAML

- name: Set mailman site root fact
set_fact:
mm_site_root: "/srv/mailman/{{ mailman_site.name }}"
cacheable: no
- name: Create mm site dirs
file:
path: "{{ inner_site_dir }}"
state: directory
owner: list
group: list
mode: '2775'
loop:
- "{{ mm_site_root }}/"
- "{{ mm_site_root }}/etc"
- "{{ mm_site_root }}/lists"
- "{{ mm_site_root }}/logs"
- "{{ mm_site_root }}/locks"
- "{{ mm_site_root }}/data"
- "{{ mm_site_root }}/spam"
- "{{ mm_site_root }}/mail"
- "{{ mm_site_root }}/run"
- "{{ mm_site_root }}/archives"
- "{{ mm_site_root }}/archives/public"
- "{{ mm_site_root }}/archives/private"
- "{{ mm_site_root }}/templates"
- "{{ mm_site_root }}/qfiles"
- "{{ mm_site_root }}/qfiles/in"
- "{{ mm_site_root }}/qfiles/out"
- "{{ mm_site_root }}/qfiles/commands"
- "{{ mm_site_root }}/qfiles/bounces"
- "{{ mm_site_root }}/qfiles/news"
- "{{ mm_site_root }}/qfiles/archive"
- "{{ mm_site_root }}/qfiles/shunt"
- "{{ mm_site_root }}/qfiles/virgin"
- "{{ mm_site_root }}/qfiles/bad"
- "{{ mm_site_root }}/qfiles/retry"
- "{{ mm_site_root }}/qfiles/maildir"
loop_control:
loop_var: inner_site_dir
- name: Link html templates into site
file:
state: link
src: "/usr/share/mailman/{{ site_language }}"
dest: "{{ mm_site_root }}/templates/{{ site_language }}"
owner: root
group: root
loop: "{{ mailman_site.install_languages }}"
loop_control:
loop_var: site_language
- name: Create openstack specific en templates dir
file:
state: directory
path: /srv/mailman/openstack/templates/en
owner: root
group: list
mode: '0755'
when: mailman_site.name == "openstack"
- name: Copy openstack specific en templates into site
synchronize:
src: openstack/html-templates-en/
dest: /srv/mailman/openstack/templates/en
when: mailman_site.name == "openstack"
- name: Create site specific config
template:
src: mm_site_cfg.py.j2
dest: "{{ mm_site_root }}/etc/mm_cfg_local.py"
owner: root
group: root
mode: '0444'
- name: Create normal mailman vhost config
template:
src: mailman_multihost.vhost.j2
dest: "/etc/apache2/sites-enabled/50-{{ mailman_site.listdomain }}.conf"
owner: root
group: root
mode: '0644'
notify: mailman site reload apache2
- name: Create site init script
template:
src: mailman.init.j2
dest: "/etc/init.d/mailman-{{ mailman_site.name }}"
owner: root
group: root
mode: '0755'
- name: Enable mailman site service
service:
name: "mailman-{{ mailman_site.name }}"
enabled: yes
- name: Create mailman site lists
include_role:
name: mailman-list
vars:
mm_site_name: "{{ mailman_site.name }}"
mm_list_name: "{{ site_list.name }}"
mm_list_description: "{{ site_list.description }}"
mm_list_admin: "{{ site_list.admin }}"
mm_list_password: "{{ site_list.password }}"
loop: "{{ mailman_site.lists }}"
loop_control:
loop_var: site_list