76e0e8cfa0
Currently the backend setup executes on the first cinder-api host. The playbook to execute the setup of the API is done in serial. This creates a bit of a problem on a greenfield deployment which uses haproxy because the backend is disabled and there are no other API hosts setup yet. This makes the CLI commands which require the API to be working fail. This patch makes the backend create task set execute on the last cinder-api host. This means that when they execute, there should already be other API services up and therefore the load balancer will be able to handle the API requests. Closes-Bug: #1753125 Change-Id: I335b9f4ef0566d1561275059b90e0a50d16c4992
109 lines
3.2 KiB
YAML
109 lines
3.2 KiB
YAML
---
|
|
# Copyright 2014, Rackspace US, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
- name: Gather variables for each operating system
|
|
include_vars: "{{ item }}"
|
|
with_first_found:
|
|
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml"
|
|
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
|
|
- "{{ ansible_os_family | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
|
|
- "{{ ansible_distribution | lower }}.yml"
|
|
- "{{ ansible_os_family | lower }}-{{ ansible_distribution_version.split('.')[0] }}.yml"
|
|
- "{{ ansible_os_family | lower }}.yml"
|
|
tags:
|
|
- always
|
|
|
|
- include: cinder_pre_install.yml
|
|
tags:
|
|
- cinder-install
|
|
|
|
- include: cinder_install.yml
|
|
tags:
|
|
- cinder-install
|
|
|
|
- name: refresh local facts
|
|
setup:
|
|
filter: ansible_local
|
|
gather_subset: "!all"
|
|
tags:
|
|
- cinder-config
|
|
|
|
- include: cinder_cleanup_old_facts.yml
|
|
when:
|
|
- "'need_db_sync' in ansible_local['openstack_ansible']['cinder']"
|
|
tags:
|
|
- cinder-config
|
|
|
|
- include: cinder_post_install.yml
|
|
tags:
|
|
- cinder-config
|
|
|
|
- include: cinder_db_setup.yml
|
|
static: no
|
|
when:
|
|
- "groups['cinder_api'] | length > 0"
|
|
- "cinder_services['cinder-api']['group'] in group_names"
|
|
- "inventory_hostname == ((groups['cinder_api'] | intersect(ansible_play_hosts)) | list)[0]"
|
|
tags:
|
|
- cinder-config
|
|
|
|
- include: cinder_uwsgi.yml
|
|
tags:
|
|
- cinder-config
|
|
|
|
- include: cinder_service_setup.yml
|
|
static: no
|
|
when:
|
|
- "groups['cinder_api'] | length > 0"
|
|
- "cinder_services['cinder-api']['group'] in group_names"
|
|
- "inventory_hostname == ((groups['cinder_api'] | intersect(ansible_play_hosts)) | list)[0]"
|
|
tags:
|
|
- cinder-config
|
|
|
|
- include: "cinder_init_{{ ansible_service_mgr }}.yml"
|
|
tags:
|
|
- cinder-config
|
|
|
|
- name: Include ceph_client role
|
|
include_role:
|
|
name: ceph_client
|
|
vars:
|
|
openstack_service_system_user: "{{ cinder_system_user_name }}"
|
|
openstack_service_venv_bin: "{{ cinder_bin }}"
|
|
when:
|
|
- "cinder_services['cinder-volume']['group'] in group_names"
|
|
- "cinder_backend_rbd_inuse | bool"
|
|
tags:
|
|
- ceph
|
|
|
|
- name: Flush handlers
|
|
meta: flush_handlers
|
|
|
|
- include: cinder_backends.yml
|
|
static: no
|
|
when:
|
|
- "groups[cinder_services['cinder-volume']['group']] | length > 0"
|
|
- "cinder_services['cinder-api']['group'] in group_names"
|
|
- "inventory_hostname == ((groups[cinder_services['cinder-api']['group']] | intersect(ansible_play_hosts)) | list)[-1]"
|
|
tags:
|
|
- cinder-config
|
|
|
|
- include: cinder_lvm_config.yml
|
|
when:
|
|
- "cinder_services['cinder-volume']['group'] in group_names"
|
|
- "cinder_backend_lvm_inuse | bool"
|
|
tags:
|
|
- cinder-config
|