--- # Copyright 2015, 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. - include: setting-nodepool-variables.yml - name: Make /lib/modules accessible on neutron_agent containers hosts: neutron_agent user: root become: true gather_facts: true any_errors_fatal: true vars: kernel_module_path: apt: "lib/modules" dnf: "usr/lib/modules" yum: "usr/lib/modules" zypper: "lib/modules" vars_files: - test-vars.yml tasks: - name: Neutron extra lxc config lxc_container: name: "{{ container_name }}" container_command: | [[ ! -d "/{{ kernel_module_path[ansible_pkg_mgr] }}" ]] && mkdir -p "/{{ kernel_module_path[ansible_pkg_mgr] }}" container_config: - "lxc.aa_profile=unconfined" - "lxc.cgroup.devices.allow=a *:* rmw" - "lxc.mount.entry=/{{ kernel_module_path[ansible_pkg_mgr] }} {{ kernel_module_path[ansible_pkg_mgr] }} none bind 0 0" delegate_to: "{{ physical_host }}" - name: Wait for container connectivity wait_for_connection: connect_timeout: "{{ lxc_container_wait_params.connect_timeout | default(omit) }}" delay: "{{ lxc_container_wait_params.delay | default(omit) }}" sleep: "{{ lxc_container_wait_params.sleep | default(omit) }}" timeout: "{{ lxc_container_wait_params.timeout | default(omit) }}" - name: Prepare for neutron services hosts: neutron_all user: root become: true gather_facts: true any_errors_fatal: true vars: required_packages: apt: - "libffi-dev" dnf: - "libffi-devel" yum: - "libffi-devel" zypper: - "libffi-devel" vars_files: - test-vars.yml tasks: # NOTE: These are typically installed in the repo server where we build the # neutron wheel - name: Install packages required to build neutron python package package: name: "{{ required_packages[ansible_pkg_mgr] }}" state: present - include: ensure-rabbitmq.yml vhost_name: "{{ neutron_rabbitmq_vhost }}" user_name: "{{ neutron_rabbitmq_userid }}" user_password: "{{ neutron_rabbitmq_password }}" - include: create-grant-db.yml db_name: "{{ neutron_galera_database }}" db_password: "{{ neutron_container_mysql_password }}" - name: Deploy neutron server hosts: neutron_all user: root become: true gather_facts: true any_errors_fatal: true roles: - role: "os_neutron" vars_files: - test-vars.yml