tripleo-quickstart/ci-scripts/ooo-usbkey.sh
Sorin Sbarnea 4a41ca7bf0 Lint fixes for ci-scripts and config folders
This normalizes the formatting of files from ci-scripts and config
folders in order to allow further hardening of linting.

Fixing linting was too big to be made in a single commit as it would
involve too many files to review and could merge conflicts with
existing changes. Thus doing it in few chunks would makes it possible.

Original full change is at https://review.openstack.org/#/c/627545/ and
will be the one merging the last.

Change-Id: Ifb215c0e2ea0ef7115897721f75ba8489bd59b97
2018-12-28 10:01:11 +00:00

76 lines
3.2 KiB
Bash

#!/bin/bash
# CI test that tests the USB key method of using tripleo-quickstart
# Usage: basic.sh <release> <build_system> <config> <job_type>
set -eux
# CONFIG and JOB_TYPE are not used here, but kept for
# consistency with other jobs to make JJB cleaner.
RELEASE=$1
BUILD_SYS=$2
CONFIG=$3
JOB_TYPE=$4
URL=http://artifacts.ci.centos.org/artifacts/rdo/images
UNDERCLOUD=$URL/$RELEASE/$BUILD_SYS/stable/undercloud.qcow2
sshcmd='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
scpcmd='scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
# Create a non-root user with passwordless sudo permissions on the virthost
# This is a requirement of the usbkey script, but the CI nodes do not have it
$sshcmd root@$VIRTHOST <<-EOF
useradd stack
mkdir /home/stack/.ssh
cp /root/.ssh/authorized_keys /home/stack/.ssh/
chown -R stack:stack /home/stack
echo "Defaults:stack !requiretty" > /etc/sudoers.d/stack
echo "stack ALL=(root) NOPASSWD:ALL" >> /etc/sudoers.d/stack
chmod 0440 /etc/sudoers.d/stack
EOF
# Copy artifacts to the CI provided virthost to simulate USB key
$sshcmd stack@$VIRTHOST <<-EOF
if [[ ! -f /tmp/usb/undercloud.qcow2 ]]; then
mkdir -p /tmp/usb
curl -o /tmp/usb/undercloud.qcow2 $UNDERCLOUD
curl -o /tmp/usb/undercloud.qcow2.md5 $UNDERCLOUD.md5
else
echo "undercloud.qcow2 file was found, skipping download"
fi
EOF
#Ensure rsync is installed on target, required w/ ssh as the protocol
$sshcmd root@$VIRTHOST <<-EOF
yum -y install rsync
EOF
#$scpcmd -r $WORKSPACE/tripleo-quickstart stack@$VIRTHOST:/tmp/usb/
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress $WORKSPACE/tripleo-quickstart stack@$VIRTHOST:/tmp/usb/
$sshcmd stack@$VIRTHOST "cp /tmp/usb/tripleo-quickstart/ci-scripts/usbkey/* /tmp/usb/"
$sshcmd stack@$VIRTHOST "cp /tmp/usb/tripleo-quickstart/ci-scripts/usbkey/quickstart-usb.yml /tmp/usb/tripleo-quickstart/playbooks/"
#quickstart.sh has changed since the usbkey image was pressed.
# The ci-scripts/usbkey/usb_requirements.txt has to be the requirements file now that
# requirements are additive vs. a selection.
$sshcmd stack@$VIRTHOST "mv /tmp/usb/tripleo-quickstart/ci-scripts/usbkey/usb_requirements.txt /tmp/usb/tripleo-quickstart/requirements.txt"
#Use the version of quickstart.sh that was shipped on the usbkey
$sshcmd stack@$VIRTHOST "mv /tmp/usb/tripleo-quickstart/ci-scripts/usbkey/quickstart.sh /tmp/usb/tripleo-quickstart/quickstart.sh"
# Simulate executable bit being unset when mounting usbkey
$sshcmd stack@$VIRTHOST "chmod -x /tmp/usb/RUN_ME.sh /tmp/usb/tripleo-quickstart/quickstart.sh"
# Simulate the usbkey not being writable
$sshcmd stack@$VIRTHOST "chmod -w -R /tmp/usb"
# Run the USB script
$sshcmd stack@$VIRTHOST 'bash /tmp/usb/RUN_ME.sh'
# Support collect logs on the virthost by providing hosts and ssh config
export ANSIBLE_INVENTORY=$WORKSPACE/hosts
export SSH_CONFIG=$WORKSPACE/ssh.config.ansible
export ANSIBLE_SSH_ARGS="-F ${SSH_CONFIG}"
$scpcmd stack@$VIRTHOST:~/.quickstart/ssh.config* $WORKSPACE/
$scpcmd stack@$VIRTHOST:~/.quickstart/hosts* $WORKSPACE/
$scpcmd stack@$VIRTHOST:~/.quickstart/id_* $WORKSPACE/
sed -i 's,\/home\/stack\/\.quickstart,'"$WORKSPACE"',g' $WORKSPACE/ssh.config.ansible