ansible-mysql/tasks/main.yml

57 lines
1.7 KiB
YAML

---
- name: INCLUDE_VARS | Related to Debian version
include_vars: "{{ ansible_distribution_release }}.yml"
- name: FAIL | Check if packet is available
fail: msg='IMPOSSIBLE'
when: not "{{ mysql_origin }}_{{ mysql_vendor }}"
- name: APT | Install few MySQL related tools
apt: pkg={{ item }} state=latest
with_items:
- mytop
- percona-toolkit
- python-configparser
- python-mysqldb
- name: STAT | Check if mysql exists
stat: path=/etc/init.d/mysql
register: mysql_exists
changed_when: false
- name: INCLUDE | Install MySQL from default repo
include: 'debian_mysql.yml'
when: mysql_origin == 'default' mysql_vendor == 'mysql'
- name: INCLUDE | Install MariaDB from Debian repo
include: 'debian_mariadb.yml'
when: mysql_origin == 'default' and mysql_vendor == 'mariadb'
- name: INCLUDE | Install MariaDB from MariaDB repo
include: 'mariadb_mariadb.yml'
when: mysql_origin == 'default' and mysql_vendor == 'mariadb'
- name: INCLUDE | Install Percona Server from Percona repo
include: 'percona_percona.yml'
when: mysql_origin == 'percona' and mysql_vendor == 'percona'
- name: TEMPLATE | Deploy daemon configuration
template: src=etc/mysql/conf.d/98-config.cnf.j2 dest=/etc/mysql/conf.d/98-config.cnf
notify: restart mysql
- 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 | Secure install
include: 'secure.yml'
- 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 }} state=present
with_items: mysql_users