ansible/playbooks/groups/mailman.yml

149 lines
4.1 KiB
YAML
Raw Normal View History

2013-08-12 21:17:21 +00:00
# create a new mailman server
# NOTE: make sure there is room/space for this server on the vmhost
# NOTE: most of these vars_path come from group_vars/mirrorlist or from hostvars
2013-08-12 21:17:21 +00:00
- name: make mailman server
2014-01-20 19:01:12 +00:00
hosts: mailman-stg:mailman
2013-08-12 21:17:21 +00:00
user: root
gather_facts: False
accelerate: "{{ accelerated }}"
2013-08-12 21:17:21 +00:00
2013-09-03 17:44:29 +02:00
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "{{ private }}/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
2013-08-12 21:17:21 +00:00
tasks:
- include: "{{ tasks }}/virt_instance_create.yml"
- include: "{{ tasks }}/accelerate_prep.yml"
2013-08-12 21:17:21 +00:00
handlers:
- include: "{{ handlers }}/restart_services.yml"
2013-08-12 21:17:21 +00:00
- name: make the box be real
2014-01-20 19:01:12 +00:00
hosts: mailman-stg:mailman
2013-08-12 21:17:21 +00:00
user: root
gather_facts: True
accelerate: "{{ accelerated }}"
2013-08-12 21:17:21 +00:00
2013-09-03 17:44:29 +02:00
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "{{ private }}/vars.yml"
- "/srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml"
2013-08-12 21:17:21 +00:00
roles:
- base
- rkhunter
- denyhosts
- nagios_client
- fas_client
- collectd/base
- yum-cron
2013-08-12 21:17:21 +00:00
tasks:
# this is how you include other task lists
- include: "{{ tasks }}/hosts.yml"
- include: "{{ tasks }}/yumrepos.yml"
- include: "{{ tasks }}/2fa_client.yml"
- include: "{{ tasks }}/motd.yml"
- include: "{{ tasks }}/sudo.yml"
- include: "{{ tasks }}/apache.yml"
- include: "{{ tasks }}/mod_wsgi.yml"
2014-02-25 17:19:48 +00:00
- include: "{{ tasks }}/openvpn_client.yml"
2014-02-25 17:20:19 +00:00
when: env != "staging"
2013-09-03 17:44:29 +02:00
handlers:
- include: "{{ handlers }}/restart_services.yml"
2013-09-03 17:44:29 +02:00
2014-02-03 11:31:37 +00:00
#
2013-09-03 17:44:29 +02:00
# Database setup
2014-02-03 11:31:37 +00:00
#
- name: prepare setting up the database
hosts: db02.stg.phx2.fedoraproject.org:db01.phx2.fedoraproject.org
gather_facts: no
user: root
tasks:
- name: install psycopg2 for the postgresql ansible modules
yum: pkg=python-psycopg2 state=installed
tags:
- packages
2013-09-03 17:44:29 +02:00
- name: setup the database
2014-01-20 19:01:12 +00:00
hosts: db02.stg.phx2.fedoraproject.org:db01.phx2.fedoraproject.org
2013-09-03 17:44:29 +02:00
gather_facts: no
sudo: yes
sudo_user: postgres
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "{{ private }}/vars.yml"
- "/srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml"
2013-09-03 17:44:29 +02:00
tasks:
# mailman auto-updates its schema, there can only be one admin user
- name: mailman DB user
postgresql_user: name=mailmanadmin password={{ mailman_mm_db_pass }}
- name: hyperkitty DB admin user
postgresql_user: name=hyperkittyadmin password={{ mailman_hk_admin_db_pass }}
- name: hyperkitty DB user
postgresql_user: name=hyperkittyapp password={{ mailman_hk_db_pass }}
- name: kittystore DB admin user
postgresql_user: name=kittystoreadmin password={{ mailman_ks_admin_db_pass }}
- name: kittystore DB user
postgresql_user: name=kittystoreapp password={{ mailman_ks_db_pass }}
- name: databases creation
postgresql_db: name={{ item }} owner="{{ item }}admin" encoding=UTF-8
with_items:
- mailman
- hyperkitty
- kittystore
- name: test database creation
postgresql_db: name=test_hyperkitty owner=hyperkittyadmin encoding=UTF-8
2013-09-03 17:44:29 +02:00
# Real MM/HK-specific work
- name: setup mailman and hyperkitty
2014-01-20 19:01:12 +00:00
hosts: mailman-stg:mailman
2013-09-03 17:44:29 +02:00
user: root
gather_facts: True
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "{{ private }}/vars.yml"
- "/srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml"
2013-09-03 17:44:29 +02:00
roles:
- role: mailman
2014-01-20 17:56:49 +00:00
mailman_postfix_mydestination: "lists.fedoraproject.org, lists.stg.fedoraproject.org"
mailman_mm_db_pass: "{{ mailman_mm_db_pass }}"
mailman_hk_admin_db_pass: "{{ mailman_hk_admin_db_pass }}"
mailman_hk_db_pass: "{{ mailman_hk_db_pass }}"
mailman_ks_admin_db_pass: "{{ mailman_ks_admin_db_pass }}"
mailman_ks_db_pass: "{{ mailman_ks_db_pass }}"
2014-03-14 15:47:11 +00:00
- fedmsg/base
2013-09-03 17:44:29 +02:00
tasks:
- name: install more needed packages
yum: pkg={{ item }} state=installed
with_items:
- tar
2013-10-01 14:11:12 +00:00
- mailman # transition from mailman2.1
tags:
- packages
2013-09-03 17:44:29 +02:00
#- name: easy access to the postgresql databases
# template: src=$files/mailman/pgpass.j2 dest=/root/.pgpass
# owner=root group=root mode=0600
- name: start services
service: state=started enabled=yes name={{ item }}
2013-09-03 17:44:29 +02:00
with_items:
2013-10-01 14:02:01 +00:00
- httpd
- mailman3
- postfix
2013-09-03 17:44:29 +02:00
2013-08-12 21:17:21 +00:00
handlers:
- include: "{{ handlers }}/restart_services.yml"