79 lines
1.9 KiB
YAML
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
|