[WIP] Remove Stretch and Percona support
							parent
							
								
									ba8477d8ed
								
							
						
					
					
						commit
						c338867c47
					
				| 
						 | 
				
			
			@ -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'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
------------
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
    # ========================
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 }}"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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: []
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
  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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
vagrant up stretch-upstream-mariadb-master
 | 
			
		||||
vagrant up stretch-upstream-mariadb-slave
 | 
			
		||||
vagrant up buster-upstream-mariadb-master
 | 
			
		||||
vagrant up buster-upstream-mariadb-slave
 | 
			
		||||
```
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,5 @@
 | 
			
		|||
mariadb_tools:
 | 
			
		||||
  - mariadb-backup
 | 
			
		||||
  - mysqltuner
 | 
			
		||||
  - percona-toolkit
 | 
			
		||||
  - 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