openstack-ansible-tests/test-install-neutron.yml
Mohammed Naser adc796b960 Add retries to install packages required for Neutron
Jobs sometimes fail and timeout on this task so adding retries
to make it less prone to CI failures.

Change-Id: I4ecad7ecf56962fc272989a8fafc66b0ff1e5185
2018-06-17 10:04:39 -04:00

117 lines
3.5 KiB
YAML

---
# 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
register: install_packages
until: install_packages is success
retries: 5
delay: 2
- include: ensure-rabbitmq.yml
vhost_name: "{{ neutron_rabbitmq_vhost }}"
user_name: "{{ neutron_rabbitmq_userid }}"
user_password: "{{ neutron_rabbitmq_password }}"
when:
- "'rabbitmq_all' in groups"
- "groups['rabbitmq_all'] | length > 0"
- "'oslomsg_rpc_all' not in groups"
- include: ensure-oslomsg.yml
rpc_vhost: "{{ neutron_oslomsg_rpc_vhost }}"
rpc_user: "{{ neutron_oslomsg_rpc_userid }}"
rpc_password: "{{ neutron_oslomsg_rpc_password }}"
notify_vhost: "{{ neutron_oslomsg_notify_vhost }}"
notify_user: "{{ neutron_oslomsg_notify_userid }}"
notify_password: "{{ neutron_oslomsg_notify_password }}"
when:
- "'oslomsg_rpc_all' in groups"
- "groups['oslomsg_rpc_all'] | length > 0"
- 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