Replace /etc/my.cnf.d if it exists for SUSE/CentOS
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. By replacing it with symlinks, we allow anything else on the system expecting those paths to be in place to still work as before, but we also ensure that the MariaDB package expectations are met. Change-Id: I07fd0872a76af9dab89414207e297946e84965cf
This commit is contained in:
parent
a1656f8876
commit
04f655f50c
|
@ -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:
|
||||
|
|
|
@ -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) }}"
|
||||
|
|
Loading…
Reference in New Issue