diff --git a/handlers/main.yml b/handlers/main.yml index 04e9430a..d2415135 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -75,7 +75,7 @@ environment: MYSQLD_STARTUP_TIMEOUT: 180 register: galera_restart - until: galera_restart | success + until: galera_restart is success retries: 6 delay: 5 delegate_to: "{{ item }}" diff --git a/tasks/galera_install_apt.yml b/tasks/galera_install_apt.yml index cd90e432..e40255f7 100644 --- a/tasks/galera_install_apt.yml +++ b/tasks/galera_install_apt.yml @@ -29,7 +29,7 @@ loop_control: loop_var: key register: _add_apt_keys - until: _add_apt_keys | success + until: _add_apt_keys is success retries: 5 delay: 2 @@ -79,9 +79,9 @@ apt: update_cache: yes when: - - add_galera_repo | changed or add_percona_repo | changed + - add_galera_repo | changed or add_percona_repo is changed register: update_apt_cache - until: update_apt_cache | success + until: update_apt_cache is success retries: 5 delay: 2 @@ -92,7 +92,7 @@ update_cache: yes cache_valid_time: "{{ cache_timeout }}" register: install_remote_apt_packages - until: install_remote_apt_packages|success + until: install_remote_apt_packages is success retries: 5 delay: 2 diff --git a/tasks/galera_install_dnf.yml b/tasks/galera_install_dnf.yml deleted file mode 120000 index 364c4229..00000000 --- a/tasks/galera_install_dnf.yml +++ /dev/null @@ -1 +0,0 @@ -galera_install_yum.yml \ No newline at end of file diff --git a/tasks/galera_install_dnf.yml b/tasks/galera_install_dnf.yml new file mode 100644 index 00000000..da7eb410 --- /dev/null +++ b/tasks/galera_install_dnf.yml @@ -0,0 +1,109 @@ +--- +# Copyright 2016, Rackspace US, Inc. +# +# 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: 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: "/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: + src: "{{ item.keyfile }}" + dest: "{{ item.key }}" + mode: '0644' + with_items: "{{ galera_gpg_keys | selectattr('keyfile','defined') | list }}" + +- name: Install gpg keys + rpm_key: + key: "{{ key.key }}" + validate_certs: "{{ key.validate_certs | default(omit) }}" + state: "{{ key.state | default('present') }}" + with_items: "{{ galera_gpg_keys }}" + loop_control: + loop_var: key + register: _add_yum_keys + until: _add_yum_keys is success + retries: 5 + delay: 2 + +- name: Add galera repo + yum_repository: + name: "{{ galera_repo.name }}" + description: "{{ galera_repo.description }}" + baseurl: "{{ galera_repo.baseurl }}" + gpgkey: "{{ galera_repo.gpgkey | default(omit) }}" + gpgcheck: yes + enabled: yes + register: add_repos + until: add_repos is success + retries: 5 + delay: 2 + +# When changing the repo URL, the metadata does +# not reliably update, resulting in the right +# URL being used, but the wrong package list. +# This is why we force the metadata to be +# cleaned out whenever the repo config changes. +- name: Force the expiry of the repo metadata + command: "{{ ansible_pkg_mgr }} clean metadata" + args: + warn: no + when: add_repos is changed + tags: + - skip_ansible_lint + +- name: Install percona repo + yum_repository: + name: 'percona-release-$basearch' + description: 'Percona-Release YUM repository - $basearch' + baseurl: "{{ galera_percona_xtrabackup_repo.repo }}" + enabled: true + gpgcheck: true + state: "{{ galera_percona_xtrabackup_repo.state }}" + register: install_packages + until: install_packages is success + retries: 5 + delay: 2 + +# NOTE(mhayden): MariaDB/percona repositories are prioritized at 99 by default +# and that allows yum to install galera from the RDO repos, which is not good. +# This task ensures that the following task will choose MariaDB/percona repos +# as the highest priority. +- name: Ensure MariaDB/percona repositories take highest priority + command: | + yum-config-manager + --enable {{ item }} + --setopt="{{ item }}.priority=25" + with_items: + - MariaDB + - percona-release-noarch + - percona-release-x86_64 + +- name: Install galera_server role remote packages + package: + name: "{{ galera_packages_list }}" + state: "{{ galera_server_package_state }}" + register: install_remote_packages + until: install_remote_packages is success + retries: 5 + delay: 2 diff --git a/tasks/galera_install_download_extra_packages.yml b/tasks/galera_install_download_extra_packages.yml index caa2c2ff..fcd1e6a1 100644 --- a/tasks/galera_install_download_extra_packages.yml +++ b/tasks/galera_install_download_extra_packages.yml @@ -29,7 +29,7 @@ validate_certs: "{{ galera_server_extra_package_validate_certs }}" with_dict: "{{ galera_server_percona_distro_packages_alt_arch }}" register: fetch_url - until: fetch_url | success + until: fetch_url is success retries: 3 delay: 10 delegate_to: "{{ (galera_server_extra_package_downloader == 'deployment-host') | ternary('localhost', inventory_hostname) }}" @@ -42,6 +42,6 @@ when: - galera_server_extra_package_downloader == "deployment-host" register: file_copy - until: file_copy | success + until: file_copy is success retries: 5 delay: 10 diff --git a/tasks/galera_install_yum.yml b/tasks/galera_install_yum.yml index 2382a092..da7eb410 100644 --- a/tasks/galera_install_yum.yml +++ b/tasks/galera_install_yum.yml @@ -42,7 +42,7 @@ loop_control: loop_var: key register: _add_yum_keys - until: _add_yum_keys | success + until: _add_yum_keys is success retries: 5 delay: 2 @@ -55,7 +55,7 @@ gpgcheck: yes enabled: yes register: add_repos - until: add_repos | success + until: add_repos is success retries: 5 delay: 2 @@ -68,7 +68,7 @@ command: "{{ ansible_pkg_mgr }} clean metadata" args: warn: no - when: add_repos | changed + when: add_repos is changed tags: - skip_ansible_lint @@ -81,7 +81,7 @@ gpgcheck: true state: "{{ galera_percona_xtrabackup_repo.state }}" register: install_packages - until: install_packages|success + until: install_packages is success retries: 5 delay: 2 diff --git a/tasks/galera_install_zypper.yml b/tasks/galera_install_zypper.yml index fdbaaa64..4c6ecfef 100644 --- a/tasks/galera_install_zypper.yml +++ b/tasks/galera_install_zypper.yml @@ -41,7 +41,7 @@ loop_control: loop_var: key register: _add_yum_keys - until: _add_yum_keys | success + until: _add_yum_keys is success retries: 5 delay: 2 @@ -59,7 +59,7 @@ auto_import_keys: no enabled: yes register: add_repos - until: add_repos | success + until: add_repos is success retries: 5 delay: 2 diff --git a/tasks/galera_setup.yml b/tasks/galera_setup.yml index 44020e54..963b8784 100644 --- a/tasks/galera_setup.yml +++ b/tasks/galera_setup.yml @@ -48,7 +48,7 @@ priv: "*.*:USAGE" state: present register: galera_users - until: galera_users | success + until: galera_users is success retries: 3 delay: 10 delegate_to: "{{ galera_server_bootstrap_node }}" @@ -60,7 +60,7 @@ register: galera_mysql_upgrade changed_when: - not galera_mysql_upgrade.stdout | search("already upgraded") - until: galera_mysql_upgrade | success + until: galera_mysql_upgrade is success retries: 3 delay: 10 delegate_to: "{{ galera_server_bootstrap_node }}" diff --git a/tasks/galera_ssl_self_signed.yml b/tasks/galera_ssl_self_signed.yml index d3586e6c..9ccc6d05 100644 --- a/tasks/galera_ssl_self_signed.yml +++ b/tasks/galera_ssl_self_signed.yml @@ -70,7 +70,7 @@ -in {{ galera_ssl_key }} -out {{ galera_ssl_key }} when: - - create_galera_ssl_request | changed + - create_galera_ssl_request is changed - inventory_hostname == galera_server_bootstrap_node notify: Restart all mysql diff --git a/tasks/galera_upgrade_pre.yml b/tasks/galera_upgrade_pre.yml index 7d648a68..515c4d2c 100644 --- a/tasks/galera_upgrade_pre.yml +++ b/tasks/galera_upgrade_pre.yml @@ -18,7 +18,7 @@ name: mysql state: stopped register: galera_restart_fall_back - until: galera_restart_fall_back | success + until: galera_restart_fall_back is success retries: 3 delay: 5 @@ -52,7 +52,7 @@ update_cache: yes cache_valid_time: 0 register: apt_update - until: apt_update|success + until: apt_update is success retries: 5 delay: 2 when: