diff --git a/tasks/galera_install_yum.yml b/tasks/galera_install_yum.yml index c90ef4cc..23e7c42f 100644 --- a/tasks/galera_install_yum.yml +++ b/tasks/galera_install_yum.yml @@ -36,18 +36,53 @@ warn: no executable: /bin/bash +# In SUSE/CentOS systems, /etc/my.cnf.d may already exist on the +# system. We need to ensure that it is removed if that is true so +# that we can replace it with symlinks to the directories expected +# to be used by the MariaDB packages instead. +- name: Stat /etc/my.cnf.d + stat: + path: /etc/my.cnf.d + get_attributes: no + get_checksum: no + get_mime: no + register: mycnfd_stat + +- name: Destroy my.cnf.d dir if is dir + file: + path: /etc/my.cnf.d + state: absent + force: true + when: + - mycnfd_stat.stat.isdir is defined + - mycnfd_stat.stat.isdir == True + +# We replace the default paths for the system with symlinks to +# the paths used by the MariaDB packages so ensure that any other +# system expectations are still met. - name: Update the local file system CRUD file: - src: "{{ item.src|default(omit) }}" + src: "{{ item.src | default(omit) }}" path: "{{ item.path }}" state: "{{ item.state }}" - force: "{{ item.force|default(omit) }}" + force: "{{ item.force | default(omit) }}" with_items: - - { path: "/etc/mysql", state: "directory" } - - { path: "/etc/mysql/conf.d", state: "directory" } - - { src: "/usr/lib64/galera", path: "/usr/lib/galera", state: "link", force: true } - - { src: "/etc/mysql/conf.d", path: "/etc/my.cnf.d", state: "link", force: true } - - { src: "/etc/mysql/my.cnf", path: "/etc/my.cnf", state: "link", force: true } + - path: "/etc/mysql" + state: "directory" + - path: "/etc/mysql/conf.d" + state: "directory" + - src: "/usr/lib64/galera" + path: "/usr/lib/galera" + state: "link" + force: true + - src: "/etc/mysql/conf.d" + path: "/etc/my.cnf.d" + state: "link" + force: true + - src: "/etc/mysql/my.cnf" + path: "/etc/my.cnf" + state: "link" + force: true - name: If a keyfile is provided, copy the gpg keyfile to the key location copy: diff --git a/tasks/galera_install_zypper.yml b/tasks/galera_install_zypper.yml index b960489e..2c3a75c6 100644 --- a/tasks/galera_install_zypper.yml +++ b/tasks/galera_install_zypper.yml @@ -18,6 +18,30 @@ name: "{{ galera_server_mariadb_distro_packages_remove }}" state: absent +# In SUSE/CentOS systems, /etc/my.cnf.d may already exist on the +# system. We need to ensure that it is removed if that is true so +# that we can replace it with symlinks to the directories expected +# to be used by the MariaDB packages instead. +- name: Stat /etc/my.cnf.d + stat: + path: /etc/my.cnf.d + get_attributes: no + get_checksum: no + get_mime: no + register: mycnfd_stat + +- name: Destroy my.cnf.d dir if is dir + file: + path: /etc/my.cnf.d + state: absent + force: true + when: + - mycnfd_stat.stat.isdir is defined + - mycnfd_stat.stat.isdir == True + +# We replace the default paths for the system with symlinks to +# the paths used by the MariaDB packages so ensure that any other +# system expectations are still met. - name: Update the local file system CRUD file: src: "{{ item.src|default(omit) }}"