--- - 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' ]