Prevent latest mariadb version
Latest mariadb version has a bug that prevents clustering from behaving properly in bootstrap. For openSUSE, we need to switch from OBS to MariaDB upstream repo. It therefore needs a backport from a previous patch: "Switch to upstream MariaDB repository". We also need to configure PrivateDevices before starting the service which is based on the588b9cead7
backport andbaa97f1df2
master commit. This also removes the SUSE specific cases from the tasks and handlers since they are no longer necessary when using the upstream packages. (manually cherry picked from commita37bfcca09
) (manually cherry picked from commitc54e9a68bc
) Change-Id: I21e96dbe7fd9acaedb7eee7cba2ae226fa0644d5
This commit is contained in:
parent
ab7e13824f
commit
04f8347852
|
@ -45,6 +45,7 @@ galera_mariadb_server_package: "{{ _galera_mariadb_server_package }}"
|
|||
|
||||
# The major version used to select the repo URL path
|
||||
galera_major_version: 10.1
|
||||
galera_minor_version: 30
|
||||
|
||||
# Set the URL for the MariaDB repository
|
||||
galera_repo_url: "{{ _galera_repo_url }}"
|
||||
|
@ -173,6 +174,11 @@ galera_server_distro_package_pins:
|
|||
- package: mariadb-server
|
||||
version: 10.1.27+maria-1~xenial
|
||||
priority: -1
|
||||
# TODO(evrardjp): Remove pin when clustering issue is figured out
|
||||
# Clustering issue
|
||||
- package: mariadb-server
|
||||
version: 10.1.31+maria-1~xenial
|
||||
priority: -1
|
||||
|
||||
# Galera Server SSL functionality.
|
||||
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
MYSQLD_STARTUP_TIMEOUT: 180
|
||||
when:
|
||||
- not galera_running_and_bootstrapped | bool
|
||||
- ansible_pkg_mgr != "zypper"
|
||||
- not galera_external_restart_handlers | bool
|
||||
register: galera_restart
|
||||
until: galera_restart | success
|
||||
|
@ -60,50 +59,6 @@
|
|||
retries: 3
|
||||
delay: 5
|
||||
|
||||
- name: "Set wsrep-new-cluster"
|
||||
lineinfile:
|
||||
line: 'wsrep-new-cluster'
|
||||
insertafter: 'wsrep_cluster_name'
|
||||
state: present
|
||||
dest: "{{ galera_etc_include_dir }}/cluster.cnf"
|
||||
listen: "Restart all mysql"
|
||||
when:
|
||||
- not galera_running_and_bootstrapped | bool
|
||||
- not galera_existing_cluster | bool and inventory_hostname == galera_server_bootstrap_node
|
||||
- ansible_pkg_mgr == "zypper"
|
||||
- not galera_external_restart_handlers | bool
|
||||
|
||||
- name: "Ensure node is not in bootstrap mode"
|
||||
lineinfile:
|
||||
line: 'wsrep-new-cluster'
|
||||
state: absent
|
||||
dest: "{{ galera_etc_include_dir }}/cluster.cnf"
|
||||
listen: "Restart all mysql"
|
||||
when:
|
||||
- not galera_running_and_bootstrapped | bool
|
||||
- (not galera_existing_cluster | bool) or (not inventory_hostname == galera_server_bootstrap_node)
|
||||
- ansible_pkg_mgr == "zypper"
|
||||
- not galera_external_restart_handlers | bool
|
||||
|
||||
- name: Restart mysql on SUSE
|
||||
service:
|
||||
name: mysql
|
||||
state: restarted
|
||||
when:
|
||||
- not galera_running_and_bootstrapped | bool
|
||||
- ansible_pkg_mgr == "zypper"
|
||||
- not galera_external_restart_handlers | bool
|
||||
register: galera_restart
|
||||
until: galera_restart | success
|
||||
retries: 3
|
||||
delay: 5
|
||||
# notifies are only fired when status is "changed"
|
||||
changed_when: galera_restart | failed
|
||||
failed_when: false
|
||||
notify:
|
||||
- "Remove stale .sst"
|
||||
listen: "Restart all mysql"
|
||||
|
||||
- name: Restart xinetd
|
||||
service:
|
||||
name: xinetd
|
||||
|
|
|
@ -40,8 +40,6 @@
|
|||
- ansible_service_mgr == 'systemd'
|
||||
- mysql_running.rc != 0
|
||||
- mysql_started | failed
|
||||
# galera_new_cluster is not applicable for SUSE
|
||||
- ansible_pkg_mgr != 'zypper'
|
||||
register: start_cluster
|
||||
failed_when: false
|
||||
tags:
|
||||
|
@ -55,7 +53,6 @@
|
|||
- mysql_started | failed
|
||||
- start_cluster | failed
|
||||
- mysql_running.rc != 0
|
||||
- ansible_pkg_mgr != 'zypper'
|
||||
tags:
|
||||
- galera-bootstrap
|
||||
|
||||
|
@ -74,8 +71,6 @@
|
|||
when:
|
||||
- mysql_running.rc != 0
|
||||
- mysql_started | failed
|
||||
# galera_new_cluster is not applicable for SUSE
|
||||
- ansible_pkg_mgr == 'zypper'
|
||||
|
||||
- name: Wait for operational state
|
||||
command: mysql --silent --skip-column-names -e 'SHOW STATUS LIKE "wsrep_evs_state"'
|
||||
|
|
|
@ -13,16 +13,54 @@
|
|||
# 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: "/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: Add galera gpg-keys
|
||||
block:
|
||||
- name: Add keys (primary keyserver)
|
||||
rpm_key:
|
||||
state: present
|
||||
key: "{{ item.keyserver }}/{{ item.key_name }}"
|
||||
register: add_keys
|
||||
until: add_keys|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
with_items: "{{ galera_gpg_keys }}"
|
||||
|
||||
rescue:
|
||||
- name: Add keys (fallback keyserver)
|
||||
rpm_key:
|
||||
state: present
|
||||
key: "{{ item.fallback_keyserver }}/{{ item.key_name }}"
|
||||
register: add_keys
|
||||
until: add_keys|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
with_items: "{{ galera_gpg_keys }}"
|
||||
when: item.fallback_keyserver is defined
|
||||
|
||||
- name: Add galera repo
|
||||
zypper_repository:
|
||||
refresh: yes
|
||||
name: "{{ item.name }}"
|
||||
repo: "{{ item.uri }}"
|
||||
auto_import_keys: yes
|
||||
register: zypper_repository_added
|
||||
with_items: "{{ galera_repo }}"
|
||||
tags:
|
||||
- galera-repos
|
||||
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 | success
|
||||
retries: 5
|
||||
delay: 2
|
||||
|
||||
- name: Install galera_server role remote packages (zypper)
|
||||
zypper:
|
||||
|
@ -37,4 +75,34 @@
|
|||
- galera_server-config
|
||||
- galera-enable
|
||||
|
||||
- name: Create mariadb systemd service config dir
|
||||
file:
|
||||
path: "/etc/systemd/system/{{ galera_mariadb_service_name }}.service.d/"
|
||||
state: "directory"
|
||||
group: "root"
|
||||
owner: "root"
|
||||
mode: "0755"
|
||||
|
||||
# See comments above 'galera_disable_privatedevices' in defaults/main.yml for
|
||||
# links to relevant bugs and discussion.
|
||||
- name: Remove PrivateDevices systemd options when in container
|
||||
template:
|
||||
src: without-privatedevices.conf.j2
|
||||
dest: "/etc/systemd/system/{{ galera_mariadb_service_name }}.service.d/without-privatedevices.conf"
|
||||
register: mariadb_private_devices
|
||||
when:
|
||||
- ansible_pkg_mgr == 'zypper'
|
||||
notify:
|
||||
- Reload the systemd daemon
|
||||
- Restart mysql
|
||||
tags:
|
||||
- galera-config
|
||||
|
||||
# TODO: remove name argument when we upgrade to ansible 2.4
|
||||
- name: Reload the systemd daemon
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
name: "{{ galera_mariadb_service_name }}"
|
||||
when: mariadb_private_devices|changed
|
||||
|
||||
- include: galera_secure_mysql.yml mysql_securely_configured='/etc/my.cnf.d/suse_configured'
|
||||
|
|
|
@ -82,7 +82,6 @@
|
|||
insertafter: '^export HOME=/etc/mysql/'
|
||||
line: '[ -r /etc/default/mariadb ] && . /etc/default/mariadb'
|
||||
backup: yes
|
||||
when: ansible_pkg_mgr != 'zypper'
|
||||
tags:
|
||||
- galera-config
|
||||
|
||||
|
@ -91,7 +90,6 @@
|
|||
src: "mysql_defaults.j2"
|
||||
dest: "/etc/default/mariadb"
|
||||
mode: "0644"
|
||||
when: ansible_pkg_mgr != 'zypper'
|
||||
notify:
|
||||
- Restart all mysql
|
||||
- Reload the systemd daemon
|
||||
|
|
|
@ -35,8 +35,6 @@
|
|||
- name: Stop mysql
|
||||
command: /etc/init.d/mysql stop
|
||||
changed_when: false
|
||||
# SUSE always uses the systemd service
|
||||
when: ansible_pkg_mgr != "zypper"
|
||||
tags:
|
||||
- galera-upgrade
|
||||
|
||||
|
|
|
@ -51,7 +51,8 @@ galera_server_upgrade_packages_remove:
|
|||
|
||||
galera_mariadb_service_name: "mariadb"
|
||||
|
||||
_galera_repo_url: "http://yum.mariadb.org/{{ galera_major_version }}/centos/7/x86_64"
|
||||
# TODO(evrardjp): Unfreeze version to 10.1 branch when clustering issue is solved.
|
||||
_galera_repo_url: "https://downloads.mariadb.com/MariaDB/mariadb-{{ galera_major_version }}.{{ galera_minor_version }}/yum/centos7-amd64"
|
||||
_galera_repo:
|
||||
name: MariaDB
|
||||
description: "MariaDB Repo"
|
||||
|
|
|
@ -13,42 +13,66 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
_galera_repo:
|
||||
- name: "OBS:server_database"
|
||||
uri: "http://download.opensuse.org/repositories/server:/database/openSUSE_Leap_{{ ansible_distribution_version }}"
|
||||
# Galera GPG Keys
|
||||
_galera_gpg_keys:
|
||||
- key_name: 'RPM-GPG-KEY-MariaDB'
|
||||
keyserver: 'https://yum.mariadb.org'
|
||||
fallback_keyserver: 'https://yum.mariadb.org'
|
||||
|
||||
# Default private device setting
|
||||
_galera_disable_privatedevices: yes
|
||||
|
||||
galera_server_required_distro_packages:
|
||||
- galera-3
|
||||
- galera
|
||||
- gpg2
|
||||
- libaio-devel
|
||||
- libstdc++-devel
|
||||
- libgcrypt-devel
|
||||
- libmysqlclient-devel
|
||||
- mariadb-client
|
||||
- qpress
|
||||
- MariaDB-client
|
||||
- MariaDB-devel
|
||||
- xinetd
|
||||
|
||||
galera_etc_conf_file: "/etc/my.cnf"
|
||||
galera_etc_include_dir: "/etc/my.cnf.d"
|
||||
galera_var_run_socket: "/var/run/mysql/mysql.sock"
|
||||
galera_etc_conf_file: "/etc/mysql/my.cnf"
|
||||
galera_etc_include_dir: "/etc/mysql/conf.d"
|
||||
galera_var_run_socket: "/var/lib/mysql/mysql.sock"
|
||||
|
||||
_galera_mariadb_server_package: "mariadb"
|
||||
|
||||
galera_server_upgrade_packages_remove:
|
||||
- "{{ galera_mariadb_server_package }}"
|
||||
- galera-3
|
||||
|
||||
galera_mariadb_service_name: "mysql"
|
||||
_galera_mariadb_server_package: "MariaDB-server"
|
||||
|
||||
galera_server_mariadb_distro_packages:
|
||||
- which
|
||||
- "{{ galera_mariadb_server_package }}"
|
||||
- mariadb-galera
|
||||
- percona-toolkit
|
||||
- MariaDB-shared
|
||||
- rsync
|
||||
- socat
|
||||
|
||||
galera_wsrep_provider: "/usr/lib64/galera-3/libgalera_smm.so"
|
||||
# Conflicting packages with those from the MariaDB repository
|
||||
galera_server_mariadb_distro_packages_remove:
|
||||
- libmariadb-devel
|
||||
- mariadb
|
||||
- mariadb-client
|
||||
- mariadb-tools
|
||||
|
||||
# The packages to uninstall during an upgrade from a previous version
|
||||
galera_server_upgrade_packages_remove:
|
||||
- MariaDB-Galera-server
|
||||
- MariaDB-server
|
||||
|
||||
galera_mariadb_service_name: "mariadb"
|
||||
|
||||
# TODO(evrardjp): Unfreeze version to 10.1 branch when clustering issue is solved.
|
||||
_galera_repo_url: "https://downloads.mariadb.com/MariaDB/mariadb-{{ galera_major_version }}.{{ galera_minor_version }}/yum/opensuse42-amd64"
|
||||
_galera_repo:
|
||||
name: MariaDB
|
||||
description: "MariaDB Repo"
|
||||
baseurl: "{{ galera_repo_url }}"
|
||||
gpgkey: "https://yum.mariadb.org/RPM-GPG-KEY-MariaDB"
|
||||
|
||||
galera_server_percona_distro_packages:
|
||||
- qpress
|
||||
- percona-toolkit
|
||||
- percona-xtrabackup
|
||||
|
||||
galera_wsrep_provider: "/usr/lib64/galera/libgalera_smm.so"
|
||||
|
||||
_use_percona_upstream: yes
|
||||
# NOTE(hwoarang): The default one provided in vars/main.yml depends on
|
||||
|
|
|
@ -107,7 +107,8 @@ _galera_percona_xtrabackup_repo:
|
|||
state: "present"
|
||||
filename: "Percona"
|
||||
|
||||
_galera_repo_url: "http://mirror.rackspace.com/mariadb/repo/{{ galera_major_version }}/ubuntu"
|
||||
# TODO(evrardjp): Unfreeze version to 10.1 branch when clustering issue is solved.
|
||||
_galera_repo_url: "https://downloads.mariadb.com/MariaDB/mariadb-{{ galera_major_version }}.{{ galera_minor_version }}/repo/ubuntu"
|
||||
_galera_repo:
|
||||
repo: "deb {{ galera_repo_url }} {{ ansible_distribution_release }} main"
|
||||
state: "present"
|
||||
|
|
|
@ -19,11 +19,17 @@
|
|||
- openstack-ansible-functional-centos-7
|
||||
- openstack-ansible-functional-opensuse-423
|
||||
- openstack-ansible-functional-ubuntu-xenial
|
||||
- openstack-ansible-upgrade-ubuntu-xenial
|
||||
# TODO(evrardjp): Reinstate this when all the 10.1.31
|
||||
# issues patches have been merged in galera_server
|
||||
# and galera_client
|
||||
# - openstack-ansible-upgrade-ubuntu-xenial
|
||||
gate:
|
||||
jobs:
|
||||
- openstack-ansible-linters
|
||||
- openstack-ansible-functional-centos-7
|
||||
- openstack-ansible-functional-opensuse-423
|
||||
- openstack-ansible-functional-ubuntu-xenial
|
||||
- openstack-ansible-upgrade-ubuntu-xenial
|
||||
# TODO(evrardjp): Reinstate this when all the 10.1.31
|
||||
# issues patches have been merged in galera_server
|
||||
# and galera_client
|
||||
# - openstack-ansible-upgrade-ubuntu-xenial
|
||||
|
|
Loading…
Reference in New Issue