93aff4023a
use the last good release for py27 for upper-constraints for the tq virtual environment Change-Id: Ibda370c31497204ea9883ae1fa0d3558b260a948
622 lines
22 KiB
Bash
Executable File
622 lines
22 KiB
Bash
Executable File
#!/bin/bash
|
||
# Show colored output if running interactively
|
||
if [ -t 1 ] ; then
|
||
export ANSIBLE_FORCE_COLOR=true
|
||
fi
|
||
# Log everything from this script into _quickstart.log
|
||
echo "$0 $@" > _quickstart.log
|
||
exec &> >(tee -i -a _quickstart.log )
|
||
|
||
# With LANG set to everything else than C completely undercipherable errors
|
||
# like "file not found" and decoding errors will start to appear during scripts
|
||
# or even ansible modules
|
||
LANG=C
|
||
|
||
DEFAULT_OPT_TAGS="untagged,provision,environment,libvirt,undercloud-scripts,undercloud-inventory,overcloud-scripts,undercloud-setup,undercloud-install,undercloud-post-install,tripleoui-validate,notest"
|
||
DEFAULT_OPT_OVERCLOUD_PREP_TAGS="overcloud-prep-config,overcloud-prep-images,overcloud-prep-flavors,overcloud-prep-containers,overcloud-prep-network,overcloud-scripts,overcloud-ssl"
|
||
ZUUL_CLONER=/usr/zuul-env/bin/zuul-cloner
|
||
|
||
: ${OPT_BOOTSTRAP:=0}
|
||
: ${OPT_CLEAN:=0}
|
||
: ${OPT_PLAYBOOK:=quickstart-extras.yml}
|
||
: ${OPT_RELEASE:=queens}
|
||
: ${OPT_RETAIN_INVENTORY_FILE:=0}
|
||
: ${OPT_SYSTEM_PACKAGES:=0}
|
||
: ${OPT_TAGS:=$DEFAULT_OPT_TAGS}
|
||
: ${OPT_TEARDOWN:=nodes}
|
||
: ${OPT_WORKDIR:=~/.quickstart}
|
||
: ${OPT_LIST_TASKS_ONLY=""}
|
||
: ${USER_OVERRIDE_SUDO_CHECK:=0}
|
||
# disable pip implicit version check, if we need min version we should mention it
|
||
export PIP_DISABLE_PIP_VERSION_CHECK=${PIP_DISABLE_PIP_VERSION_CHECK:=1}
|
||
|
||
clean_virtualenv() {
|
||
if [ -d $OPT_WORKDIR ]; then
|
||
echo "WARNING: Removing $OPT_WORKDIR. Triggering virtualenv bootstrap."
|
||
rm -rf $OPT_WORKDIR
|
||
fi
|
||
}
|
||
|
||
: ${OOOQ_BASE_REQUIREMENTS:=requirements.txt}
|
||
: ${OOOQ_EXTRA_REQUIREMENTS:=quickstart-extras-requirements.txt}
|
||
|
||
# Our docs support running quickstart.sh as a standalone script.
|
||
# We have to download install-deps.sh to support that use case.
|
||
ABSDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||
|
||
if [[ ! -e ${ABSDIR}/install-deps.sh ]]; then
|
||
echo "install-deps.sh was not found, in the same directory ($ABSDIR) as quickstart.sh"
|
||
echo "downloading install-deps.sh to ${ABSDIR}/install-deps.sh"
|
||
curl -o ${ABSDIR}/install-deps.sh https://opendev.org/openstack/tripleo-quickstart/raw/branch/master/install-deps.sh
|
||
curl -o ${ABSDIR}/bindep.txt https://opendev.org/openstack/tripleo-quickstart/raw/branch/master/bindep.txt
|
||
fi
|
||
source ${ABSDIR}/install-deps.sh
|
||
|
||
print_logo () {
|
||
|
||
if [ `TERM=${TERM:-vt100} tput cols` -lt 105 ]; then
|
||
|
||
cat <<EOBANNER
|
||
----------------------------------------------------------------------------
|
||
| , . , |
|
||
| )-_'''_-( |
|
||
| ./ o\ /o \. |
|
||
| . \__/ \__/ . |
|
||
| ... V ... |
|
||
| ... - - - ... |
|
||
| . - - . |
|
||
| \`-.....-´ |
|
||
| ____ ____ ____ _ _ _ _ |
|
||
| / __ \ / __ \ / __ \ (_) | | | | | | |
|
||
| | | | | ___ | | | | | | | |_ _ _ ___| | _____| |_ __ _ _ __| |_ |
|
||
| | | | |/ _ \| | | | | | | | | | | |/ __| |/ / __| __/ _\` | '__| __| |
|
||
| | |__| | |_| | |__| | | |__| | |_| | | (__| <\__ \ |_|(_| | | | |_ |
|
||
| \____/ \___/ \____/ \___\_\\\__,_|_|\___|_|\_\___/\__\__,_|_| \__| |
|
||
| |
|
||
| |
|
||
----------------------------------------------------------------------------
|
||
|
||
|
||
EOBANNER
|
||
|
||
else
|
||
|
||
cat <<EOBANNER
|
||
-------------------------------------------------------------------------------------------------------
|
||
| , . , _______ _ _ ____ ____ _ _ _ _ |
|
||
| )-_'''_-( |__ __| (_) | | / __ \ / __ \ (_) | | | | | | |
|
||
| ./ o\ /o \. | |_ __ _ _ __ | | ___| | | | | | | |_ _ _ ___| | _____| |_ __ _ _ __| |_ |
|
||
| . \__/ \__/ . | | '__| | '_ \| |/ _ \ | | | | | | | | | | |/ __| |/ / __| __/ _\` | '__| __| |
|
||
| ... V ... | | | | | |_) | | __/ |__| | | |__| | |_| | | (__| <\__ \ |_|(_| | | | |_ |
|
||
| ... - - - ... |_|_| |_| .__/|_|\___|\____/ \___\_\\\__,_|_|\___|_|\_\___/\__\__,_|_| \__| |
|
||
| . - - . | | |
|
||
| \`-.....-´ |_| |
|
||
-------------------------------------------------------------------------------------------------------
|
||
|
||
|
||
EOBANNER
|
||
|
||
fi
|
||
}
|
||
|
||
# This creates a Python virtual environment and installs
|
||
# tripleo-quickstart into that environment. It only runs if
|
||
# the local working directory does not exist, or if explicitly
|
||
# requested via --bootstrap.
|
||
bootstrap () {
|
||
set -e
|
||
# install required deps for a python virtual environment
|
||
install_deps
|
||
# setup the virtual environment
|
||
install_virtual_env
|
||
# continue package installs with bindep
|
||
install_package_deps_via_bindep
|
||
|
||
if [ "$OPT_NO_CLONE" != 1 ]; then
|
||
if ! [ -d "$OOOQ_DIR" ]; then
|
||
echo "Cloning tripleo-quickstart repository..."
|
||
git clone https://opendev.org/openstack/tripleo-quickstart \
|
||
$OOOQ_DIR
|
||
fi
|
||
|
||
cd $OOOQ_DIR
|
||
if [ -n "$OPT_GERRIT" ]; then
|
||
git review -d "$OPT_GERRIT"
|
||
else
|
||
git remote update
|
||
git checkout --quiet origin/master
|
||
fi
|
||
fi
|
||
|
||
pushd $OOOQ_DIR
|
||
# use stable/train as the latest known good python2 upper constraints
|
||
# tq can use the last known good for train in virt environments and
|
||
# execute against any openstack wth --release
|
||
if [ "$(python_cmd)" == "python2" ]; then
|
||
export PIP_CONSTRAINT=${PIP_CONSTRAINT:-https://opendev.org/openstack/requirements/raw/branch/stable/train/upper-constraints.txt}
|
||
fi
|
||
$(python_cmd) setup.py install egg_info --egg-base $OPT_WORKDIR
|
||
if [ $OPT_CLEAN == 1 ]; then
|
||
$(python_cmd) -m pip install --no-cache-dir --force-reinstall "${OPT_REQARGS[@]}"
|
||
else
|
||
$(python_cmd) -m pip install --force-reinstall "${OPT_REQARGS[@]}"
|
||
fi
|
||
if [ -x "$ZUUL_CLONER" ] && [ ! -z "$ZUUL_BRANCH" ]; then
|
||
mkdir -p .tmp
|
||
EXTRAS_DIR=$(/bin/mktemp -d -p $(pwd)/.tmp)
|
||
pushd $EXTRAS_DIR
|
||
# pull in tripleo-operator-ansible from source
|
||
$ZUUL_CLONER --cache-dir \
|
||
/opt/git \
|
||
https://opendev.org \
|
||
openstack/tripleo-operator-ansible
|
||
pushd openstack/tripleo-operator-ansible
|
||
if [ $OPT_CLEAN == 1 ]; then
|
||
$(python_cmd) -m pip install --no-cache-dir --force-reinstall .
|
||
else
|
||
$(python_cmd) -m pip install --force-reinstall .
|
||
fi
|
||
popd
|
||
# pull in ansible-collections-openstack from source
|
||
$ZUUL_CLONER --cache-dir \
|
||
/opt/git \
|
||
https://opendev.org \
|
||
openstack/ansible-collections-openstack
|
||
pushd openstack/ansible-collections-openstack
|
||
if [ $OPT_CLEAN == 1 ]; then
|
||
$(python_cmd) -m pip install --no-cache-dir --force-reinstall .
|
||
else
|
||
$(python_cmd) -m pip install --force-reinstall .
|
||
fi
|
||
popd
|
||
# pull in tripleo-quickstart-extras from source
|
||
$ZUUL_CLONER --cache-dir \
|
||
/opt/git \
|
||
https://opendev.org \
|
||
openstack/tripleo-quickstart-extras
|
||
pushd openstack/tripleo-quickstart-extras
|
||
if [ $OPT_CLEAN == 1 ]; then
|
||
$(python_cmd) -m pip install --no-cache-dir --force-reinstall .
|
||
else
|
||
$(python_cmd) -m pip install --force-reinstall .
|
||
fi
|
||
popd
|
||
popd
|
||
fi
|
||
popd
|
||
|
||
}
|
||
|
||
activate_venv() {
|
||
. $OPT_WORKDIR/bin/activate
|
||
}
|
||
|
||
usage () {
|
||
echo "Usage: $0 --install-deps"
|
||
echo " install quickstart package dependencies and exit"
|
||
echo ""
|
||
echo "Usage: $0 [options] [virthost]"
|
||
echo ""
|
||
echo " virthost a physical machine hosting the libvirt VMs of the TripleO"
|
||
echo " deployment, required unless VIRTHOST is already defined."
|
||
echo ""
|
||
echo "Basic options:"
|
||
echo " -p, --playbook <file>"
|
||
echo " playbook to run, relative to playbooks directory"
|
||
echo " (default=$OPT_PLAYBOOK)"
|
||
echo " -r, --requirements <file>"
|
||
echo " install requirements with pip, can be used"
|
||
echo " multiple times. By using this flag you override "
|
||
echo " both requirements.txt and quickstart-extras-requirements.txt."
|
||
echo " The user assumes responsibility for the requirements. "
|
||
echo " -u, --url-requirements <PIP format URL>"
|
||
echo " Pip format URL for requirements to install for quickstart"
|
||
echo " For example: -u git+https://opendev.org/openstack/tripleo-upgrade#egg=tripleo-upgrade"
|
||
echo " -R, --release OpenStack release to deploy (default=$OPT_RELEASE)"
|
||
echo " -c, --config <file>"
|
||
echo " specify the config file that contains the node"
|
||
echo " configuration, can be used only once"
|
||
echo " (default=config/general_config/minimal.yml)"
|
||
echo " -N, --nodes <file>"
|
||
echo " specify the number of nodes that should be created by"
|
||
echo " the provisioner. "
|
||
echo " -E, --environment <file>"
|
||
echo " specify additional configuration that is specific to"
|
||
echo " the environment where TripleO-Quickstart is running."
|
||
echo " -e, --extra-vars <key>=<value>"
|
||
echo " additional ansible variables, can be used multiple times"
|
||
echo " -w, --working-dir <dir>"
|
||
echo " directory where the virtualenv, inventory files, etc."
|
||
echo " are created (default=$OPT_WORKDIR)"
|
||
echo ""
|
||
echo "Advanced options:"
|
||
echo " -v, --ansible-debug"
|
||
echo " invoke ansible-playbook with -vvvv"
|
||
echo " -y, --dry-run"
|
||
echo " dry run of playbook, invoke ansible with --list-tasks"
|
||
echo " -X, --clean discard the working directory on start"
|
||
echo " -b, --bootstrap force creation of the virtualenv and the installation"
|
||
echo " of requirements without discarding the working directory"
|
||
echo " -n, --no-clone skip cloning the tripleo-quickstart repo, use quickstart"
|
||
echo " code from \$PWD"
|
||
echo " -g, --gerrit <change-id>"
|
||
echo " check out <change-id> for the tripleo-quickstart repo"
|
||
echo " before running the playbook"
|
||
echo " -q, --override_sudo_check"
|
||
echo " If passwordless sudo is not enabled, prompt for "
|
||
echo " the user password while installing packages"
|
||
echo " -I, --retain-inventory"
|
||
echo " keep the ansible inventory on start, used for consecutive"
|
||
echo " runs of quickstart on the same environment"
|
||
echo " -s, --system-site-packages"
|
||
echo " give access to the global site-packages modules"
|
||
echo " to the virtualenv"
|
||
echo " -t, --tags <tag1>[,<tag2>,...]"
|
||
echo " only run plays and tasks tagged with these values,"
|
||
echo " specify 'all' to run everything"
|
||
echo " (default=$OPT_TAGS)"
|
||
echo " -o, --tags-overcloud-prep"
|
||
echo " Include the overcloud prep tags automatically in"
|
||
echo " addition to the default tags"
|
||
echo " -T, --teardown [ all | virthost | nodes | none ]"
|
||
echo " parts of a previous deployment to tear down before"
|
||
echo " starting a new one, see the docs for full description"
|
||
echo " (default=$OPT_TEARDOWN)"
|
||
echo " -S, --skip-tags <tag1>[,<tag2>,...]"
|
||
echo " only run plays and tasks whose tags do"
|
||
echo " not match these values"
|
||
echo " -l, --print-logo print the TripleO logo and exit"
|
||
echo " -h, --help print this help and exit"
|
||
|
||
}
|
||
|
||
OPT_VARS=()
|
||
OPT_ENVIRONMENT=()
|
||
|
||
while [ "x$1" != "x" ]; do
|
||
case "$1" in
|
||
--install-deps|-i)
|
||
OPT_INSTALL_DEPS=1
|
||
;;
|
||
|
||
--system-site-packages|-s)
|
||
OPT_SYSTEM_PACKAGES=1
|
||
;;
|
||
|
||
--requirements|-r)
|
||
OPT_REQARGS+=("-r")
|
||
OPT_REQARGS+=("$2")
|
||
shift
|
||
;;
|
||
|
||
--url-requirements|-u)
|
||
OPT_REQARGS+=("$2")
|
||
shift
|
||
;;
|
||
|
||
--release|-R)
|
||
OPT_RELEASE=$2
|
||
shift
|
||
;;
|
||
|
||
--bootstrap|-b)
|
||
OPT_BOOTSTRAP=1
|
||
;;
|
||
|
||
--ansible-debug|-v)
|
||
OPT_DEBUG_ANSIBLE=1
|
||
;;
|
||
|
||
--working-dir|-w)
|
||
OPT_WORKDIR=$(realpath $2)
|
||
shift
|
||
;;
|
||
|
||
--tags|-t)
|
||
OPT_TAGS=$2
|
||
shift
|
||
;;
|
||
|
||
--skip-tags|-S)
|
||
OPT_SKIP_TAGS=$2
|
||
shift
|
||
;;
|
||
|
||
--tags-overcloud-prep|-o)
|
||
OPT_TAGS="${OPT_TAGS:+$OPT_TAGS,$DEFAULT_OPT_OVERCLOUD_PREP_TAGS}"
|
||
shift
|
||
;;
|
||
|
||
--config|-c)
|
||
OPT_CONFIG=$2
|
||
shift
|
||
;;
|
||
|
||
--override_sudo_check|-q)
|
||
USER_OVERRIDE_SUDO_CHECK=1
|
||
;;
|
||
|
||
--nodes|-N)
|
||
OPT_NODES=$2
|
||
shift
|
||
;;
|
||
|
||
--environment|-E)
|
||
OPT_ENVIRONMENT+=("-e")
|
||
OPT_ENVIRONMENT+=("@$2")
|
||
shift
|
||
;;
|
||
|
||
--clean|-X)
|
||
OPT_CLEAN=1
|
||
;;
|
||
|
||
--playbook|-p)
|
||
OPT_PLAYBOOK=$2
|
||
shift
|
||
;;
|
||
|
||
--extra-vars|-e)
|
||
OPT_VARS+=("-e")
|
||
OPT_VARS+=("$2")
|
||
shift
|
||
;;
|
||
|
||
--teardown|-T)
|
||
OPT_TEARDOWN=$2
|
||
shift
|
||
;;
|
||
|
||
--help|-h)
|
||
usage
|
||
exit
|
||
;;
|
||
|
||
# developer options
|
||
|
||
--gerrit|-g)
|
||
OPT_GERRIT=$2
|
||
OPT_BOOTSTRAP=1
|
||
shift
|
||
;;
|
||
|
||
--dry-run|-y)
|
||
OPT_LIST_TASKS_ONLY=" --list-tasks"
|
||
;;
|
||
|
||
--no-clone|-n)
|
||
OPT_NO_CLONE=1
|
||
;;
|
||
|
||
--retain-inventory|-I)
|
||
OPT_RETAIN_INVENTORY_FILE=1
|
||
;;
|
||
|
||
--print-logo|-l)
|
||
PRINT_LOGO=1
|
||
;;
|
||
|
||
--) shift
|
||
break
|
||
;;
|
||
|
||
-*) echo "ERROR: unknown option: $1" >&2
|
||
usage >&2
|
||
exit 2
|
||
;;
|
||
|
||
*) break
|
||
;;
|
||
esac
|
||
|
||
shift
|
||
done
|
||
|
||
if [ -z "$OPT_REQARGS" ]; then
|
||
OPT_REQARGS=("-r" "$OOOQ_BASE_REQUIREMENTS" "-r" "$OOOQ_EXTRA_REQUIREMENTS")
|
||
else
|
||
OPT_REQARGS+=("-r" "$OOOQ_BASE_REQUIREMENTS")
|
||
fi
|
||
|
||
if [ "$PRINT_LOGO" = 1 ]; then
|
||
print_logo
|
||
echo "..."
|
||
echo "Nothing more to do"
|
||
exit
|
||
fi
|
||
|
||
|
||
if [ "$OPT_NO_CLONE" = 1 ]; then
|
||
OOOQ_DIR=$ABSDIR
|
||
else
|
||
OOOQ_DIR=$OPT_WORKDIR/tripleo-quickstart
|
||
fi
|
||
|
||
if [ "$OPT_CLEAN" = 1 ]; then
|
||
clean_virtualenv
|
||
fi
|
||
|
||
if [ "$OPT_TEARDOWN" = "all" ]; then
|
||
OPT_TAGS="${OPT_TAGS:+$OPT_TAGS,}teardown-all"
|
||
elif [ "$OPT_TEARDOWN" = "virthost" ]; then
|
||
OPT_TAGS="${OPT_TAGS:+$OPT_TAGS,}teardown-nodes,teardown-environment"
|
||
elif [ "$OPT_TEARDOWN" = "nodes" ]; then
|
||
OPT_TAGS="${OPT_TAGS:+$OPT_TAGS,}teardown-nodes"
|
||
elif [ "$OPT_TEARDOWN" = "none" ]; then
|
||
OPT_SKIP_TAGS="${OPT_SKIP_TAGS:+$OPT_SKIP_TAGS,}teardown-all"
|
||
fi
|
||
|
||
# Set this default after option processing, because the default depends
|
||
# on another option.
|
||
# Default general configuration
|
||
: ${OPT_CONFIG:=$OPT_WORKDIR/config/general_config/minimal.yml}
|
||
# Default Nodes
|
||
: ${OPT_NODES:=$OPT_WORKDIR/config/nodes/1ctlr_1comp.yml}
|
||
# Default Environment
|
||
: ${OPT_ENVIRONMENT:=-e @$OPT_WORKDIR/config/environments/default_libvirt.yml}
|
||
|
||
# allow the deprecated config files to work
|
||
OLD_CONFIG=""
|
||
if [[ "$OPT_CONFIG" =~ (^|.*/)ha.yml$ ]]; then
|
||
OLD_CONFIG=$OPT_CONFIG
|
||
OPT_CONFIG=$OPT_WORKDIR/config/general_config/pacemaker.yml;
|
||
OPT_NODES=$OPT_WORKDIR/config/nodes/3ctlr_1comp.yml;
|
||
elif [[ "$OPT_CONFIG" =~ (^|.*/)ceph.yml$ ]]; then
|
||
OLD_CONFIG=$OPT_CONFIG
|
||
OPT_CONFIG=$OPT_WORKDIR/config/general_config/minimal.yml;
|
||
OPT_NODES=$OPT_WORKDIR/config/nodes/1ctlr_1comp_1ceph.yml;
|
||
elif [[ "$OPT_CONFIG" =~ (^|.*/)ha_big.yml$ ]]; then
|
||
OLD_CONFIG=$OPT_CONFIG
|
||
OPT_CONFIG=$OPT_WORKDIR/config/general_config/pacemaker.yml;
|
||
OPT_NODES=$OPT_WORKDIR/config/nodes/3ctlr_3comp.yml;
|
||
elif [[ "$OPT_CONFIG" =~ (^|.*/)fake_ha_ipa.yml$ ]]; then
|
||
OLD_CONFIG=$OPT_CONFIG
|
||
OPT_CONFIG=$OPT_WORKDIR/config/general_config/ipa.yml;
|
||
OPT_NODES=$OPT_WORKDIR/config/nodes/1ctlr_1comp_1supp.yml;
|
||
elif [[ "$OPT_CONFIG" =~ (^|.*/)ha_ipa.yml$ ]]; then
|
||
OLD_CONFIG=$OPT_CONFIG
|
||
OPT_CONFIG=$OPT_WORKDIR/config/general_config/ipa.yml;
|
||
OPT_NODES=$OPT_WORKDIR/config/nodes/3ctlr_1comp.yml;
|
||
elif [[ "$OPT_CONFIG" =~ (^|.*/)ha_ipv6.yml$ ]]; then
|
||
OLD_CONFIG=$OPT_CONFIG
|
||
OPT_CONFIG=$OPT_WORKDIR/config/general_config/ipv6.yml;
|
||
OPT_NODES=$OPT_WORKDIR/config/nodes/3ctlr_1comp.yml;
|
||
elif [[ "$OPT_CONFIG" =~ (^|.*/)minimal_pacemaker.yml$ ]]; then
|
||
OLD_CONFIG=$OPT_CONFIG
|
||
OPT_CONFIG=$OPT_WORKDIR/config/general_config/pacemaker.yml;
|
||
fi
|
||
|
||
if [ "$OLD_CONFIG" != "" ]; then
|
||
echo "******************** PLEASE READ ****************************" >&2
|
||
echo "" >&2
|
||
echo "DEPRECATION NOTICE: $OLD_CONFIG has been deprecated" >&2
|
||
echo "" >&2
|
||
sleep 3;
|
||
fi
|
||
|
||
if [ "$OPT_INSTALL_DEPS" = 1 ]; then
|
||
echo "NOTICE: installing dependencies" >&2
|
||
install_deps
|
||
install_bindep
|
||
install_package_deps_via_bindep
|
||
exit $?
|
||
fi
|
||
|
||
if [ "$OPT_BOOTSTRAP" = 1 ] || ! [ -f "$OPT_WORKDIR/bin/activate" ]; then
|
||
bootstrap
|
||
|
||
if [ $? -ne 0 ]; then
|
||
echo "ERROR: bootstrap failed; try \"$0 --install-deps\"" >&2
|
||
echo " to install package dependencies or \"$0 --clean\"" >&2
|
||
echo " to remove $OPT_WORKDIR and start over" >&2
|
||
exit 1
|
||
fi
|
||
fi
|
||
|
||
if [ "$#" -lt 1 ]; then
|
||
if [ "${VIRTHOST:-}" == "" ]; then
|
||
echo "ERROR: You didn't specify a target machine and VIRTHOST is not defined" >&2
|
||
usage >&2
|
||
exit 2
|
||
else
|
||
echo "NOTICE: Using VIRTHOST=$VIRTHOST as target machine" >&2
|
||
fi
|
||
else
|
||
VIRTHOST=$1
|
||
fi
|
||
|
||
if [ $VIRTHOST == "127.0.0.1" ] || [ $VIRTHOST == "localhost" ]; then
|
||
echo "ERROR: Please use 127.0.0.2 to deploy to localhost" >&2
|
||
exit 2
|
||
fi
|
||
|
||
if [ "$#" -gt 2 ]; then
|
||
usage >&2
|
||
exit 2
|
||
fi
|
||
|
||
|
||
print_logo
|
||
echo "Installing OpenStack ${OPT_RELEASE:+"$OPT_RELEASE "}on host $VIRTHOST"
|
||
echo "Using directory $OPT_WORKDIR for a local working directory"
|
||
echo "Current run is logged in _quickstart.log file in current directory"
|
||
|
||
set -ex
|
||
|
||
activate_venv
|
||
|
||
export ANSIBLE_CONFIG=$OOOQ_DIR/ansible.cfg
|
||
export ANSIBLE_INVENTORY=$OPT_WORKDIR/hosts
|
||
export ANSIBLE_COLLECTIONS_PATHS="$OPT_WORKDIR/share/ansible/collections:~/.ansible/collections:/usr/share/ansible/collections"
|
||
export ARA_DATABASE="sqlite:///${OPT_WORKDIR}/ara.sqlite"
|
||
|
||
#set the ansible ssh.config options if not already set.
|
||
source $OOOQ_DIR/ansible_ssh_env.sh
|
||
|
||
if [ "$OPT_RETAIN_INVENTORY_FILE" = 0 -a -z "$OPT_LIST_TASKS_ONLY" ]; then
|
||
# Clear out inventory file to avoid tripping over data
|
||
# from a previous invocation
|
||
cat >$ANSIBLE_INVENTORY <<EOF
|
||
[localhost]
|
||
127.0.0.1 ansible_connection=local
|
||
EOF
|
||
fi
|
||
|
||
if [ "$OPT_DEBUG_ANSIBLE" = 1 ]; then
|
||
VERBOSITY=vvvv
|
||
else
|
||
VERBOSITY=vv
|
||
fi
|
||
|
||
if [ ! -f $OPT_WORKDIR/playbooks/$OPT_PLAYBOOK ]; then
|
||
printf "\n !! execute quickstart.sh --clean to ensure the dependencies are installed !!" >&2
|
||
exit 1
|
||
fi
|
||
|
||
ansible-playbook -$VERBOSITY $OPT_WORKDIR/playbooks/$OPT_PLAYBOOK \
|
||
-e @$OPT_WORKDIR/config/release/$OPT_RELEASE.yml \
|
||
-e @$OPT_NODES \
|
||
-e @$OPT_CONFIG \
|
||
${OPT_ENVIRONMENT[@]} \
|
||
-e local_working_dir=$OPT_WORKDIR \
|
||
${OPT_LIST_TASKS_ONLY} \
|
||
-e virthost=$VIRTHOST \
|
||
${OPT_VARS[@]} \
|
||
${OPT_TAGS:+-t $OPT_TAGS} \
|
||
${OPT_SKIP_TAGS:+--skip-tags $OPT_SKIP_TAGS}
|
||
|
||
# We only print out further usage instructions when using the default
|
||
# tags, since this is for new users (and not even applicable to some tags).
|
||
|
||
set +x
|
||
|
||
if ! [[ "overcloud-deploy" =~ .*$OPT_TAGS.* ]] && [[ $OPT_PLAYBOOK == quickstart-extras.yml ]]; then
|
||
|
||
cat <<EOF
|
||
##################################
|
||
Virtual Environment Setup Complete
|
||
##################################
|
||
|
||
Access the undercloud by:
|
||
|
||
ssh -F $OPT_WORKDIR/ssh.config.ansible undercloud
|
||
|
||
Follow the documentation in the link below to complete your deployment.
|
||
Note, by default only the undercloud has been installed.
|
||
|
||
https://docs.openstack.org/project-deploy-guide/tripleo-docs/latest/deployment/install_overcloud.html#upload-images
|
||
|
||
For fully automated deployments please refer to:
|
||
|
||
https://docs.openstack.org/tripleo-quickstart/latest/getting-started.html
|
||
|
||
TripleO's cheat sheet is available at:
|
||
|
||
http://superuser.openstack.org/articles/new-tripleo-quick-start-cheatsheet/
|
||
|
||
##################################
|
||
Virtual Environment Setup Complete
|
||
##################################
|
||
EOF
|
||
fi
|