diff options
| author | Jenkins <jenkins@review.openstack.org> | 2015-07-12 03:30:09 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2015-07-12 03:30:09 +0000 |
| commit | f41cde62a43e8872050e53f2f0b4402e49309293 (patch) | |
| tree | febd28f509075bfaa58ff9646f1175e89a00c356 | |
| parent | 4922d6056ce0ea617df95733f48c6efeff97e8e4 (diff) | |
| parent | 8f194e50a0f95ff21f94afdb9581b19e00ef2571 (diff) | |
| download | kolla-f41cde62a43e8872050e53f2f0b4402e49309293.tar.gz kolla-f41cde62a43e8872050e53f2f0b4402e49309293.zip | |
Merge "Fixes an issue with AIO and galera clusters"
| -rw-r--r-- | ansible/roles/database/tasks/main.yml | 7 | ||||
| -rw-r--r-- | ansible/roles/database/tasks/register.yml | 2 | ||||
| -rw-r--r-- | ansible/roles/database/tasks/start.yml | 4 | ||||
| -rw-r--r-- | ansible/roles/database/templates/galera.cnf.j2 | 2 |
4 files changed, 11 insertions, 4 deletions
diff --git a/ansible/roles/database/tasks/main.yml b/ansible/roles/database/tasks/main.yml index c7474dde5..c13e4eb0a 100644 --- a/ansible/roles/database/tasks/main.yml +++ b/ansible/roles/database/tasks/main.yml @@ -5,9 +5,16 @@ - include: start.yml +# We use register as a test to see whether the database is active and ready to +# communicate. This run on all hosts that have a database and attempts to talk +# to the local database rather than the vip, - include: register.yml # This will restart the container we initially used to bootstrap the cluster to # make it match the other containers environment-wise. This also prevents a # change from showing up when rerunning the playbooks - include: start.yml + +# Since the last start.yml may have recreated some containers we must wait and +# check the health again to ensure the hosts are active. +- include: register.yml diff --git a/ansible/roles/database/tasks/register.yml b/ansible/roles/database/tasks/register.yml index ba6021090..c7382ff88 100644 --- a/ansible/roles/database/tasks/register.yml +++ b/ansible/roles/database/tasks/register.yml @@ -1,7 +1,7 @@ --- - name: Creating haproxy mysql user mysql_user: - login_host: "{{ database_address }}" + login_host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}" login_user: "{{ database_user }}" login_password: "{{ database_password }}" name: "haproxy" diff --git a/ansible/roles/database/tasks/start.yml b/ansible/roles/database/tasks/start.yml index e60d49d4e..fcddb9e0c 100644 --- a/ansible/roles/database/tasks/start.yml +++ b/ansible/roles/database/tasks/start.yml @@ -9,5 +9,5 @@ - "{{ node_config_directory }}/mariadb/:/opt/kolla/mariadb/:ro" container_volumes_from: - "mariadb_data" - when: delegate_host != 'None' or - ( delegate_host == 'None' and inventory_hostname != groups['database'][0]) + when: delegate_host != 'None' or (groups['database'] | length) == 1 or + ( delegate_host == 'None' and inventory_hostname != groups['database'][0] ) diff --git a/ansible/roles/database/templates/galera.cnf.j2 b/ansible/roles/database/templates/galera.cnf.j2 index 9d9d725d4..5f3dbbda0 100644 --- a/ansible/roles/database/templates/galera.cnf.j2 +++ b/ansible/roles/database/templates/galera.cnf.j2 @@ -8,7 +8,7 @@ query_cache_type=0 innodb_log_file_size=48M wsrep_provider=/usr/lib64/galera/libgalera_smm.so -wsrep_cluster_address=gcomm://{% for host in groups['database'] %}{{ hostvars[host]['ansible_hostname'] }}{% if not loop.last %},{% endif %}{% endfor %} +wsrep_cluster_address=gcomm://{% if (groups['database'] | length) > 1 %}{% for host in groups['database'] %}{{ hostvars[host]['ansible_hostname'] }}{% if not loop.last %},{% endif %}{% endfor %}{% endif %} wsrep_cluster_name="{{ database_cluster_name }}" wsrep_node_address={{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }} |
