4b0f18d870
We require: * lxc3 compatibility 589146 * remove bonds from AIO networks 594085 * ensure network fail makes test fail + flush handlers 593546 Depends-On: https://review.openstack.org/589146 Depends-On: https://review.openstack.org/594085 Depends-On: https://review.openstack.org/593546 Change-Id: I36dcb74f93064cc5c06600d0595c1d6484e1d774
134 lines
4.6 KiB
YAML
134 lines
4.6 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: Check for a supported Operating System
|
|
assert:
|
|
that:
|
|
- (ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'xenial') or
|
|
(ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'bionic') or
|
|
(ansible_os_family == 'RedHat' and ansible_distribution_major_version == '7') or
|
|
(ansible_os_family == 'Suse' and ansible_distribution_major_version == '42')
|
|
msg: "The only supported platforms for this release are Ubuntu 16.04 LTS (Xenial), Ubuntu 18.04 LTS (Bionic), CentOS 7 (WIP) and openSUSE Leap 42.X (WIP)"
|
|
when: (check_operating_system | default(True))| bool
|
|
tags:
|
|
- check-operating-system
|
|
|
|
- name: Identify the space available in /
|
|
# NOTE(hwoarang): df does not work reliably on btrfs filesystems
|
|
# https://btrfs.wiki.kernel.org/index.php/FAQ#How_much_free_space_do_I_have.3F
|
|
# As such, use the btrfs tools to determine the real available size on the
|
|
# disk
|
|
shell: |
|
|
if [[ $(df -T / | tail -n 1 | awk '{print $2}') == "btrfs" ]]; then
|
|
btrfs fi usage --kbytes / | awk '/^.*Free / {print $3}'| sed 's/\..*//'
|
|
else
|
|
df -BK / | awk '!/^Filesystem/ {print $4}' | sed 's/K//'
|
|
fi
|
|
when:
|
|
- bootstrap_host_data_disk_device == None
|
|
changed_when: false
|
|
register: root_space_available
|
|
tags:
|
|
- check-disk-size
|
|
|
|
# Convert root_space_available to bytes.
|
|
- name: Set root disk facts
|
|
set_fact:
|
|
host_root_space_available_bytes: "{{ ( root_space_available.stdout | int) * 1024 | int }}"
|
|
when:
|
|
- bootstrap_host_data_disk_device == None
|
|
tags:
|
|
- check-disk-size
|
|
|
|
- name: Fail when disk can not be found
|
|
fail:
|
|
msg: |
|
|
Can not find disk {{ bootstrap_host_data_disk_device }}
|
|
when:
|
|
- bootstrap_host_data_disk_device != None
|
|
- ansible_devices.get(bootstrap_host_data_disk_device) == None
|
|
tags:
|
|
- check-disk-size
|
|
|
|
- name: Set data disk facts
|
|
set_fact:
|
|
host_data_disk_sectors: "{{ (ansible_devices[bootstrap_host_data_disk_device]['sectors'] | int) }}"
|
|
host_data_disk_sectorsize: "{{ (ansible_devices[bootstrap_host_data_disk_device]['sectorsize'] | int) }}"
|
|
when:
|
|
- bootstrap_host_data_disk_device != None
|
|
tags:
|
|
- check-disk-size
|
|
|
|
# Calculate the size of the bootstrap_host_data_disk_device by muliplying sectors with sectorsize.
|
|
- name: Calculate data disk size
|
|
set_fact:
|
|
host_data_disk_size_bytes: "{{ ((host_data_disk_sectors | int) * (host_data_disk_sectorsize | int)) | int }}"
|
|
when:
|
|
- bootstrap_host_data_disk_device != None
|
|
tags:
|
|
- check-disk-size
|
|
|
|
# Convert bootstrap_host_data_disk_min_size to bytes.
|
|
- name: Set min size fact
|
|
set_fact:
|
|
host_data_disk_min_size_bytes: "{{ ((bootstrap_host_data_disk_min_size | int) * 1024**3) | int }}"
|
|
tags:
|
|
- check-disk-size
|
|
|
|
- name: Set size facts
|
|
set_fact:
|
|
root_gb_available: "{{ ((host_root_space_available_bytes | int ) / 1024**3) | round(2, 'floor') }}"
|
|
when: bootstrap_host_data_disk_device == None
|
|
tags:
|
|
- check-disk-size
|
|
|
|
- name: Set disk size facts
|
|
set_fact:
|
|
disk_gb_available: "{{ ((host_data_disk_size_bytes | int ) / 1024**3) | round(2, 'floor') }}"
|
|
when: bootstrap_host_data_disk_device != None
|
|
tags:
|
|
- check-disk-size
|
|
|
|
- name: Fail if there is not enough space available in /
|
|
fail:
|
|
msg: |
|
|
Not enough space available in /.
|
|
Found {{ root_gb_available }} GB, required {{ bootstrap_host_data_disk_min_size }} GB)
|
|
when:
|
|
- bootstrap_host_data_disk_device == None
|
|
- (host_root_space_available_bytes | int) < (host_data_disk_min_size_bytes | int)
|
|
tags:
|
|
- check-disk-size
|
|
|
|
- name: Fail if there is not enough disk space available (disk specified)
|
|
fail:
|
|
msg: |
|
|
Not enough disk space available.
|
|
Found {{ disk_gb_available }} GB, required {{ bootstrap_host_data_disk_min_size }} GB)
|
|
when:
|
|
- bootstrap_host_data_disk_device != None
|
|
- (host_data_disk_size_bytes | int) < (host_data_disk_min_size_bytes | int)
|
|
tags:
|
|
- check-disk-size
|
|
|
|
- name: Ensure that the kernel has VXLAN, VLAN, and bonding support
|
|
modprobe:
|
|
name: "{{ item }}"
|
|
state: present
|
|
with_items:
|
|
- vxlan
|
|
- bonding
|
|
- 8021q
|