--- - name: Install MariaDB apt: name: "{{ item }}" state: installed with_items: - mariadb-client - mariadb-server - python-mysqldb - name: Enable MariaDB service on boot (workaround for systemctl broken handling of SysV) command: rcconf -on mysql register: result changed_when: result.stderr == "" - name: Enable and start MariaDB service: name: mysql state: started - name: Set password for the root database user mysql_user: check_implicit_admin: yes name: root password: "{{ db_root_password }}" - name: Deploy username and password for the root database user template: src: "root_my.cnf.j2" dest: "/root/.my.cnf" owner: root group: root mode: 0400 - name: Set UTF-8 encoding as default for MariaDB copy: src: "utf8.cnf" dest: "/etc/mysql/conf.d/utf8.cnf" owner: root group: root mode: 0644 register: mariadb_utf8_configuration - name: Restart MariaDB in order to use UTF-8 as default character set service: name: mysql state: restarted when: mariadb_utf8_configuration.changed tags: # [ANSIBLE0016] Tasks that run when changed should likely be handlers # UTF-8 configuration must be applied immediatelly in order to ensure that # subsequent tasks that create databases will end-up with correct (UTF-8) # encoding. Otherwise they will be created using default latin1. - skip_ansible_lint - name: Explicitly run all handlers include: ../handlers/main.yml when: "handlers | default(False) | bool() == True" tags: - handlers