ansible-role-mariadb/tasks/main.yml

79 lines
1.9 KiB
YAML

---
- name: Install dependencies packages
ansible.builtin.package:
name:
- gpg
- python3-mysqldb
retries: 2
register: result
until: result is succeeded
tags: mariadb
- name: Install official repository
ansible.builtin.import_tasks: repo.yml
when: mariadb_use_official_repository|bool
- name: Install package
ansible.builtin.package:
name:
- mariadb-server
retries: 2
register: result
until: result is succeeded
tags: mariadb
- name: Copy configuration file
ansible.builtin.template:
src: my.cnf.j2
dest: /etc/mysql/my.cnf
owner: root
group: root
mode: 0644
notify: Restart mariadb
tags: mariadb
- name: Check if datadir exist
ansible.builtin.stat:
path: "{{ mariadb_full_config.mysqld.datadir }}"
register: st
tags: mariadb
- name: Initialize the database
ansible.builtin.import_tasks: initdb.yml
when: not st.stat.exists
- name: Enable and start the service
ansible.builtin.service:
name: mysql
state: started
enabled: true
tags: mariadb
- name: Manage users
community.mysql.mysql_user:
name: "{{ item.name }}"
host: "{{ item.host }}"
password: "{{ item.password }}"
priv: "{{ item.privileges | default('') | join('/') }}"
state: "{{ item.state | default('present') }}"
login_user: "{{ mariadb_user }}"
login_password: "{{ mariadb_password }}"
loop: "{{ mariadb_users }}"
loop_control:
label: "{{ item.name }}@{{ item.host }}"
run_once: true
when: mariadb_master|bool
tags: mariadb
- name: Manage databases
community.mysql.mysql_db:
name: "{{ item.name }}"
state: "{{ item.state | default('present') }}"
login_user: "{{ mariadb_user }}"
login_password: "{{ mariadb_password }}"
loop: "{{ mariadb_databases }}"
loop_control:
label: "{{ item.name }}"
run_once: true
when: mariadb_master|bool
tags: mariadb