92aecc57bc
In order to expose the var in role documentation and to allow the use of dynamically set facts to override the value in CI environments the variables are moved from the role vars to the role defaults. The test preparation implements an override of the URL for OpenStack-CI to make use of the local mirrors. Change-Id: Iffa32adb971f281e7e274209ee500b1756fbf0a1
119 lines
4.2 KiB
YAML
119 lines
4.2 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.
|
|
|
|
- name: Make /lib/modules accessible on neutron_agent containers
|
|
hosts: neutron_agent
|
|
user: root
|
|
gather_facts: true
|
|
tasks:
|
|
- name: Use the unconfined aa profile
|
|
lxc_container:
|
|
name: "{{ container_name }}"
|
|
container_config:
|
|
- "lxc.aa_profile=unconfined"
|
|
delegate_to: "{{ physical_host }}"
|
|
- name: Neutron extra lxc config
|
|
lxc_container:
|
|
name: "{{ container_name }}"
|
|
container_command: |
|
|
[[ ! -d "/lib/modules" ]] && mkdir -p "/lib/modules"
|
|
container_config:
|
|
- "lxc.cgroup.devices.allow=a *:* rmw"
|
|
- "lxc.mount.entry=/lib/modules lib/modules none bind 0 0"
|
|
delegate_to: "{{ physical_host }}"
|
|
- name: Wait for ssh to be available
|
|
local_action:
|
|
module: wait_for
|
|
port: "{{ ansible_ssh_port | default('22') }}"
|
|
host: "{{ ansible_ssh_host | default(inventory_hostname) }}"
|
|
search_regex: OpenSSH
|
|
delay: 1
|
|
- name: Add iptables rule for communication w/ metadata agent
|
|
command: /sbin/iptables -t mangle -A POSTROUTING -p tcp --sport 80 -j CHECKSUM --checksum-fill
|
|
|
|
- name: Deploy neutron
|
|
hosts: neutron_all
|
|
user: root
|
|
gather_facts: true
|
|
pre_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
|
|
apt:
|
|
name: "{{ item }}"
|
|
with_items:
|
|
- libffi-dev
|
|
when: inventory_hostname in groups['neutron_all']
|
|
- name: Ensure rabbitmq vhost
|
|
rabbitmq_vhost:
|
|
name: "{{ neutron_rabbitmq_vhost }}"
|
|
state: "present"
|
|
delegate_to: "10.100.102.101"
|
|
when: inventory_hostname == groups['neutron_all'][0]
|
|
- name: Ensure rabbitmq user
|
|
rabbitmq_user:
|
|
user: "{{ neutron_rabbitmq_userid }}"
|
|
password: "{{ neutron_rabbitmq_password }}"
|
|
vhost: "{{ neutron_rabbitmq_vhost }}"
|
|
configure_priv: ".*"
|
|
read_priv: ".*"
|
|
write_priv: ".*"
|
|
state: "present"
|
|
delegate_to: "10.100.102.101"
|
|
when: inventory_hostname == groups['neutron_all'][0]
|
|
- name: Create DB for service
|
|
mysql_db:
|
|
login_user: "root"
|
|
login_password: "secrete"
|
|
login_host: "localhost"
|
|
name: "{{ neutron_galera_database }}"
|
|
state: "present"
|
|
delegate_to: "10.100.102.101"
|
|
when: inventory_hostname == groups['neutron_all'][0]
|
|
- name: Grant access to the DB for the service
|
|
mysql_user:
|
|
login_user: "root"
|
|
login_password: "secrete"
|
|
login_host: "localhost"
|
|
name: "{{ neutron_galera_database }}"
|
|
password: "{{ neutron_container_mysql_password }}"
|
|
host: "{{ item }}"
|
|
state: "present"
|
|
priv: "{{ neutron_galera_database }}.*:ALL"
|
|
with_items:
|
|
- "localhost"
|
|
- "%"
|
|
delegate_to: "10.100.102.101"
|
|
when: inventory_hostname == groups['neutron_all'][0]
|
|
- name: Check if this is an OpenStack-CI nodepool instance
|
|
stat:
|
|
path: /etc/nodepool/provider
|
|
register: nodepool
|
|
delegate_to: localhost
|
|
- name: Determine the existing Ubuntu repo URL (only on OpenStack-CI)
|
|
shell: 'awk "/^deb .*ubuntu\/? {{ ansible_distribution_release }} main/ {print \$2; exit}" /etc/apt/sources.list'
|
|
register: ubuntu_repo_url
|
|
changed_when: false
|
|
when: nodepool.stat.exists | bool
|
|
delegate_to: localhost
|
|
- name: Set Ubuntu Cloud Archive repo URL based on discovered information
|
|
set_fact:
|
|
uca_apt_repo_url: "{{ ubuntu_repo_url.stdout | netorigin }}/ubuntu-cloud-archive"
|
|
when: nodepool.stat.exists | bool
|
|
roles:
|
|
- role: "os_neutron"
|
|
vars_files:
|
|
- test-vars.yml
|