--- # Copyright 2017, SUSE LINUX GmbH. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - name: Remove conflicting distro packages package: 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) }}" path: "{{ item.path }}" state: "{{ item.state }}" force: "{{ item.force|default(omit) }}" with_items: - { path: "/etc/mysql", state: "directory" } - { path: "/etc/mysql/conf.d", state: "directory" } - { 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: src: "gpg/{{ item.key | basename }}" dest: "{{ item.key }}" mode: '0644' with_items: "{{ galera_gpg_keys }}" - name: Install gpg keys rpm_key: "{{ key }}" with_items: "{{ galera_gpg_keys }}" loop_control: loop_var: key register: _add_zypper_keys until: _add_zypper_keys is success retries: 5 delay: 2 - name: Add galera repo zypper_repository: name: "{{ galera_repo.name }}" description: "{{ galera_repo.description }}" repo: "{{ galera_repo.baseurl }}" autorefresh: yes auto_import_keys: no enabled: yes register: add_repos until: add_repos is success retries: 5 delay: 2 - name: Install galera_server role remote packages (zypper) zypper: name: "{{ galera_packages_list }}" state: "{{ galera_server_package_state }}" register: install_remote_packages until: install_remote_packages is success retries: 5 delay: 2 notify: - Manage LB - Restart all mysql