openstack-ansible-os_nova/tasks/main.yml

126 lines
3.3 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 }}.yml"
tags:
- always
- name: Fail when virt type is unsupported
fail:
msg: "Unsupported Virt Type Provided {{ nova_supported_virt_types }}"
when:
- nova_virt_type is defined
- nova_virt_type not in nova_supported_virt_types
tags:
- always
- include: nova_virt_detect.yml
static: no
when:
- nova_virt_type is not defined
tags:
- always
- nova-config
- include: nova_pre_install.yml
tags:
- nova-install
- include: nova_install.yml
tags:
- nova-install
- name: refresh local facts
setup:
filter: ansible_local
gather_subset: "!all"
tags:
- nova-config
- include: nova_post_install.yml
tags:
- nova-config
- include: nova_db_setup.yml
static: no
when:
- "'nova_conductor' in group_names"
- "inventory_hostname == ((groups['nova_conductor'] | intersect(ansible_play_hosts)) | list)[0]"
tags:
- nova-config
- include: nova_uwsgi.yml
tags:
- nova-config
- include: "nova_init_{{ ansible_service_mgr}}.yml"
tags:
- nova-config
- include: nova_service_setup.yml
static: no
when:
- "'nova_conductor' in group_names"
- "inventory_hostname == ((groups['nova_conductor'] | intersect(ansible_play_hosts)) | list)[0]"
tags:
- nova-config
- include: nova_compute.yml
static: no
when:
- "'nova_compute' in group_names"
tags:
- nova-compute
- name: Include ceph_client role
include_role:
name: ceph_client
vars:
openstack_service_system_user: "{{ nova_system_user_name }}"
openstack_service_venv_bin: "{{ nova_bin }}"
when:
- "'nova_compute' in group_names"
- "(nova_libvirt_images_rbd_pool is defined) or
(nova_cinder_rbd_inuse | bool)"
tags:
- ceph
- name: Flush handlers
meta: flush_handlers
# We have to delegate this back to the conductor
# because the compute hosts do not have access to
# the database connection string and therefore
# cannot run nova-manage.
# Also, we delegate this to a random host in the
# conductor group in order to spread the load of
# multiple forks across the group members.
- include: nova_db_post_setup.yml
delegate_to: "{{ conductor_host }}"
with_random_choice: "{{ groups['nova_conductor'] }}"
loop_control:
loop_var: conductor_host
when:
- "'nova_compute' in group_names"
tags:
- nova-config