--- # 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