77e537f868
This patch adds blank newline for each [yaml|sh] files if they don't end with one. This will allows us getting linters happy and avoid us having git adding "\ No newline at end of file" in diffs when pushing a new patch. In other way, you can configure Git to properly handle line endings in typing: $ git config --global core.autocrlf input Change-Id: I8a113541b3eae6a36ed32995822dedbbd2d9666e Signed-off-by: Gael Chamoulaud <gchamoul@redhat.com>
77 lines
3.2 KiB
Bash
77 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
|
|
|