mirror of
https://pagure.io/fedora-infra/ansible.git
synced 2026-03-20 03:57:02 +08:00
124 lines
3.2 KiB
YAML
124 lines
3.2 KiB
YAML
---
|
|
# 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
|
|
|
|
- import_playbook: "/srv/web/infra/ansible/playbooks/include/virt-create.yml"
|
|
vars:
|
|
myhosts: "mailman:mailman_stg"
|
|
|
|
- name: Make the box be real
|
|
hosts: mailman_stg:mailman
|
|
user: root
|
|
gather_facts: true
|
|
|
|
vars_files:
|
|
- /srv/web/infra/ansible/vars/global.yml
|
|
- "/srv/private/ansible/vars.yml"
|
|
- "/srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml"
|
|
|
|
roles:
|
|
- base
|
|
- rkhunter
|
|
- nagios_client
|
|
- zabbix/zabbix_agent
|
|
- hosts
|
|
- {role: openvpn/client,
|
|
when: env != "staging"}
|
|
- ipa/client
|
|
- collectd/base
|
|
- sudo
|
|
- spamassassin
|
|
- mod_wsgi
|
|
|
|
pre_tasks:
|
|
- import_tasks: "{{ tasks_path }}/yumrepos.yml"
|
|
|
|
handlers:
|
|
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
|
|
|
|
|
#
|
|
# Database setup
|
|
#
|
|
|
|
- name: Prepare setting up the database
|
|
hosts: db01.rdu3.fedoraproject.org:db01.stg.rdu3.fedoraproject.org
|
|
gather_facts: no
|
|
user: root
|
|
|
|
tasks:
|
|
- name: Install psycopg2 for the postgresql ansible modules
|
|
ansible.builtin.package: name=python3-psycopg2 state=present
|
|
tags:
|
|
- packages
|
|
|
|
- name: Setup the database
|
|
hosts: db01.rdu3.fedoraproject.org:db01.stg.rdu3.fedoraproject.org
|
|
gather_facts: no
|
|
become: yes
|
|
become_user: postgres
|
|
vars_files:
|
|
- /srv/web/infra/ansible/vars/global.yml
|
|
- "/srv/private/ansible/vars.yml"
|
|
- "/srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml"
|
|
|
|
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: Databases creation
|
|
postgresql_db: name={{ item }} owner="{{ item }}admin" encoding=UTF-8
|
|
with_items:
|
|
- mailman
|
|
- hyperkitty
|
|
- name: Test database creation
|
|
postgresql_db: name=test_hyperkitty owner=hyperkittyadmin encoding=UTF-8
|
|
|
|
|
|
# Real MM/HK-specific work
|
|
- name: Setup mailman and hyperkitty
|
|
hosts: mailman_stg:mailman
|
|
user: root
|
|
gather_facts: true
|
|
|
|
vars_files:
|
|
- /srv/web/infra/ansible/vars/global.yml
|
|
- "/srv/private/ansible/vars.yml"
|
|
- "/srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml"
|
|
|
|
roles:
|
|
- role: mailman3
|
|
# Set up for fedora-messaging
|
|
- role: rabbit/user
|
|
user_name: "mailman{{ env_suffix }}"
|
|
user_sent_topics: ^org\.fedoraproject\.{{ env_short }}\.mailman\..*
|
|
|
|
tasks:
|
|
- name: Install more needed packages
|
|
ansible.builtin.package:
|
|
state: present
|
|
name:
|
|
- tar
|
|
tags:
|
|
- packages
|
|
|
|
# - name: Easy access to the postgresql databases
|
|
# ansible.builtin.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 }}
|
|
with_items:
|
|
- httpd
|
|
- mailman3
|
|
- postfix
|
|
when: inventory_hostname.startswith('mailman01.rdu3')
|
|
|
|
handlers:
|
|
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|