ansible-mysql/tasks/main.yml

57 lines
1.6 KiB
YAML

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