---

- name: INCLUDE_VARS | Related to OS version
  include_vars: "{{ ansible_distribution }}-{{ ansible_distribution_release }}.yml"

- name: STAT | Check if mysql exists
  stat: path=/etc/init.d/mysql
  register: mysql_exists
  changed_when: false

- name: INCLUDE | Install
  include: install/main.yml

- name: TEMPLATE | Deploy configuration
  template: "src={{ mysql_config_template }} dest=/etc/mysql/my.cnf"
  register: config

- name: TEMPLATE | Deploy extra configuration
  template: src=etc/mysql/conf.d/10-extra.cnf.j2 dest=/etc/mysql/conf.d/10-extra.cnf
  register: extraconfig

- name: SERVICE | Restart now (prevent bugs)
  service: name=mysql state=restarted
  when: >
    (config.changed or extraconfig.changed) and
    not mysql_galera_resetup

- name: TEMPLATE Create .my.cnf for root
  template: src=root/my.cnf dest=/root/.my.cnf owner=root group=root mode=0600 backup=yes

- name: INCLUDE | Galera
  include: galera/main.yml
  when: mysql_vendor == 'mariadb_galera'

- name: INCLUDE | Replication
  include: replication/main.yml
  when: mysql_replication_master or mysql_replication_slave

- name: INCLUDE | Secure install
  include: 'secure.yml'

- name: SERVICE | Ensure service is started
  service: name=mysql state=started

- name: MYSQL_DB | Create databases
  mysql_db: name={{ item }} state=present
  with_items: "{{ mysql_databases }}"

- name: MYSQL_USER | Manages users...
  mysql_user: >
    name="{{ item.name }}"
    password="{{ item.password }}"
    priv="{{ item.priv }}"
    host="{{ item.host | default('localhost') }}"
    state=present
  with_items: "{{ mysql_users }}"

- name: TEMPLATE | Deploy logrotate configuration
  template:
    src: "etc/logrotate.d/mysql-server.j2"
    dest: "/etc/logrotate.d/mysql-server"
  when: mysql_manage_logrotate