Browse Source

Version specified on pillar

Change-Id: Ib5db9f151baaf3fa0bca97a5457cf836bc57b88c
master
Petr Michalec 7 years ago
parent
commit
5ff575c210
No account linked to committer's email address
7 changed files with 200 additions and 123 deletions
  1. +8
    -2
      .kitchen.yml
  2. +8
    -4
      .travis.yml
  3. +3
    -0
      README.rst
  4. +121
    -63
      galera/map.jinja
  5. +1
    -0
      galera/master.sls
  6. +57
    -52
      tests/pillar/master_cluster.sls
  7. +2
    -2
      tests/pillar/repo_galeracluster.sls

+ 8
- 2
.kitchen.yml View File

@@ -30,10 +30,16 @@ provisioner:
top.sls:
base:
"*":
- versions
- repos
- galera
- galeracluster_debian_repo
versions.sls:
galera:
version:
mysql: <%= ENV['MYSQL_VER'] || '5.6' %>
galera: <%= ENV['GALERA_VER'] || '3' %>
pillars-from-files:
galeracluster_debian_repo.sls: tests/pillar/repo_galeracluster.sls
repos.sls: tests/pillar/repo_galeracluster.sls

verifier:
name: inspec

+ 8
- 4
.travis.yml View File

@@ -17,10 +17,14 @@ install:
- bundle install

env:
- PLATFORM=trevorj/salty-whales:trusty SUITE=master_cluster
- PLATFORM=trevorj/salty-whales:xenial SUITE=master_cluster
- PLATFORM=trevorj/salty-whales:trusty SUITE=slave_cluster
- PLATFORM=trevorj/salty-whales:xenial SUITE=slave_cluster
- PLATFORM=trevorj/salty-whales:trusty SUITE=master_cluster MYSQL_VER=5.6 GALERA_VER=3
- PLATFORM=trevorj/salty-whales:xenial SUITE=master_cluster MYSQL_VER=5.6 GALERA_VER=3
- PLATFORM=trevorj/salty-whales:trusty SUITE=slave_cluster MYSQL_VER=5.6 GALERA_VER=3
- PLATFORM=trevorj/salty-whales:xenial SUITE=slave_cluster MYSQL_VER=5.6 GALERA_VER=3
- PLATFORM=trevorj/salty-whales:trusty SUITE=master_cluster MYSQL_VER=5.7 GALERA_VER=3
- PLATFORM=trevorj/salty-whales:xenial SUITE=master_cluster MYSQL_VER=5.7 GALERA_VER=3
- PLATFORM=trevorj/salty-whales:trusty SUITE=slave_cluster MYSQL_VER=5.7 GALERA_VER=3
- PLATFORM=trevorj/salty-whales:xenial SUITE=slave_cluster MYSQL_VER=5.7 GALERA_VER=3

before_script:
- set -o pipefail

+ 3
- 0
README.rst View File

@@ -13,6 +13,9 @@ Galera cluster master node
.. code-block:: yaml

galera:
version:
mysql: 5.6
galera: 3
master:
enabled: true
name: openstack

+ 121
- 63
galera/map.jinja View File

@@ -1,68 +1,126 @@
{% set mysql_version = pillar.galera.get('version', {}).get('mysql', '5.6') %}
{% set galera_version = pillar.galera.get('version', {}).get('galera', '3') %}

{%- set master = salt['grains.filter_by']({
'default': {
'max_connections': 20000,
'innodb_buffer_pool_size': '3138M',
},
'Debian': {
'pkgs': ['mysql-wsrep-5.6', 'galera-3', 'rsync', 'python-mysqldb', 'psmisc', 'netcat', 'percona-xtrabackup', 'socat', 'libdbd-mysql', 'python-pymysql'],
'service': 'mysql',
'wsrep_provider': '/usr/lib/galera/libgalera_smm.so',
'log_file': '/var/log/mysql.log',
'socket': '/var/run/mysqld/mysqld.sock',
'config': '/etc/mysql/my.cnf',
},
'RedHat': {
'pkgs': ['galera', 'mariadb-galera-server', 'mariadb', 'MySQL-python', 'rsync', 'percona-xtrabackup', 'psmisc', 'socat'],
'xtrabackup_repo': 'http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm',
'service': 'mariadb',
'wsrep_provider': '/usr/lib64/galera/libgalera_smm.so',
'log_file': '/var/log/mariadb/mariadb.log',
'socket': '/var/run/mariadb/mysqld.sock',
'config': '/etc/my.cnf',
},
}, merge=pillar.galera.get('master', {}), base='default') %}
{%- load_yaml as master %}
default:
max_connections: 20000
innodb_buffer_pool_size: '3138M'
Debian:
pkgs:
- mysql-wsrep-{{ mysql_version }}
- galera-{{ galera_version }}
- rsync
- python-mysqldb
- psmisc
- netcat
- percona-xtrabackup
- socat
- libdbd-mysql
- python-pymysql
service: mysql
wsrep_provider: /usr/lib/galera/libgalera_smm.so
log_file: /var/log/mysql.log
socket: /var/run/mysqld/mysqld.sock
config: /etc/mysql/my.cnf
RedHat:
pkgs:
- galera
- mariadb-galera-server
- mariadb
- MySQL-python
- rsync
- percona-xtrabackup
- psmisc
- socat
xtrabackup_repo: http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
service: mariadb
wsrep_provider: /usr/lib64/galera/libgalera_smm.so
log_file: /var/log/mariadb/mariadb.log
socket: /var/run/mariadb/mysqld.sock
config: /etc/my.cnf
{%- endload %}
{%- set _pillar = pillar.galera.get('master', {}) %}
{%- if _pillar|length > 1 %}
{%- set master = salt['grains.filter_by'](master, merge=_pillar, base='default') %}
{%- else %}
{%- set master = salt['grains.filter_by'](master, base='default') %}
{%- endif %}

{%- set slave = salt['grains.filter_by']({
'default': {
'max_connections': 20000,
'innodb_buffer_pool_size': '3138M',
},
'Debian': {
'pkgs': ['mysql-wsrep-5.6', 'galera-3', 'rsync', 'python-mysqldb', 'libmysqlclient18', 'psmisc', 'netcat', 'percona-xtrabackup', 'socat', 'libdbd-mysql', 'python-pymysql'],
'service': 'mysql',
'wsrep_provider': '/usr/lib/galera/libgalera_smm.so',
'log_file': '/var/log/mysql.log',
'socket': '/var/run/mysqld/mysqld.sock',
'config': '/etc/mysql/my.cnf',
},
'RedHat': {
'pkgs': ['galera', 'mariadb-galera-server', 'mariadb', 'MySQL-python', 'rsync', 'percona-xtrabackup', 'psmisc', 'socat'],
'xtrabackup_repo': 'http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm',
'service': 'mariadb',
'wsrep_provider': '/usr/lib64/galera/libgalera_smm.so',
'log_file': '/var/log/mariadb/mariadb.log',
'socket': '/var/run/mariadb/mysqld.sock',
'config': '/etc/my.cnf',
},
}, merge=salt['grains.filter_by']({
'trusty': {
'pkgs': ['mysql-wsrep-5.6', 'galera-3', 'rsync', 'python-mysqldb', 'libmysqlclient18', 'psmisc', 'netcat', 'percona-xtrabackup', 'socat', 'libdbd-mysql', 'python-pymysql'],
'service': 'mysql',
'wsrep_provider': '/usr/lib/galera/libgalera_smm.so',
'log_file': '/var/log/mysql.log',
'socket': '/var/run/mysqld/mysqld.sock',
'config': '/etc/mysql/my.cnf',
},
'xenial': {
'pkgs': ['mysql-wsrep-5.6', 'galera-3', 'rsync', 'python-mysqldb', 'libmysqlclient-dev', 'psmisc', 'netcat', 'percona-xtrabackup', 'socat', 'libdbd-mysql', 'python-pymysql'],
'service': 'mysql',
'wsrep_provider': '/usr/lib/galera/libgalera_smm.so',
'log_file': '/var/log/mysql.log',
'socket': '/var/run/mysqld/mysqld.sock',
'config': '/etc/mysql/my.cnf',
},
}, grain='oscodename', merge=pillar.galera.get('slave', {})), base='default') %}

{%- load_yaml as slave %}
default:
max_connections: 20000
innodb_buffer_pool_size: '3138M'
Debian:
pkgs:
- mysql-wsrep-{{ mysql_version }}
- galera-{{ galera_version }}
- rsync
- python-mysqldb
- libmysqlclient18
- psmisc
- netcat
- percona-xtrabackup
- socat
- libdbd-mysql
- python-pymysql
service: mysql
wsrep_provider: /usr/lib/galera/libgalera_smm.so
log_file: /var/log/mysql.log
socket: /var/run/mysqld/mysqld.sock
config: /etc/mysql/my.cnf
RedHat:
pkgs:
- galera
- mariadb-galera-server
- mariadb
- MySQL-python
- rsync
- percona-xtrabackup
- psmisc
- socat
xtrabackup_repo: http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
service: mariadb
wsrep_provider: /usr/lib64/galera/libgalera_smm.so
log_file: /var/log/mariadb/mariadb.log
socket: /var/run/mariadb/mysqld.sock
config: /etc/my.cnf
{%- endload %}
{%- load_yaml as slave_oscodename %}
trusty:
pkgs:
- mysql-wsrep-{{ mysql_version }}
- galera-{{ galera_version }}
- rsync
- python-mysqldb
- libmysqlclient18
- psmisc
- netcat
- percona-xtrabackup
- socat
- libdbd-mysql
- python-pymysql
xenial:
pkgs:
- mysql-wsrep-{{ mysql_version }}
- galera-{{ galera_version }}
- rsync
- python-mysqldb
- libmysqlclient-dev
- psmisc
- netcat
- percona-xtrabackup
- socat
- libdbd-mysql
- python-pymysql
{%- endload %}
{%- set _pillar = pillar.galera.get('slave', {}) %}
{%- if _pillar|length > 1 %}
{%- set _oscodename = salt['grains.filter_by'](slave_oscodename, grain='oscodename', merge=_pillar) %}
{%- else %}
{%- set _oscodename = salt['grains.filter_by'](slave_oscodename, grain='oscodename') %}
{%- endif %}
{%- set slave = salt['grains.filter_by'](slave, merge=_oscodename, base='default') %}

{% set clustercheck = salt['grains.filter_by']({
'Debian': {

+ 1
- 0
galera/master.sls View File

@@ -36,6 +36,7 @@ galera_log_dir:
- pkg: galera_packages

{%- if grains.os_family == 'Debian' %}

galera_run_dir:
file.directory:
- name: /var/run/mysqld

+ 57
- 52
tests/pillar/master_cluster.sls View File

@@ -1,53 +1,58 @@
galera:
master:
enabled: true
name: galeracluster
bind:
address: 127.0.0.1
port: 3306
maintenance_password: password
admin:
user: root
password: password
members:
- host: 127.0.0.1
port: 4567
- host: 127.0.0.1
port: 4567
- host: 127.0.0.1
port: 4567
clustercheck:
enabled: True
user: clustercheck
galera:
master:
enabled: true
name: galeracluster
bind:
address: 127.0.0.1
port: 3306
maintenance_password: password
admin:
user: root
password: password
available_when_donor: 1
available_when_readonly: 1
port: 9200
max_connections: 20000
innodb_buffer_pool_size: 3138M
mysql:
server:
database:
mydb:
encoding: 'utf8'
users:
- name: haproxy
host: localhost
- name: haproxy
host: '%'
- name: haproxy
host: 127.0.0.1
- name: clustercheck
#host: localhost
password: password
database: '*.*'
grants: PROCESS
- name: inspector
host: 127.0.0.1
password: password
databases:
- database: mydb
table: mytable
grant_option: True
grants:
- all privileges
members:
- host: 127.0.0.1
port: 4567
- host: 127.0.0.1
port: 4567
- host: 127.0.0.1
port: 4567
clustercheck:
enabled: True
user: clustercheck
password: password
available_when_donor: 1
available_when_readonly: 1
port: 9200
max_connections: 20000
innodb_buffer_pool_size: 3138M
mysql:
server:
enabled: true
bind:
address: 0.0.0.0
port: 3306
protocol: tcp
database:
mydb:
encoding: 'utf8'
users:
- name: haproxy
host: localhost
- name: haproxy
host: '%'
- name: haproxy
host: 127.0.0.1
- name: clustercheck
#host: localhost
password: password
database: '*.*'
grants: PROCESS
- name: inspector
host: 127.0.0.1
password: password
databases:
- database: mydb
table: mytable
grant_option: True
grants:
- all privileges

+ 2
- 2
tests/pillar/repo_galeracluster.sls View File

@@ -3,7 +3,7 @@ linux:
enabled: true
repo:
galeracluster:
source: 'deb http://releases.galeracluster.com/galera-3/ubuntu {{ grains.get('oscodename') }} main'
source: 'deb http://releases.galeracluster.com/galera-{{ pillar.galera.version.galera }}/ubuntu {{ grains.get('oscodename') }} main'
key_id: BC19DDBA
key_server: hkp://p80.pool.sks-keyservers.net:80
pin:
@@ -11,7 +11,7 @@ linux:
priority: 1001
package: '*'
mysql-wsrep:
source: 'deb http://releases.galeracluster.com/mysql-wsrep-5.6/ubuntu {{ grains.get('oscodename') }} main'
source: 'deb http://releases.galeracluster.com/mysql-wsrep-{{ pillar.galera.version.mysql }}/ubuntu {{ grains.get('oscodename') }} main'
key_id: BC19DDBA
key_server: hkp://p80.pool.sks-keyservers.net:80
pin:

Loading…
Cancel
Save