ansible-role-mysql/tasks/mysql-conf.yml

50 lines
1.8 KiB
YAML

---
- name: Manage the MySQL configuration files
block:
- name: Check if the new mysql data directory exists
stat: path={{ mysql_data_dir }}
register: my_data_dir
- name: Stop the mysql service while reconfiguring the data directory
service: name=mysql state=stopped
when: my_data_dir.stat.isdir is not defined
- name: Create the data directory
file: dest={{ mysql_data_dir }} state=directory owner=mysql group=mysql mode=0700
- name: Copy data to the new directory
synchronize: src=/var/lib/mysql/ dest={{ mysql_data_dir }}
delegate_to: "{{ inventory_hostname }}"
when: my_data_dir.stat.isdir is not defined
- name: Create the log directory
file: dest={{ mysql_log_dir }} state=directory owner=mysql group=adm mode=1750
- name: Install the main configuration files.
template: src={{ item }}.cnf.j2 dest={{ mysql_conf_dir }}/{{ item }}.cnf owner=root group=root mode=0644
with_items:
- client
- mysql-clients
notify: Restart mysql
- name: Install the main configuration files.
template: src={{ item }}.cnf.j2 dest={{ mysql_service_conf_dir }}/mysqld.cnf owner=root group=root mode=0644
with_items:
- server
notify: Restart mysql
- name: Add AppArmor alias
lineinfile: path=/etc/apparmor.d/tunables/alias line='alias /var/lib/mysql/ -> {{ mysql_data_dir }}/,' insertafter=EOF
when: my_data_dir.stat.isdir is not defined
- name: Restart AppArmor service
service: name=apparmor state=restarted
when: my_data_dir.stat.isdir is not defined
- name: Start the mysql service with the new the data directory
service: name=mysql state=started
when: my_data_dir.stat.isdir is not defined
when: mysql_enabled | bool
tags: [ 'mysql', 'mariadb', 'mysql_conf' ]