ansible-collection-mailserver/roles/mailman/tasks/bootstrap.yml

89 lines
3.5 KiB
YAML

---
- name: Create mariadb mailman database
community.mysql.mysql_db:
name: '{{ mailman_mariadb_database }}'
login_host: '{{ mailman_mariadb_bootstrap_host }}'
login_port: '{{ mailman_mariadb_bootstrap_port }}'
login_unix_socket: '{{ mailman_mariadb_bootstrap_socket }}'
login_user: '{{ mailman_mariadb_bootstrap_login_user }}'
login_password: '{{ mailman_mariadb_bootstrap_login_password }}'
check_implicit_admin: true
- name: Create mariadb mailman-web database
community.mysql.mysql_db:
name: '{{ mailman_web_database_name }}'
login_host: '{{ mailman_mariadb_bootstrap_host }}'
login_port: '{{ mailman_mariadb_bootstrap_port }}'
login_unix_socket: '{{ mailman_mariadb_bootstrap_socket }}'
login_user: '{{ mailman_mariadb_bootstrap_login_user }}'
login_password: '{{ mailman_mariadb_bootstrap_login_password }}'
check_implicit_admin: true
- name: Create mailman database user
community.mysql.mysql_user:
name: "{{ mailman_mariadb_user }}"
host: "{{ mailman_mariadb_user_host }}"
password: '{{ mailman_mariadb_password }}'
priv: '{{ mailman_mariadb_database }}.*:ALL' # grant all privileges (no grant)
login_host: '{{ mailman_mariadb_bootstrap_host }}'
login_port: '{{ mailman_mariadb_bootstrap_port }}'
login_unix_socket: '{{ mailman_mariadb_bootstrap_socket }}'
login_user: '{{ mailman_mariadb_bootstrap_login_user }}'
login_password: '{{ mailman_mariadb_bootstrap_login_password }}'
check_implicit_admin: true
- name: Create mailman-web database user
community.mysql.mysql_user:
name: "{{ mailman_web_database_user }}"
host: "{{ mailman_web_database_user_host }}"
password: '{{ mailman_web_database_password }}'
priv: '{{ mailman_web_database_name }}.*:ALL' # grant all privileges (no grant)
login_host: '{{ mailman_mariadb_bootstrap_host }}'
login_port: '{{ mailman_mariadb_bootstrap_port }}'
login_unix_socket: '{{ mailman_mariadb_bootstrap_socket }}'
login_user: '{{ mailman_mariadb_bootstrap_login_user }}'
login_password: '{{ mailman_mariadb_bootstrap_login_password }}'
check_implicit_admin: true
- name: Create mailman-postfix database user
community.mysql.mysql_user:
name: "{{ mailman_database_postfix_user }}"
host: "{{ mailman_database_postfix_user_host }}"
password: '{{ mailman_database_postfix_password }}'
priv: '{{ mailman_mariadb_database }}.*:SELECT'
login_host: '{{ mailman_mariadb_bootstrap_host }}'
login_port: '{{ mailman_mariadb_bootstrap_port }}'
login_unix_socket: '{{ mailman_mariadb_bootstrap_socket }}'
login_user: '{{ mailman_mariadb_bootstrap_login_user }}'
login_password: '{{ mailman_mariadb_bootstrap_login_password }}'
check_implicit_admin: true
- name: Apply mailman-web migrations
become_user: www-data
become: true
ansible.builtin.command: /usr/share/mailman3-web/manage.py migrate
changed_when: true
- name: Change django default site
become_user: www-data
become: true
ansible.builtin.command: >-
/usr/share/mailman3-web/manage.py set_default_site
--name {{ mailman_sitename }}
--domain {{ mailman_sitename }}
changed_when: true
- name: Create mailman-web superuser
become_user: www-data
become: true
ansible.builtin.command: /usr/share/mailman3-web/manage.py shell
args:
stdin: |
from django.contrib.auth.models import User
User.objects.create_superuser(
'{{ mailman_superuser_name }}',
'{{ mailman_superuser_email }}',
'{{ mailman_superuser_password }}'
)
changed_when: true