[WIP] Remove Stretch and Percona support

pull/38/head
Emilien Mantel 2019-12-16 16:32:08 +01:00
parent ba8477d8ed
commit c338867c47
14 changed files with 24 additions and 108 deletions

View File

@ -1,16 +1,8 @@
env: 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-default-master' ANSIBLE_VERSION='ansible>=2.6,<2.7'
- PLATFORM='docker-buster-upstream-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-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-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-default-master' ANSIBLE_VERSION='ansible>=2.7,<2.8'
- PLATFORM='docker-buster-upstream-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' - PLATFORM='docker-buster-default-galera-1' ANSIBLE_VERSION='ansible>=2.7,<2.8'

View File

@ -7,8 +7,6 @@ Install and configure MariaDB (Galera Cluster). Manage replication (master/slave
| OS | Origin | MariaDB versions | | 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 | Debian | 10.3 |
| Debian Buster | Upstream | 10.3 / 10.4 | | Debian Buster | Upstream | 10.3 / 10.4 |
@ -18,7 +16,6 @@ Notes
* Galera Cluster is experimental * Galera Cluster is experimental
* Due to Vagrant + Docker limitation (private network), replication/galera can't be checked with Travis * 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` * 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 Requirements
------------ ------------
@ -64,8 +61,6 @@ Check "priv" syntax in [mysql\_user module documentation](http://docs.ansible.co
- `mariadb_version`: depends Debian version - `mariadb_version`: depends Debian version
- `mariadb_repository`: MariaDB upstream APT repository (see: [MariaDB repositories tool](https://downloads.mariadb.org/mariadb/repositories)) - `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 Dependencies
------------ ------------

24
Vagrantfile vendored
View File

@ -5,8 +5,6 @@
Vagrant.configure("2") do |config| Vagrant.configure("2") do |config|
vbox_deb_stretch = 'debian/stretch64'
dk_deb_stretch = 'hanxhx/vagrant-ansible:debian9'
vbox_deb_buster = 'debian/buster64' vbox_deb_buster = 'debian/buster64'
dk_deb_buster = 'hanxhx/vagrant-ansible:debian10' dk_deb_buster = 'hanxhx/vagrant-ansible:debian10'
@ -17,28 +15,6 @@ Vagrant.configure("2") do |config|
config.hostmanager.include_offline = false config.hostmanager.include_offline = false
cases = [ 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 # Debian Buster
# ======================== # ========================

View File

@ -5,7 +5,7 @@
# ------------------------------------- # -------------------------------------
mariadb_origin: 'default' mariadb_origin: 'default'
mariadb_use_galera: false mariadb_use_galera: false
mariadb_root_password: 'change_me_NOW' mariadb_root_password: null
mariadb_notify_restart: true mariadb_notify_restart: true
mariadb_upstream_apt_src: false mariadb_upstream_apt_src: false
mariadb_manage_logrotate: true mariadb_manage_logrotate: true
@ -139,11 +139,3 @@ mariadb_wsrep_node_address: false # Set primary node IP
mariadb_galera_members: [] mariadb_galera_members: []
mariadb_galera_primary_node: 'change_me' # See: https://github.com/ansible/ansible/issues/17453 mariadb_galera_primary_node: 'change_me' # See: https://github.com/ansible/ansible/issues/17453
mariadb_wsrep_stt_method: 'rsync' 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 }}"

View File

@ -8,7 +8,6 @@ galaxy_info:
platforms: platforms:
- name: Debian - name: Debian
versions: versions:
- stretch
- buster - buster
galaxy_tags: galaxy_tags:
- database - database
@ -19,6 +18,5 @@ galaxy_info:
- debian - debian
- galera - galera
- cluster - cluster
- stretch
dependencies: [] dependencies: []

View File

@ -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 - name: INCLUDE | Setup MariaDB repository
import_tasks: 'mariadb/upstream.yml' import_tasks: 'mariadb/upstream.yml'
when: mariadb_origin == 'upstream' when: mariadb_origin == 'upstream'
@ -15,8 +11,3 @@
apt: apt:
pkg: "{{ mariadb_tools }}" pkg: "{{ mariadb_tools }}"
install_recommends: no install_recommends: no
- name: APT | Install percona-xtrabackup if needed
apt:
pkg: "{{ mariadb_xtrabackup_package }}"
when: mariadb_install_xtrabackup_package | bool

View File

@ -5,21 +5,24 @@
register: apt_mariadb_version register: apt_mariadb_version
changed_when: false changed_when: false
- name: DEBCONF | Prepare MariaDB silent installation (root password) - block:
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) - name: DEBCONF | Prepare MariaDB silent installation (root password)
debconf: debconf:
name: 'mariadb-server-{{ apt_mariadb_version.stdout }}' name: 'mariadb-server-{{ apt_mariadb_version.stdout }}'
question: 'mysql-server/root_password_again' question: 'mysql-server/root_password'
vtype: 'password' vtype: 'password'
value: '{{ mariadb_root_password }}' value: '{{ mariadb_root_password }}'
when: not mariadb_exists.stat.exists 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 - name: APT | Install MariaDB server
apt: apt:

View File

@ -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

View File

@ -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 - name: WAIT_FOR | source data (prevent rsync bug) - TODO find another hack
wait_for: wait_for:
host: "{{ mariadb_slave_import_from }}" host: "{{ mariadb_slave_import_from }}"
port: 22 port: 22
- name: COMMAND | Prepare backup another server - name: COMMAND | Prepare backup another server
command: innobackupex --no-timestamp {{ mariadb_backup_dir }} command: mariabackup --backup {{ mariadb_backup_dir }}
args: args:
creates: "{{ mariadb_backup_dir }}" creates: "{{ mariadb_backup_dir }}"
delegate_to: "{{ mariadb_slave_import_from }}" delegate_to: "{{ mariadb_slave_import_from }}"
register: backup register: backup
- name: SHELL | Dump - name: SHELL | Dump
shell: "innobackupex --apply-log {{ mariadb_backup_dir }}" shell: "mariabackup --prepare {{ mariadb_backup_dir }}"
delegate_to: "{{ mariadb_slave_import_from }}" delegate_to: "{{ mariadb_slave_import_from }}"
when: backup.changed when: backup.changed

View File

@ -1,6 +0,0 @@
# {{ ansible_managed }}
Explanation: Prevent Debian upgrades on percona packages
Package: *
Pin: release o=Percona Development Team
Pin-Priority: 1001

View File

@ -18,6 +18,6 @@ Wait master fully installed before run slave.
Example: Example:
``` ```
vagrant up stretch-upstream-mariadb-master vagrant up buster-upstream-mariadb-master
vagrant up stretch-upstream-mariadb-slave vagrant up buster-upstream-mariadb-slave
``` ```

View File

@ -1,6 +1,5 @@
mariadb_bind_address: '0.0.0.0' mariadb_bind_address: '0.0.0.0'
mariadb_extra_configuration: mariadb_extra_configuration:
innodb_commit_concurrency: 0 innodb_commit_concurrency: 0
mariadb_use_percona_apt: true
mariadb_install_xtrabackup_package: true mariadb_install_xtrabackup_package: true
mariadb_slow_query_log_enabled: true mariadb_slow_query_log_enabled: true

View File

@ -1,6 +1,5 @@
mariadb_tools: mariadb_tools:
- mariadb-backup
- mysqltuner
- percona-toolkit - percona-toolkit
- python-mysqldb - python-mysqldb
- mysqltuner
mariadb_default_xtrabackup_package: 'percona-xtrabackup-24'

View File

@ -1,6 +0,0 @@
mariadb_tools:
- percona-toolkit
- python-mysqldb
- mysqltuner
mariadb_default_xtrabackup_package: 'percona-xtrabackup-24'