From c338867c4793d1a8a8a94dd3af4fc133d2434ae1 Mon Sep 17 00:00:00 2001 From: Emilien Mantel Date: Mon, 16 Dec 2019 16:32:08 +0100 Subject: [PATCH] [WIP] Remove Stretch and Percona support --- .travis.yml | 8 ----- README.md | 5 --- Vagrantfile | 24 -------------- defaults/main.yml | 10 +----- meta/main.yml | 2 -- tasks/install/main.yml | 9 ------ tasks/install/mariadb/default.yml | 31 ++++++++++--------- tasks/install/percona/apt.yml | 16 ---------- tasks/replication/slave/import_data.yml | 5 ++- templates/etc/apt/preferences.d/95-percona.j2 | 6 ---- tests/README.md | 4 +-- tests/group_vars/all | 1 - vars/Debian-buster.yml | 5 ++- vars/Debian-stretch.yml | 6 ---- 14 files changed, 24 insertions(+), 108 deletions(-) delete mode 100644 tasks/install/percona/apt.yml delete mode 100644 templates/etc/apt/preferences.d/95-percona.j2 delete mode 100644 vars/Debian-stretch.yml diff --git a/.travis.yml b/.travis.yml index abe4801..b9f68a4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,8 @@ env: - - PLATFORM='docker-stretch-default-master' ANSIBLE_VERSION='ansible>=2.6,<2.7' - - PLATFORM='docker-stretch-upstream-master' ANSIBLE_VERSION='ansible>=2.6,<2.7' - - PLATFORM='docker-stretch-default-galera-1' ANSIBLE_VERSION='ansible>=2.6,<2.7' - - PLATFORM='docker-stretch-upstream-galera-1' ANSIBLE_VERSION='ansible>=2.6,<2.7' - PLATFORM='docker-buster-default-master' ANSIBLE_VERSION='ansible>=2.6,<2.7' - PLATFORM='docker-buster-upstream-master' ANSIBLE_VERSION='ansible>=2.6,<2.7' - PLATFORM='docker-buster-default-galera-1' ANSIBLE_VERSION='ansible>=2.6,<2.7' - PLATFORM='docker-buster-upstream-galera-1' ANSIBLE_VERSION='ansible>=2.6,<2.7' - - PLATFORM='docker-stretch-default-master' ANSIBLE_VERSION='ansible>=2.7,<2.8' - - PLATFORM='docker-stretch-upstream-master' ANSIBLE_VERSION='ansible>=2.7,<2.8' - - PLATFORM='docker-stretch-default-galera-1' ANSIBLE_VERSION='ansible>=2.7,<2.8' - - PLATFORM='docker-stretch-upstream-galera-1' ANSIBLE_VERSION='ansible>=2.7,<2.8' - PLATFORM='docker-buster-default-master' ANSIBLE_VERSION='ansible>=2.7,<2.8' - PLATFORM='docker-buster-upstream-master' ANSIBLE_VERSION='ansible>=2.7,<2.8' - PLATFORM='docker-buster-default-galera-1' ANSIBLE_VERSION='ansible>=2.7,<2.8' diff --git a/README.md b/README.md index 4bb4f97..600fad3 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,6 @@ Install and configure MariaDB (Galera Cluster). Manage replication (master/slave | OS | Origin | MariaDB versions | | --------------- | --------- | ------------------------- | -| Debian Stretch | Debian | 10.1 | -| Debian Stretch | Upstream | 10.1 / 10.2 / 10.3 / 10.4 | | Debian Buster | Debian | 10.3 | | Debian Buster | Upstream | 10.3 / 10.4 | @@ -18,7 +16,6 @@ Notes * Galera Cluster is experimental * Due to Vagrant + Docker limitation (private network), replication/galera can't be checked with Travis * If you need to test this role with Vagrant, you must install hostmanager plugin: `vagrant plugin install vagrant-hostmanager` -* Percona Xtrabackup is not available in upstream repository. This feature is disabled in the role. Requirements ------------ @@ -64,8 +61,6 @@ Check "priv" syntax in [mysql\_user module documentation](http://docs.ansible.co - `mariadb_version`: depends Debian version - `mariadb_repository`: MariaDB upstream APT repository (see: [MariaDB repositories tool](https://downloads.mariadb.org/mariadb/repositories)) -- `mariadb_percona_repository`: Percona upstream APT repository (see: [Percona APT doc](http://www.percona.com/doc/percona-server/5.5/installation/apt_repo.html)) -- `mariadb_use_percona_apt`: Force using Percona APT repository (useful when you want to use latest version of percona toolkits, xtrabackup... etc) Dependencies ------------ diff --git a/Vagrantfile b/Vagrantfile index 55c820e..8e54dda 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -5,8 +5,6 @@ Vagrant.configure("2") do |config| - vbox_deb_stretch = 'debian/stretch64' - dk_deb_stretch = 'hanxhx/vagrant-ansible:debian9' vbox_deb_buster = 'debian/buster64' dk_deb_buster = 'hanxhx/vagrant-ansible:debian10' @@ -17,28 +15,6 @@ Vagrant.configure("2") do |config| config.hostmanager.include_offline = false cases = [ - # ======================== - # Debian Stretch - # ======================== - - # Default replication - { os_name: 'stretch', vbox: vbox_deb_stretch, docker: dk_deb_stretch, vars: {mariadb_origin: 'default' }, groups: ['master'] }, - { os_name: 'stretch', vbox: vbox_deb_stretch, docker: nil, vars: {mariadb_origin: 'default' }, groups: ['slave'] }, - - # Upstream replication - { os_name: 'stretch', vbox: vbox_deb_stretch, docker: dk_deb_stretch, vars: {mariadb_origin: 'upstream' }, groups: ['master'] }, - { os_name: 'stretch', vbox: vbox_deb_stretch, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['slave'] }, - - # Galera Debian - { os_name: 'stretch', vbox: vbox_deb_stretch, docker: dk_deb_stretch, vars: {mariadb_origin: 'default' }, groups: ['galera', '1'] }, - { os_name: 'stretch', vbox: vbox_deb_stretch, docker: nil, vars: {mariadb_origin: 'default' }, groups: ['galera', '2'] }, - { os_name: 'stretch', vbox: vbox_deb_stretch, docker: nil, vars: {mariadb_origin: 'default' }, groups: ['galera', '3'] }, - - # Galera Upstream - { os_name: 'stretch', vbox: vbox_deb_stretch, docker: dk_deb_stretch, vars: {mariadb_origin: 'upstream' }, groups: ['galera', '1'] }, - { os_name: 'stretch', vbox: vbox_deb_stretch, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['galera', '2'] }, - { os_name: 'stretch', vbox: vbox_deb_stretch, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['galera', '3'] }, - # ======================== # Debian Buster # ======================== diff --git a/defaults/main.yml b/defaults/main.yml index 1dc087d..de21149 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -5,7 +5,7 @@ # ------------------------------------- mariadb_origin: 'default' mariadb_use_galera: false -mariadb_root_password: 'change_me_NOW' +mariadb_root_password: null mariadb_notify_restart: true mariadb_upstream_apt_src: false mariadb_manage_logrotate: true @@ -139,11 +139,3 @@ mariadb_wsrep_node_address: false # Set primary node IP mariadb_galera_members: [] mariadb_galera_primary_node: 'change_me' # See: https://github.com/ansible/ansible/issues/17453 mariadb_wsrep_stt_method: 'rsync' - -# ------------------------------------- -# Percona -# ------------------------------------- -mariadb_percona_repository: 'http://repo.percona.com/apt' -mariadb_use_percona_apt: false -mariadb_install_xtrabackup_package: false -mariadb_xtrabackup_package: "{{ mariadb_default_xtrabackup_package }}" diff --git a/meta/main.yml b/meta/main.yml index 8c642db..9f248bc 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -8,7 +8,6 @@ galaxy_info: platforms: - name: Debian versions: - - stretch - buster galaxy_tags: - database @@ -19,6 +18,5 @@ galaxy_info: - debian - galera - cluster - - stretch dependencies: [] diff --git a/tasks/install/main.yml b/tasks/install/main.yml index 6f79cdf..e34ab01 100644 --- a/tasks/install/main.yml +++ b/tasks/install/main.yml @@ -1,9 +1,5 @@ --- -- name: INCLUDE | Setup Percona repository - import_tasks: 'percona/apt.yml' - when: mariadb_use_percona_apt | bool - - name: INCLUDE | Setup MariaDB repository import_tasks: 'mariadb/upstream.yml' when: mariadb_origin == 'upstream' @@ -15,8 +11,3 @@ apt: pkg: "{{ mariadb_tools }}" install_recommends: no - -- name: APT | Install percona-xtrabackup if needed - apt: - pkg: "{{ mariadb_xtrabackup_package }}" - when: mariadb_install_xtrabackup_package | bool diff --git a/tasks/install/mariadb/default.yml b/tasks/install/mariadb/default.yml index 749cb49..485f8e4 100644 --- a/tasks/install/mariadb/default.yml +++ b/tasks/install/mariadb/default.yml @@ -5,21 +5,24 @@ register: apt_mariadb_version changed_when: false -- name: DEBCONF | Prepare MariaDB silent installation (root password) - debconf: - name: 'mariadb-server-{{ apt_mariadb_version.stdout }}' - question: 'mysql-server/root_password' - vtype: 'password' - value: '{{ mariadb_root_password }}' - when: not mariadb_exists.stat.exists +- block: -- name: DEBCONF | Prepare MariaDB silent installation (root password again) - debconf: - name: 'mariadb-server-{{ apt_mariadb_version.stdout }}' - question: 'mysql-server/root_password_again' - vtype: 'password' - value: '{{ mariadb_root_password }}' - when: not mariadb_exists.stat.exists + - name: DEBCONF | Prepare MariaDB silent installation (root password) + debconf: + name: 'mariadb-server-{{ apt_mariadb_version.stdout }}' + question: 'mysql-server/root_password' + vtype: 'password' + value: '{{ mariadb_root_password }}' + when: not mariadb_exists.stat.exists + + - name: DEBCONF | Prepare MariaDB silent installation (root password again) + debconf: + name: 'mariadb-server-{{ apt_mariadb_version.stdout }}' + question: 'mysql-server/root_password_again' + vtype: 'password' + value: '{{ mariadb_root_password }}' + + when: not mariadb_exists.stat.exists and mariadb_root_password is string - name: APT | Install MariaDB server apt: diff --git a/tasks/install/percona/apt.yml b/tasks/install/percona/apt.yml deleted file mode 100644 index 28a7668..0000000 --- a/tasks/install/percona/apt.yml +++ /dev/null @@ -1,16 +0,0 @@ ---- - -- name: APT | Install Percona repository - apt: - deb: https://repo.percona.com/apt/percona-release_latest.generic_all.deb - -- name: COMMAND | Enable percona tools repository - command: percona-release enable tools release - args: - creates: /etc/apt/sources.list.d/percona-tools-release.list - register: p - -- name: APT | Update cache - apt: - update_cache: yes - when: p.changed diff --git a/tasks/replication/slave/import_data.yml b/tasks/replication/slave/import_data.yml index 4f1204b..0578124 100644 --- a/tasks/replication/slave/import_data.yml +++ b/tasks/replication/slave/import_data.yml @@ -1,20 +1,19 @@ --- -# Doc: https://www.percona.com/doc/percona-xtrabackup/2.1/howtos/recipes_ibkx_gtid.html - name: WAIT_FOR | source data (prevent rsync bug) - TODO find another hack wait_for: host: "{{ mariadb_slave_import_from }}" port: 22 - name: COMMAND | Prepare backup another server - command: innobackupex --no-timestamp {{ mariadb_backup_dir }} + command: mariabackup --backup {{ mariadb_backup_dir }} args: creates: "{{ mariadb_backup_dir }}" delegate_to: "{{ mariadb_slave_import_from }}" register: backup - name: SHELL | Dump - shell: "innobackupex --apply-log {{ mariadb_backup_dir }}" + shell: "mariabackup --prepare {{ mariadb_backup_dir }}" delegate_to: "{{ mariadb_slave_import_from }}" when: backup.changed diff --git a/templates/etc/apt/preferences.d/95-percona.j2 b/templates/etc/apt/preferences.d/95-percona.j2 deleted file mode 100644 index 9d9e3bc..0000000 --- a/templates/etc/apt/preferences.d/95-percona.j2 +++ /dev/null @@ -1,6 +0,0 @@ -# {{ ansible_managed }} - -Explanation: Prevent Debian upgrades on percona packages -Package: * -Pin: release o=Percona Development Team -Pin-Priority: 1001 diff --git a/tests/README.md b/tests/README.md index c7dd249..c3e8a26 100644 --- a/tests/README.md +++ b/tests/README.md @@ -18,6 +18,6 @@ Wait master fully installed before run slave. Example: ``` -vagrant up stretch-upstream-mariadb-master -vagrant up stretch-upstream-mariadb-slave +vagrant up buster-upstream-mariadb-master +vagrant up buster-upstream-mariadb-slave ``` diff --git a/tests/group_vars/all b/tests/group_vars/all index f8aa4d9..eb80c13 100644 --- a/tests/group_vars/all +++ b/tests/group_vars/all @@ -1,6 +1,5 @@ mariadb_bind_address: '0.0.0.0' mariadb_extra_configuration: innodb_commit_concurrency: 0 -mariadb_use_percona_apt: true mariadb_install_xtrabackup_package: true mariadb_slow_query_log_enabled: true diff --git a/vars/Debian-buster.yml b/vars/Debian-buster.yml index 7c7ac53..6e4ad94 100644 --- a/vars/Debian-buster.yml +++ b/vars/Debian-buster.yml @@ -1,6 +1,5 @@ mariadb_tools: + - mariadb-backup + - mysqltuner - percona-toolkit - python-mysqldb - - mysqltuner - -mariadb_default_xtrabackup_package: 'percona-xtrabackup-24' diff --git a/vars/Debian-stretch.yml b/vars/Debian-stretch.yml deleted file mode 100644 index 7c7ac53..0000000 --- a/vars/Debian-stretch.yml +++ /dev/null @@ -1,6 +0,0 @@ -mariadb_tools: - - percona-toolkit - - python-mysqldb - - mysqltuner - -mariadb_default_xtrabackup_package: 'percona-xtrabackup-24'