---
# file: roles/mysql/tasks/main.yml

- name: ensure mysql packages are installed for jessie
  apt: name={{ item }} state=latest
  with_items:
    - mysql-server
    - python-mysqldb
  when:
    - debian_version == "jessie"
  tags:
    - packages
    - mysql

- name: ensure mysql packages are installed for stretch
  apt: name={{ item }} state=latest
  with_items:
    - mariadb-server
    - python-mysqldb
  when:
    - debian_version == "stretch"
  tags:
    - packages
    - mysql

- name: ensure mysql is started
  service: name=mysql state=started enabled=yes
  tags:
    - service
    - mysql

- name: ensure the mysql root user exists and has the correct password
  mysql_user:
    name: root
    password: "{{ lookup('passwordstore', 'db/{{ ansible_hostname }}-mysql create=true length=20') }}"
    login_user: root
    login_password: "{{ lookup('passwordstore', 'db/{{ ansible_hostname }}-mysql create=true length=20') }}"
  register: mysql_root_creation_result
  no_log: True
  ignore_errors: yes
  tags:
    - mysql
    - config

- name: initialize the mysql root user
  mysql_user:
    name: root
    password: "{{ lookup('passwordstore', 'db/{{ ansible_hostname }}-mysql create=true length=20') }}"
  no_log: True
  when: mysql_root_creation_result|failed
  tags:
    - mysql
    - config