From d0c3b67f168184061acb02cc736a2f473ddbabf5 Mon Sep 17 00:00:00 2001 From: Emilien Mantel Date: Fri, 23 Sep 2016 11:40:35 +0200 Subject: [PATCH] [GALERA] Install and configuration OK => wsrep_ready ON --- README.md | 2 +- tasks/install/main.yml | 3 ++- tasks/install/mariadb/default.yml | 4 ++++ tasks/main.yml | 9 ++++++++- templates/etc/mysql/conf.d/09-galera.cnf.j2 | 21 +++++++++++++++++++++ tests/group_vars/mariadbgalera | 2 ++ tests/test.yml | 4 ++++ 7 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 templates/etc/mysql/conf.d/09-galera.cnf.j2 diff --git a/README.md b/README.md index 601a7d6..eadb43d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Role Variables -------------- - `mysql_origin`: origin of the package ("default" or "upstream") -- `mysql_vendor`: "mysql", "mariadb" or "percona" +- `mysql_vendor`: "mysql", "mariadb", "mariadb\_galera" (only with MariaDB upstream 10.1) or "percona" - `mysql_use_percona_repository`: use percona APT repository (automatic setted to true if you use "percona" as `mysql_vendor`). ### Configuration diff --git a/tasks/install/main.yml b/tasks/install/main.yml index 8e7e4db..3cb6da9 100644 --- a/tasks/install/main.yml +++ b/tasks/install/main.yml @@ -7,6 +7,7 @@ (mysql_origin == 'default' and mysql_vendor == 'mysql') or (mysql_origin == 'default' and mysql_vendor == 'mariadb') or (mysql_origin == 'upstream' and mysql_vendor == 'mariadb') or + (mysql_origin == 'upstream' and mysql_vendor == 'mariadb_galera') or (mysql_origin == 'upstream' and mysql_vendor == 'percona') ) @@ -24,7 +25,7 @@ - name: INCLUDE | Install MariaDB from MariaDB repo include: 'mariadb/upstream.yml' - when: mysql_origin == 'upstream' and mysql_vendor == 'mariadb' + when: mysql_origin == 'upstream' and (mysql_vendor == 'mariadb' or mysql_vendor == 'mariadb_galera') - name: INCLUDE | Install Percona Server from Percona repo include: 'percona/upstream.yml' diff --git a/tasks/install/mariadb/default.yml b/tasks/install/mariadb/default.yml index 94208ca..c76defe 100644 --- a/tasks/install/mariadb/default.yml +++ b/tasks/install/mariadb/default.yml @@ -16,3 +16,7 @@ - name: APT | Install MariaDB server apt: pkg=mariadb-server state=present +- name: APT | Install Galera + apt: pkg=galera-3 state=present + when: mysql_vendor == 'mariadb_galera' + diff --git a/tasks/main.yml b/tasks/main.yml index 20f5512..4243a54 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -16,9 +16,16 @@ template: src=etc/mysql/conf.d/10-extra.cnf.j2 dest=/etc/mysql/conf.d/10-extra.cnf register: extraconfig +- name: TEMPLATE | Deploy Galera configuration + template: src=etc/mysql/conf.d/09-galera.cnf.j2 dest=/etc/mysql/conf.d/09-galera.cnf + register: galeraconfig + - name: SERVICE | Restart now (prevent bugs) service: name=mysql state=restarted - when: config.changed or extraconfig.changed + when: > + config.changed or + extraconfig.changed or + (galeraconfig is defined and galeraconfig.changed) - name: TEMPLATE Create .my.cnf for root template: src=root/my.cnf dest=/root/.my.cnf owner=root group=root mode=0600 backup=yes diff --git a/templates/etc/mysql/conf.d/09-galera.cnf.j2 b/templates/etc/mysql/conf.d/09-galera.cnf.j2 new file mode 100644 index 0000000..b31e03d --- /dev/null +++ b/templates/etc/mysql/conf.d/09-galera.cnf.j2 @@ -0,0 +1,21 @@ +# +# {{ ansible_managed }} +# + +[mysqld] + +# Galera config + +wsrep_on=ON +# TODO: wsrep_cluster_address=gcomm://cluster01,cluster02,cluster03 +wsrep_cluster_address=gcomm://127.0.0.1 +# TODO: https://mariadb.com/kb/en/mariadb/galera-cluster-system-variables/#wsrep_sst_method +wsrep_sst_method=rsync +# TODO: wsrep_cluster_name="my_wsrep_cluster" + +# Deps +binlog_format=ROW +default_storage_engine=InnoDB +innodb_autoinc_lock_mode=2 +innodb_doublewrite=1 +query_cache_size=0 diff --git a/tests/group_vars/mariadbgalera b/tests/group_vars/mariadbgalera index 9f6d935..6e21163 100644 --- a/tests/group_vars/mariadbgalera +++ b/tests/group_vars/mariadbgalera @@ -1 +1,3 @@ mysql_vendor: 'mariadb_galera' +mysql_use_percona_repository: false +mariadb_version: '10.1' diff --git a/tests/test.yml b/tests/test.yml index 81677b6..81023c7 100644 --- a/tests/test.yml +++ b/tests/test.yml @@ -37,3 +37,7 @@ delegate_to: "{{ his_master }}" when: c.changed +- hosts: mariadbgalera + roles: + - ../../ +