[WIP] Support Buster

pull/34/head
Emilien Mantel 2019-04-23 09:56:51 +02:00
parent 8b3250c07c
commit d1736a0f1b
7 changed files with 69 additions and 29 deletions

View File

@ -1,16 +1,20 @@
env:
- PLATFORM='docker-stretch-default-master' ANSIBLE_VERSION='ansible>=2.5,<2.6'
- PLATFORM='docker-stretch-upstream-master' ANSIBLE_VERSION='ansible>=2.5,<2.6'
- PLATFORM='docker-stretch-upstream-galera-1' ANSIBLE_VERSION='ansible>=2.5,<2.6'
- PLATFORM='docker-buster-default-master' ANSIBLE_VERSION='ansible>=2.5,<2.6'
- 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'
- PLATFORM='docker-buster-upstream-galera-1' ANSIBLE_VERSION='ansible>=2.7,<2.8'
sudo: required
@ -25,7 +29,7 @@ services:
before_install:
- wget https://releases.hashicorp.com/vagrant/2.0.1/vagrant_2.0.1_x86_64.deb
- sudo dpkg -i vagrant_2.0.1_x86_64.deb
- vagrant plugin install vagrant-hostmanager
- vagrant plugin install vagrant-hostmanager
install:
- pip install "$ANSIBLE_VERSION"

View File

@ -10,6 +10,7 @@ Install and configure MariaDB (Galera Cluster). Manage replication (master/slave
| 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 |
Notes
-----
@ -17,6 +18,7 @@ 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
------------

36
Vagrantfile vendored
View File

@ -17,19 +17,49 @@ 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'] },
{ 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'] },
# 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
# ========================
# Default replication
{ os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'default' }, groups: ['master'] },
# { os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'default' }, groups: ['slave'] },
# Upstream replication
{ os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'upstream' }, groups: ['master'] },
# { os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['slave'] },
# Galera Debian
{ os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'default' }, groups: ['galera', '1'] },
{ os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'default' }, groups: ['galera', '2'] },
{ os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'default' }, groups: ['galera', '3'] },
# Galera Upstream
{ os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'upstream' }, groups: ['galera', '1'] },
{ os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['galera', '2'] },
{ os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['galera', '3'] },
]
cases.each_with_index do |opts,index|

View File

@ -124,7 +124,7 @@ mariadb_users: []
# -------------------------------------
# MariaDB
# -------------------------------------
mariadb_version: '10.1'
mariadb_version: '10.3'
mariadb_mirror_domain: "ftp.igh.cnrs.fr"
# See: https://downloads.mariadb.org/mariadb/repositories
mariadb_repository: "http://{{ mariadb_mirror_domain }}/pub/mariadb/repo/{{ mariadb_version }}/debian"

View File

@ -1,20 +1,16 @@
---
- name: APT_KEY | Install Percona key
apt_key:
keyserver: "keyserver.ubuntu.com"
id: "8507EFA5"
- name: APT | Install Percona repository
apt:
deb: https://repo.percona.com/apt/percona-release_latest.generic_all.deb
- name: TEMPLATE | Deploy APT pinning (prevent upgrades from Debian)
template:
src: etc/apt/preferences.d/95-percona.j2
dest: /etc/apt/preferences.d/95-percona
- name: COMMAND | Enable percona tools repository
command: percona-release enable tools release
args:
creates: /etc/apt/sources.list.d/percona-original-release.list
register: p
- name: APT_REPOSITORY | Add Percona repository
apt_repository:
repo: 'deb {{ mariadb_percona_repository }} {{ ansible_distribution_release }} main'
- name: APT_RESPOSITORY | Add Percona (src) repository
apt_repository:
repo: 'deb-src {{ mariadb_percona_repository }} {{ ansible_distribution_release }} main'
when: mariadb_upstream_apt_src
- name: APT | Update cache
apt:
update_cache: yes
when: p.changed

View File

@ -1,8 +1,16 @@
---
- name: SET_FACT | Bypass https://github.com/ansible/ansible/issues/19874
set_fact:
ansible_distribution_release: 'buster'
- block:
- name: SET_FACT | Bypass https://github.com/ansible/ansible/issues/19874
set_fact:
ansible_distribution_release: 'buster'
- name: SET_FACT | Percona Toolkit is not present in upstream repo for Buster
set_fact:
mariadb_use_percona_apt: false
mariadb_install_xtrabackup_package: false
when: ansible_facts.distribution_major_version == "buster/sid"
- name: INCLUDE_VARS | Related to OS version

View File

@ -79,6 +79,6 @@
set_fact:
mariadb_galera_primary_node: '{% if is_docker %}docker-{% else %}vbox-{% endif %}{{ ansible_distribution_release }}-{{ mariadb_origin }}-galera-1'
mariadb_wsrep_node_address: "{{ '127.0.0.1' if is_docker else ansible_eth1.ipv4.address }}"
mariadb_version: '10.1'
mariadb_version: '10.3'
roles:
- ../../