[WIP] Remove Stretch and Percona support
parent
ba8477d8ed
commit
c338867c47
|
@ -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'
|
||||||
|
|
|
@ -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
|
||||||
------------
|
------------
|
||||||
|
|
|
@ -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
|
||||||
# ========================
|
# ========================
|
||||||
|
|
|
@ -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 }}"
|
|
||||||
|
|
|
@ -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: []
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
# {{ ansible_managed }}
|
|
||||||
|
|
||||||
Explanation: Prevent Debian upgrades on percona packages
|
|
||||||
Package: *
|
|
||||||
Pin: release o=Percona Development Team
|
|
||||||
Pin-Priority: 1001
|
|
|
@ -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
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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'
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
mariadb_tools:
|
|
||||||
- percona-toolkit
|
|
||||||
- python-mysqldb
|
|
||||||
- mysqltuner
|
|
||||||
|
|
||||||
mariadb_default_xtrabackup_package: 'percona-xtrabackup-24'
|
|
Loading…
Reference in New Issue