ansible-mysql/tasks/main.yml

80 lines
1.9 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: /usr/bin/mariadb
register: mariadb_exists
changed_when: false
- name: INCLUDE | Install
include: install/main.yml
- name: TEMPLATE | Deploy configuration
template:
src: "{{ mariadb_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 mariadb_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: mariadb_vendor == 'mariadb_galera'
- name: INCLUDE | Replication
include: replication/main.yml
when: mariadb_replication_master or mariadb_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: "{{ mariadb_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: "{{ mariadb_users }}"
- name: TEMPLATE | Deploy logrotate configuration
template:
src: "etc/logrotate.d/mysql-server.j2"
dest: "/etc/logrotate.d/mysql-server"
when: mariadb_manage_logrotate