--- # 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: Record the installation method ini_file: dest: "/etc/ansible/facts.d/openstack_ansible.fact" section: "neutron" option: "install_method" value: "{{ neutron_install_method }}" - name: Refresh local facts to ensure the neutron section is present setup: filter: ansible_local gather_subset: "!all" - name: Install neutron role packages package: name: "{{ neutron_package_list }}" state: "{{ neutron_package_state }}" update_cache: "{{ (ansible_pkg_mgr in ['apt', 'zypper']) | ternary('yes', omit) }}" cache_valid_time: "{{ (ansible_pkg_mgr == 'apt') | ternary(cache_timeout, omit) }}" register: install_packages until: install_packages|success retries: 5 delay: 2 - name: Remove known problem packages package: name: "{{ item }}" state: absent register: remove_packages until: remove_packages|success retries: 5 delay: 2 with_items: "{{ neutron_remove_distro_packages }}" - name: Install neutron packages from PIP include_tasks: neutron_install_source.yml when: neutron_install_method == 'source' - name: Initialise the upgrade facts ini_file: dest: "/etc/ansible/facts.d/openstack_ansible.fact" section: neutron option: "{{ item.name }}" value: "{{ item.state }}" with_items: - name: "need_db_expand" state: "True" - name: "need_db_contract" state: "True" when: (neutron_install_method == 'source' and ((neutron_get_venv | changed) or (neutron_venv_dir | changed) or (install_optional_packages | changed))) or (install_packages | changed) or (ansible_local is not defined) or ('openstack_ansible' not in ansible_local) or ('neutron' not in ansible_local['openstack_ansible']) or ('need_db_expand' not in ansible_local['openstack_ansible']['neutron']) or ('need_db_contract' not in ansible_local['openstack_ansible']['neutron']) - include: neutron_selinux.yml when: - ansible_selinux.status == "enabled" - name: Ensure Open vSwitch service is started and enabled service: name: "{{ neutron_ovs_service_name }}" state: started enabled: yes when: neutron_needs_openvswitch | bool