1#!/usr/bin/env bash 2 3testdir=$(readlink -f $(dirname $0)) 4rootdir=$(readlink -f $testdir/../..) 5 6function usage() { 7 [[ -n $2 ]] && ( 8 echo "$2" 9 echo "" 10 ) 11 echo "Devstack installation script" 12 echo "Usage: $(basename $1) [OPTIONS]" 13 echo "--branch=BRANCH Define which version of openstack" 14 echo " should be installed. Default is master." 15 echo "-h, --help Print help and exit" 16 17 exit 0 18} 19 20branch="master" 21while getopts 'h-:' optchar; do 22 case "$optchar" in 23 -) 24 case "$OPTARG" in 25 help) usage $0 ;; 26 branch=*) branch="${OPTARG#*=}" ;; 27 esac 28 ;; 29 h) usage $0 ;; 30 *) usage $0 "Invalid argument '$OPTARG'" ;; 31 esac 32done 33 34cd /opt/stack/devstack 35su -c "./unstack.sh" -s /bin/bash stack 36 37cd /opt/stack 38rm -rf cinder devstack glance keystone heat horizon neutron nova placement requirements tacker tacker-horizon tempest 39 40r=0 41until [[ $r -ge 20 ]]; do 42 if [[ $branch == "master" ]]; then 43 su -c "git clone --depth 1 https://opendev.org/openstack-dev/devstack" -s /bin/bash stack && break 44 else 45 su -c "git clone --depth 1 https://opendev.org/openstack-dev/devstack -b stable/$branch" -s /bin/bash stack && break 46 fi 47 r=$((r + 1)) 48done 49cp $rootdir/scripts/vagrant/local.conf /opt/stack/devstack/local.conf 50 51cd /opt/stack/devstack 52sudo sed -i "s|http://download.cirros-cloud.net|https://download.cirros-cloud.net|g" stackrc 53su -c "./stack.sh" -s /bin/bash stack 54source openrc admin admin 55openstack volume type create SPDK --public 56