- name: install mariadb package: name: mariadb-server state: present - name: create mysql directory file: path: /srv/mysql owner: mysql group: mysql state: directory - name: populate mysql directory command: /usr/bin/mysql_install_db --datadir=/srv/mysql args: creates: /srv/mysql/ibdata1 notify: restart mariadb - name: replace conffile copy: src: files/50-server.cnf dest: /etc/mysql/mariadb.conf.d/50-server.cnf notify: restart mariadb - name: debian upgrade file conf template: src: debian.cnf.j2 dest: /etc/mysql/debian.cnf owner: root group: root mode: '0600' notify: restart mariadb - name: force handlers meta: flush_handlers - name: install python-mysql package: name: "{{ item }}" state: present loop: - python-pymysql - python3-pymysql - name: root password mysql_user: login_user: root host: "{{ item }}" name: root password: "{{ mariadb_root_pass }}" loop: - "localhost" - "127.0.0.1" - "::1" - name: put .my.cnf file template: src: dot.my.cnf.j2 dest: ~/.my.cnf mode: '0600' - name: scripted version of mysql_secure_installation command: "{{ item }}" args: warn: false creates: ~/mysql_secure_installation loop: - "mysql -e \"DELETE FROM mysql.user WHERE User='';\"" - "mysql -e \"DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');\"" - "mysql -e \"DROP DATABASE IF EXISTS test;\"" - "mysql -e \"DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';\"" - "mysql -e \"FLUSH PRIVILEGES;\"" - touch ~/mysql_secure_installation - name: install backup script copy: src: files/backup_mysql.sh dest: /usr/local/bin/backup_mysql.sh mode: '0755' - name: cron backup script cron: name: "MariaDB backup" hour: "{{ mariadb_backup_hour }}" minute: "{{ mariadb_backup_minute }}" job: "/usr/local/bin/backup_mysql.sh" state: present