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

54 lines
2.4 KiB
YAML

---
- name: Create mariadb database
community.mysql.mysql_db:
name: '{{ postfixadmin_database_name }}'
login_host: '{{ postfixadmin_database_host }}'
login_port: '{{ postfixadmin_database_port }}'
login_unix_socket: '{{ postfixadmin_database_socket }}'
login_user: '{{ postfixadmin_bootstrap_login_user }}'
login_password: '{{ postfixadmin_bootstrap_login_password }}'
check_implicit_admin: true
- name: Create postfixadmin database user
community.mysql.mysql_user:
name: "{{ postfixadmin_database_user }}"
host: "{{ postfixadmin_database_user_host }}"
password: '{{ postfixadmin_database_password }}'
priv: '{{ postfixadmin_database_name }}.*:ALL' # grant all privileges (no grant)
login_host: '{{ postfixadmin_database_host }}'
login_port: '{{ postfixadmin_database_port }}'
login_unix_socket: '{{ postfixadmin_database_socket }}'
login_user: '{{ postfixadmin_bootstrap_login_user }}'
login_password: '{{ postfixadmin_bootstrap_login_password }}'
check_implicit_admin: true
- name: Create postfix database user
community.mysql.mysql_user:
name: "{{ postfixadmin_database_postfix_user }}"
host: "{{ postfixadmin_database_postfix_user_host }}"
password: '{{ postfixadmin_database_postfix_password }}'
priv: '{{ postfixadmin_database_name }}.*:SELECT,INSERT,UPDATE,DELETE' # grant crud privileges
login_host: '{{ postfixadmin_database_host }}'
login_port: '{{ postfixadmin_database_port }}'
login_unix_socket: '{{ postfixadmin_database_socket }}'
login_user: '{{ postfixadmin_bootstrap_login_user }}'
login_password: '{{ postfixadmin_bootstrap_login_password }}'
check_implicit_admin: true
- name: Request setup.php to create database and admin user
ansible.builtin.uri:
url: '{{ postfixadmin_bootstrap_base_url }}/setup.php'
method: POST
body_format: form-urlencoded
body:
form: create_admin
setup_password: '{{ postfixadmin_setup_password }}'
username: '{{ postfixadmin_bootstrap_admin_username }}'
password: '{{ postfixadmin_bootstrap_admin_password }}'
password2: '{{ postfixadmin_bootstrap_admin_password }}'
submit: 'createadmin'
return_content: true
register: postfixadmin_register_boostrap_create_admin
changed_when: true
failed_when: '"Admin addition failed" in postfixadmin_register_boostrap_create_admin.content or postfixadmin_register_boostrap_create_admin.status != 200'