
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
109 lines
3.0 KiB
YAML
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
|