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_TASKS | Install
include_tasks: 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_TASKS | Galera
include_tasks: galera/main.yml
when: mysql_vendor == 'mariadb_galera'
- name: INCLUDE_TASKS | Replication
include_tasks: replication/main.yml
when: mysql_replication_master or mysql_replication_slave
- name: INCLUDE_TASKS | Secure install
include_tasks: 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 }}"