Files
926dd9591829f2c2bdab68dff8732e330e421d10
Dave Wilde
3d3a8c0d5d
Add test to ensure that directories are not empty
The scp command will fail if the directory in the preceeding for loop is empty. This adds a test to ensure that $i is acutally a file name. Change-Id: Ib2a3c929a7a15b290c2cf09c05d4079a1ec8c6e6 Closes-Bug: #1621160
72 lines
2.7 KiB
Bash
Executable File
72 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
set -eu
# Copyright [2016] [Kevin Carter]
#
# 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.
# Load all functions
source functions.rc
# Reset the ssh-agent service to remove potential key issues
ssh_agent_reset
# Set the default preseed device name.
# This is being set because sda is on hosts, vda is kvm, xvda is xen.
DEVICE_NAME="${DEVICE_NAME:-vda}"
# Create VM Basic Configuration files
for node_type in $(get_all_types); do
for node in $(get_host_type ${node_type}); do
cp -v "templates/vmnode-config/${node_type}.openstackci.local.xml" /etc/libvirt/qemu/${node%%":"*}.openstackci.local.xml
sed -i "s|__NODE__|${node%%":"*}|g" /etc/libvirt/qemu/${node%%":"*}.openstackci.local.xml
sed -i "s|__COUNT__|${node:(-2)}|g" /etc/libvirt/qemu/${node%%":"*}.openstackci.local.xml
sed -i "s|__DEVICE_NAME__|${DEVICE_NAME}|g" /etc/libvirt/qemu/${node%%":"*}.openstackci.local.xml
done
done
# Populate network configurations based on node type
for node_type in $(get_all_types); do
for node in $(get_host_type ${node_type}); do
sed "s/__COUNT__/${node#*":"}/g" "templates/network-interfaces/vm.openstackci.local-bonded-bridges.cfg" > "/var/www/html/osa-${node%%":"*}.openstackci.local-bridges.cfg"
done
done
# Kick all of the VMs to run the cloud
# !!!THIS TASK WILL DESTROY ALL OF THE ROOT DISKS IF THEY ALREADY EXIST!!!
rekick_vms
# Wait here for all nodes to be booted and ready with SSH
wait_ssh
# Export all system keys
mkdir -p /tmp/keys
for i in $(apt-key list | awk '/pub/ {print 2ドル}' | awk -F'/' '{print 2ドル}'); do
apt-key export "$i" > "/tmp/keys/$i"
done
# Ensure that all running VMs have an updated apt-cache with keys
for node in $(get_all_hosts); do
ssh -q -n -f -o StrictHostKeyChecking=no 10.0.0.${node#*":"} "mkdir -p /tmp/keys"
for i in /etc/apt/apt.conf.d/00-nokey /etc/apt/sources.list /etc/apt/sources.list.d/* /tmp/keys/*; do
if [[ -f "$i" ]]; then
scp "$i" "10.0.0.${node#*":"}:$i"
fi
done
ssh -q -n -f -o StrictHostKeyChecking=no 10.0.0.${node#*":"} "(for i in /tmp/keys/*; do \
apt-key add \$i; \
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys \$(basename \$i); done); \
apt-get clean; \
apt-get update"
done