diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-01-11 20:23:58 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-01-11 20:23:58 +0000 |
| commit | e8e8a9a2abc4427df0562395c6549aef13c9266e (patch) | |
| tree | ad3ff0855482f1cec19972057cde6fe3cdb014b9 /ansible | |
| parent | 421b4c6bcb91d0aebf8e6960e3380af0a8b8c33e (diff) | |
| parent | 37d44444d7bc1804976fc4477c4022ee6cc06e44 (diff) | |
| download | kolla-e8e8a9a2abc4427df0562395c6549aef13c9266e.tar.gz kolla-e8e8a9a2abc4427df0562395c6549aef13c9266e.zip | |
Merge "Make galeradb bootstraping robust"
Diffstat (limited to 'ansible')
| -rw-r--r-- | ansible/roles/mariadb/defaults/main.yml | 2 | ||||
| -rw-r--r-- | ansible/roles/mariadb/tasks/bootstrap.yml | 12 | ||||
| -rw-r--r-- | ansible/roles/mariadb/tasks/start.yml | 11 | ||||
| -rw-r--r-- | ansible/roles/mariadb/templates/galera.cnf.j2 | 3 |
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 |
