aboutsummaryrefslogtreecommitdiff
path: root/ansible
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-01-11 20:23:58 +0000
committerGerrit Code Review <review@openstack.org>2016-01-11 20:23:58 +0000
commite8e8a9a2abc4427df0562395c6549aef13c9266e (patch)
treead3ff0855482f1cec19972057cde6fe3cdb014b9 /ansible
parent421b4c6bcb91d0aebf8e6960e3380af0a8b8c33e (diff)
parent37d44444d7bc1804976fc4477c4022ee6cc06e44 (diff)
downloadkolla-e8e8a9a2abc4427df0562395c6549aef13c9266e.tar.gz
kolla-e8e8a9a2abc4427df0562395c6549aef13c9266e.zip
Merge "Make galeradb bootstraping robust"
Diffstat (limited to 'ansible')
-rw-r--r--ansible/roles/mariadb/defaults/main.yml2
-rw-r--r--ansible/roles/mariadb/tasks/bootstrap.yml12
-rw-r--r--ansible/roles/mariadb/tasks/start.yml11
-rw-r--r--ansible/roles/mariadb/templates/galera.cnf.j23
4 files changed, 24 insertions, 4 deletions
diff --git a/ansible/roles/mariadb/defaults/main.yml b/ansible/roles/mariadb/defaults/main.yml
index 00f49d1ba..410e86d3e 100644
--- a/ansible/roles/mariadb/defaults/main.yml
+++ b/ansible/roles/mariadb/defaults/main.yml
@@ -5,7 +5,7 @@ project_name: "mariadb"
# Database
####################
database_cluster_name: "openstack"
-
+database_max_timeout: 60
####################
# Docker
diff --git a/ansible/roles/mariadb/tasks/bootstrap.yml b/ansible/roles/mariadb/tasks/bootstrap.yml
index 68354dd15..af7d8f308 100644
--- a/ansible/roles/mariadb/tasks/bootstrap.yml
+++ b/ansible/roles/mariadb/tasks/bootstrap.yml
@@ -44,6 +44,8 @@
KOLLA_BOOTSTRAP:
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
DB_ROOT_PASSWORD: "{{ database_password }}"
+ DB_PID_FILE: "/var/lib/mysql/{{ hostvars[inventory_hostname]['ansible_hostname'] }}-galera.pid"
+ DB_MAX_TIMEOUT: "{{ database_max_timeout }}"
image: "{{ mariadb_image_full }}"
name: "mariadb"
restart_policy: "never"
@@ -52,7 +54,11 @@
- "mariadb:/var/lib/mysql"
when: delegate_host == 'None' and inventory_hostname == groups['mariadb'][0]
-- name: Sleeping for 15 seconds while the cluster starts
- command: sleep 15
- changed_when: False
+- name: Waiting for MariaDB service to be ready
+ command: "docker exec mariadb ls /var/lib/mysql/{{ hostvars[inventory_hostname]['ansible_hostname'] }}-galera.pid /var/lib/mysql/cluster.exists"
+ register: bootstrap_result
when: delegate_host == 'None' and inventory_hostname == groups['mariadb'][0]
+ until: bootstrap_result|success
+ changed_when: False
+ retries: 6
+ delay: 10
diff --git a/ansible/roles/mariadb/tasks/start.yml b/ansible/roles/mariadb/tasks/start.yml
index 4682455ca..cfc12c063 100644
--- a/ansible/roles/mariadb/tasks/start.yml
+++ b/ansible/roles/mariadb/tasks/start.yml
@@ -11,3 +11,14 @@
when: delegate_host != 'None' or
( groups['mariadb'] | length ) == 1 or
( delegate_host == 'None' and inventory_hostname != groups['mariadb'][0] )
+
+- name: Waiting for MariaDB service to be ready
+ command: "docker exec mariadb ls /var/lib/mysql/{{ hostvars[inventory_hostname]['ansible_hostname'] }}-galera.pid"
+ register: bootstrap_result
+ when: delegate_host != 'None' or
+ ( groups['mariadb'] | length ) == 1 or
+ ( delegate_host == 'None' and inventory_hostname != groups['mariadb'][0] )
+ until: bootstrap_result|success
+ changed_when: False
+ retries: 6
+ delay: 10
diff --git a/ansible/roles/mariadb/templates/galera.cnf.j2 b/ansible/roles/mariadb/templates/galera.cnf.j2
index bed806883..4e1039268 100644
--- a/ansible/roles/mariadb/templates/galera.cnf.j2
+++ b/ansible/roles/mariadb/templates/galera.cnf.j2
@@ -24,3 +24,6 @@ wsrep_sst_auth={{ database_user }}:{{ database_password }}
wsrep_slave_threads=4
max_connections=1000
+
+[server]
+pid-file=/var/lib/mysql/{{ ansible_hostname }}-galera.pid