Small refactoring for Galera Cluster
							parent
							
								
									b8ad3b8b64
								
							
						
					
					
						commit
						254a986648
					
				| 
						 | 
				
			
			@ -25,8 +25,7 @@ Ansible 2.5+
 | 
			
		|||
Role Variables
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
- `mariadb_origin`: origin of the package ("default" or "upstream")
 | 
			
		||||
- `mariadb_vendor`: "mariadb", "mariadb\_galera"
 | 
			
		||||
- `mariadb_use_galera`: set true to configure and install Galera Cluster
 | 
			
		||||
 | 
			
		||||
### Configuration
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -75,7 +74,7 @@ Example Playbook
 | 
			
		|||
 | 
			
		||||
    - hosts: servers
 | 
			
		||||
      roles:
 | 
			
		||||
         - { role: HanXHX.mysql, mariadb_origin: 'upstream', mariadb_vendor: 'mariadb' }
 | 
			
		||||
         - { role: HanXHX.mysql, mariadb_origin: 'upstream' }
 | 
			
		||||
 | 
			
		||||
License
 | 
			
		||||
-------
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,13 +16,13 @@ Vagrant.configure("2") do |config|
 | 
			
		|||
 | 
			
		||||
  cases = [
 | 
			
		||||
    # Debian Stretch
 | 
			
		||||
    { os_name: 'stretch', vbox: vbox_deb_stretch, docker: dk_deb_stretch, vars: {mariadb_origin: 'default',  mariadb_vendor: 'mariadb' }, groups: ['master'] },
 | 
			
		||||
    { os_name: 'stretch', vbox: vbox_deb_stretch, docker: nil,            vars: {mariadb_origin: 'default',  mariadb_vendor: 'mariadb' }, groups: ['slave'] },
 | 
			
		||||
    { os_name: 'stretch', vbox: vbox_deb_stretch, docker: dk_deb_stretch, vars: {mariadb_origin: 'upstream', mariadb_vendor: 'mariadb' }, groups: ['master'] },
 | 
			
		||||
    { os_name: 'stretch', vbox: vbox_deb_stretch, docker: nil,            vars: {mariadb_origin: 'upstream', mariadb_vendor: 'mariadb' }, groups: ['slave'] },
 | 
			
		||||
    { os_name: 'stretch', vbox: vbox_deb_stretch, docker: dk_deb_stretch, vars: {mariadb_origin: 'upstream' },                          groups: ['mariadbgalera', '1'] },
 | 
			
		||||
    { os_name: 'stretch', vbox: vbox_deb_stretch, docker: nil,            vars: {mariadb_origin: 'upstream' },                          groups: ['mariadbgalera', '2'] },
 | 
			
		||||
    { os_name: 'stretch', vbox: vbox_deb_stretch, docker: nil,            vars: {mariadb_origin: 'upstream' },                          groups: ['mariadbgalera', '3'] },
 | 
			
		||||
    { 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'] },
 | 
			
		||||
    { 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: ['mariadbgalera', '1'] },
 | 
			
		||||
    { os_name: 'stretch', vbox: vbox_deb_stretch, docker: nil,            vars: {mariadb_origin: 'upstream' }, groups: ['mariadbgalera', '2'] },
 | 
			
		||||
    { os_name: 'stretch', vbox: vbox_deb_stretch, docker: nil,            vars: {mariadb_origin: 'upstream' }, groups: ['mariadbgalera', '3'] },
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
  cases.each_with_index do |opts,index|
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,7 @@
 | 
			
		|||
# Setup
 | 
			
		||||
# -------------------------------------
 | 
			
		||||
mariadb_origin: 'default'
 | 
			
		||||
mariadb_vendor: 'mariadb'
 | 
			
		||||
mariadb_use_galera: false
 | 
			
		||||
mariadb_root_password: 'change_me_NOW'
 | 
			
		||||
mariadb_notify_restart: true
 | 
			
		||||
mariadb_upstream_apt_src: false
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,17 +1,16 @@
 | 
			
		|||
---
 | 
			
		||||
 | 
			
		||||
- name: INCLUDE | Use Percona repository
 | 
			
		||||
- name: INCLUDE | Setup Percona repository
 | 
			
		||||
  include: 'percona/apt.yml'
 | 
			
		||||
  when: mariadb_use_percona_apt
 | 
			
		||||
 | 
			
		||||
- name: INCLUDE | Install MariaDB from Debian repo
 | 
			
		||||
  include: 'mariadb/default.yml'
 | 
			
		||||
  when: mariadb_origin == 'default' and mariadb_vendor == 'mariadb'
 | 
			
		||||
 | 
			
		||||
- name: INCLUDE | Install MariaDB from MariaDB repo
 | 
			
		||||
- name: INCLUDE | Setup MariaDB repository
 | 
			
		||||
  include: 'mariadb/upstream.yml'
 | 
			
		||||
  when: mariadb_origin == 'upstream'
 | 
			
		||||
 | 
			
		||||
- name: INCLUDE | Install MariaDB
 | 
			
		||||
  include: 'mariadb/default.yml'
 | 
			
		||||
 | 
			
		||||
- name: APT | Install few MariaDB related tools
 | 
			
		||||
  apt:
 | 
			
		||||
    pkg: "{{ mariadb_tools }}"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,4 +28,4 @@
 | 
			
		|||
- name: APT | Install Galera
 | 
			
		||||
  apt:
 | 
			
		||||
    pkg: galera-3
 | 
			
		||||
  when: mariadb_vendor == 'mariadb_galera'
 | 
			
		||||
  when: mariadb_use_galera
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,6 +19,3 @@
 | 
			
		|||
  apt_repository:
 | 
			
		||||
    repo: 'deb-src {{ mariadb_repository }} {{ ansible_distribution_release }} main'
 | 
			
		||||
  when: mariadb_upstream_apt_src
 | 
			
		||||
 | 
			
		||||
- name: INCLUDE | Normal Install
 | 
			
		||||
  include: default.yml
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,7 @@
 | 
			
		|||
 | 
			
		||||
- name: INCLUDE | Galera
 | 
			
		||||
  include: galera/main.yml
 | 
			
		||||
  when: mariadb_vendor == 'mariadb_galera'
 | 
			
		||||
  when: mariadb_use_galera
 | 
			
		||||
 | 
			
		||||
- name: INCLUDE | Replication
 | 
			
		||||
  include: replication/main.yml
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
mariadb_vendor: 'mariadb_galera'
 | 
			
		||||
mariadb_use_galera: true
 | 
			
		||||
mariadb_galera_members:
 | 
			
		||||
  - '{% if is_docker %}docker-{% else %}vbox-{% endif %}{{ ansible_distribution_release }}-upstream-mariadbgalera-1'
 | 
			
		||||
  - '{% if is_docker %}docker-{% else %}vbox-{% endif %}{{ ansible_distribution_release }}-upstream-mariadbgalera-2'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1 +0,0 @@
 | 
			
		|||
mariadb_vendor: 'mysql'
 | 
			
		||||
		Loading…
	
		Reference in New Issue