Make deploy scripts smart about create/update

This commit is contained in:
Ben Nemec 2016-04-06 14:53:35 -05:00
parent 113be56aea
commit eb4e0d58dd
5 changed files with 128 additions and 3 deletions

View File

@ -1,5 +1,8 @@
#!/bin/bash
op=${1:-create}
stack_name=${2:-quintupleo}
stack_name=${1:-quintupleo}
op=create
if heat stack-list | grep " $stack_name "; then
op=update
fi
heat stack-$op -f templates/quintupleo.yaml -e templates/resource-registry.yaml -e env.yaml $stack_name

View File

@ -1,4 +1,7 @@
#!/bin/bash
op=${1:-create}
op=create
if heat stack-list | grep " baremetal "; then
op=update
fi
heat stack-$op -f templates/virtual-baremetal.yaml -e templates/resource-registry.yaml baremetal -e env.yaml

18
bin/load-test Executable file
View File

@ -0,0 +1,18 @@
#!/bin/bash
set -ex
JOBS=${1:-1}
DELAY=${2:-60}
BIN_DIR=$(cd $(dirname $0); pwd -P)
for i in $(seq $JOBS)
do
jobid=$(uuidgen | md5sum)
jobid=${jobid:1:8}
date
echo "Starting job $jobid, logging to /tmp/$jobid.log"
$BIN_DIR/load-test-job $jobid > /tmp/$jobid.log 2>&1 &
sleep $DELAY
done

64
bin/load-test-job Executable file
View File

@ -0,0 +1,64 @@
#!/bin/bash
# Edit these to match your environment
AUTH_URL=http://11.1.1.78:5000/v2.0
USER=admin
PASSWORD=password
TENANT=admin
BMC_IMAGE=centos7.1-base
KEY_NAME=bnemec
UNDERCLOUD_IMAGE=centos7.1-base
UNDERCLOUD_FLAVOR=m1.large
BAREMETAL_FLAVOR=baremetal-6
set -ex
date
BIN_DIR=$(cd $(dirname $0); pwd -P)
MY_ID=$1
BMC_PREFIX=bmc-$MY_ID
BAREMETAL_PREFIX=baremetal-$MY_ID
UNDERCLOUD_NAME=undercloud-$MY_ID
PUBLIC_NET=public-$MY_ID
PROVISION_NET=${BAREMETAL_PREFIX}_0 #provision-$MY_ID
TEMPDIR=$(mktemp -d)
echo "Working in $TEMPDIR"
cd $TEMPDIR
cp -r $BIN_DIR/../templates .
cp templates/env.yaml.example ./env.yaml
sed -i "s|os_auth_url: .*|os_auth_url: $AUTH_URL|" env.yaml
sed -i "s|os_user: .*|os_user: $USER|" env.yaml
sed -i "s|os_password: .*|os_password: $PASSWORD|" env.yaml
sed -i "s|os_tenant: .*|os_tenant: $TENANT|" env.yaml
sed -i "s/bmc_image: .*/bmc_image: $BMC_IMAGE/" env.yaml
sed -i "s/key_name: .*/key_name: $KEY_NAME/" env.yaml
sed -i "s/bmc_prefix: .*/bmc_prefix: $BMC_PREFIX/" env.yaml
sed -i "s/baremetal_prefix: .*/baremetal_prefix: $BAREMETAL_PREFIX/" env.yaml
sed -i "s/baremetal_flavor: .*/baremetal_flavor: $BAREMETAL_FLAVOR/" env.yaml
sed -i "s/undercloud_name: .*/undercloud_name: $UNDERCLOUD_NAME/" env.yaml
sed -i "s/undercloud_image: .*/undercloud_image: $UNDERCLOUD_IMAGE/" env.yaml
sed -i "s/undercloud_flavor: .*/undercloud_flavor: $UNDERCLOUD_FLAVOR/" env.yaml
sed -i "s/public_net: .*/public_net: $PUBLIC_NET/" env.yaml
sed -i "s/provision_net: .*/provision_net: $PROVISION_NET/" env.yaml
echo 'resource_registry:' >> env.yaml
echo ' OS::OVB::UndercloudFloating: templates/undercloud-floating.yaml' >> env.yaml
cp -r $BIN_DIR ./bin
$BIN_DIR/deploy-quintupleo create quintupleo-$MY_ID
sleep 60
UNDERCLOUD_IP=$(heat output-show quintupleo-$MY_ID undercloud_host_floating_ip | sed -e 's/"//g')
#bin/build-nodes-json --env env.yaml #--bmc_prefix $BMC_PREFIX --baremetal_prefix $BAREMETAL_PREFIX --provision_net $PROVISION_NET_NAME
bin/build-nodes-json --bmc_prefix $BMC_PREFIX --baremetal_prefix $BAREMETAL_PREFIX --provision_net $PROVISION_NET
SSH_OPTS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
scp $SSH_OPTS bin/ovb-instack centos@$UNDERCLOUD_IP:/tmp
scp $SSH_OPTS nodes.json centos@$UNDERCLOUD_IP:~/instackenv.json
ssh -t -t $SSH_OPTS centos@$UNDERCLOUD_IP /tmp/ovb-instack
heat stack-delete quintupleo-$MY_ID
date
echo 'Finished'
rm -rf $TEMPDIR

37
bin/ovb-instack Executable file
View File

@ -0,0 +1,37 @@
#!/bin/bash
set -ex
# These params need to be configured for the environment
export http_proxy=http://roxy:3128
curl -O http://openstack/CentOS-7-x86_64-GenericCloud-1602.qcow2
curl -O http://openstack/fedora-user.qcow2
export DIB_LOCAL_IMAGE=CentOS-7-x86_64-GenericCloud-1602.qcow2
export DIB_DISTRIBUTION_MIRROR=http://mirror.centos.org/centos
export no_proxy=9.1.1.1,192.0.2.1,9.1.1.2,192.0.2.2
sudo yum install -y git
rm -rf git-tripleo-ci
git clone https://git.openstack.org/openstack-infra/tripleo-ci git-tripleo-ci
echo '#!/bin/bash' > tripleo.sh
echo 'git-tripleo-ci/scripts/tripleo.sh $@' >> tripleo.sh
chmod +x tripleo.sh
export OVERCLOUD_PINGTEST_OLD_HEATCLIENT=0
export TRIPLEOSH=/home/centos/tripleo.sh
$TRIPLEOSH --repo-setup
cat << EOF > undercloud.conf
[DEFAULT]
undercloud_hostname=undercloud.localdomain
EOF
$TRIPLEOSH --undercloud
$TRIPLEOSH --overcloud-images
$TRIPLEOSH --register-nodes
sleep 60
export OVERCLOUD_DEPLOY_ARGS="--libvirt-type qemu"
$TRIPLEOSH --overcloud-deploy
$TRIPLEOSH --overcloud-pingtest