
In order to demonstrate that OSA can be built without any containers, and to validate on a continuous basis that it still works, a new scenario is implemented to test it. As part of this, the following is done: 1. An example environment override file is added which sets all the containers with 'is_metal: true' which disables the container creation. 2. As haproxy is not used for the scenario on an AIO, the haproxy environment configuration is broken out from openstack_user_config into its own conf.d file and the implementation of it into user space is added to all other scenarios. 3. To ensure that the pip lockdown configuration is not implemented by the pip install role when the repo server doesn't exist yet, we ensure that the var is set in the playbook that does the validation. 4. To ensure that rabbitmq is able to correctly start up we implement the same host name on the host as we do in the inventory. Without this rabbitmq fails. In order to do this successfully with ansible, the dbus package must be installed on the host, so it is added as part of the AIO bootstrapping. 5. The workflow for a deployment needs no changes because when the lxc-related playbooks execute, they simply skip over because the lxc-related groups are empty. Depends-On: https://review.openstack.org/542307 Change-Id: I67199e1f35c91c4e2c9973e011e856c6ac3fb086
118 lines
3.2 KiB
YAML
118 lines
3.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.
|
|
|
|
# Before we do anything, check the minimum requirements
|
|
- include: check-requirements.yml
|
|
tags:
|
|
- check-requirements
|
|
|
|
# We will look for the most specific variable files first and eventually
|
|
# end up with the least-specific files.
|
|
- 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: Create the required directories
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
with_items:
|
|
- "/openstack"
|
|
tags:
|
|
- create-directories
|
|
|
|
- include: install_packages.yml
|
|
tags:
|
|
- install-packages
|
|
|
|
# Prepare the data disk, if one is provided
|
|
- include: prepare_data_disk.yml
|
|
when: bootstrap_host_data_disk_device != None
|
|
tags:
|
|
- prepare-data-disk
|
|
|
|
# Prepare the swap space loopback disk
|
|
# This is only necessary if there isn't swap already
|
|
- include: prepare_loopback_swap.yml
|
|
static: no
|
|
when:
|
|
- ansible_swaptotal_mb < 1
|
|
tags:
|
|
- prepare-loopback-swap
|
|
|
|
# Prepare the Cinder LVM VG loopback disk
|
|
# This is only necessary if bootstrap_host_loopback_cinder is set to yes
|
|
- include: prepare_loopback_cinder.yml
|
|
when:
|
|
- bootstrap_host_loopback_cinder | bool
|
|
tags:
|
|
- prepare-loopback-cinder
|
|
|
|
# Prepare the Nova instance storage loopback disk
|
|
- include: prepare_loopback_nova.yml
|
|
when:
|
|
- bootstrap_host_loopback_nova | bool
|
|
tags:
|
|
- prepare-loopback-nova
|
|
|
|
# Prepare the Swift data storage loopback disks
|
|
- include: prepare_loopback_swift.yml
|
|
when:
|
|
- bootstrap_host_loopback_swift | bool
|
|
tags:
|
|
- prepare-loopback-swift
|
|
|
|
# Prepare the Ceph cluster UUID and loopback disks
|
|
- include: prepare_ceph.yml
|
|
when:
|
|
- bootstrap_host_ceph | bool
|
|
tags:
|
|
- prepare-ceph
|
|
|
|
# Prepare the Octavia certs and image
|
|
- include: prepare_octavia.yml
|
|
when:
|
|
- bootstrap_host_octavia | bool
|
|
tags:
|
|
- prepare-octavia
|
|
|
|
# Ensure hostname/ip is consistent with inventory
|
|
- include: prepare_hostname.yml
|
|
tags:
|
|
- prepare-hostname
|
|
|
|
# Prepare the network interfaces
|
|
- include: prepare_networking.yml
|
|
tags:
|
|
- prepare-networking
|
|
|
|
# Ensure that there are both private and public ssh keys for root
|
|
- include: prepare_ssh_keys.yml
|
|
tags:
|
|
- prepare-ssh-keys
|
|
|
|
# Put the OpenStack-Ansible configuration for an All-In-One on the host
|
|
- include: prepare_aio_config.yml
|
|
when: bootstrap_host_aio_config | bool
|
|
tags:
|
|
- prepare-aio-config
|