--- - 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