#!/usr/bin/env bash set -eux set -o pipefail export ANSIBLE_NOCOLOR=1 LOCAL_WORKING_DIR="/home/zuul/workspace/.quickstart" WORKING_DIR="$HOME" LOGS_DIR=/home/zuul/workspace/logs source /home/zuul/src/opendev.org/openstack/tripleo-ci/scripts/oooq_common_functions.sh ## Signal to toci_gate_test.sh we've started by touch /tmp/toci.started export DEFAULT_ARGS="--extra-vars local_working_dir=$LOCAL_WORKING_DIR \ --extra-vars virthost=127.0.0.2 \ --inventory $LOCAL_WORKING_DIR/hosts \ --extra-vars tripleo_root=/home/zuul/src/opendev.org/openstack \ --extra-vars working_dir=$WORKING_DIR \ --skip-tags "tripleo-validations,teardown-all" \ " # --install-deps arguments installs deps and then quits, no other arguments are # processed. QUICKSTART_PREPARE_CMD=" ./quickstart.sh --install-deps " QUICKSTART_VENV_CMD=" ./quickstart.sh --bootstrap --no-clone --working-dir $LOCAL_WORKING_DIR --playbook noop.yml --retain-inventory 127.0.0.2 " #REMOVE build from --skip-tags ASAP QUICKSTART_INSTALL_CMD=" $LOCAL_WORKING_DIR/bin/ansible-playbook --tags build,undercloud-setup,undercloud-scripts,undercloud-install,undercloud-post-install,tripleo-validations,overcloud-scripts,overcloud-prep-config,overcloud-prep-containers,overcloud-deploy,overcloud-post-deploy,overcloud-validate " export QUICKSTART_DEFAULT_RELEASE_ARG="--extra-vars @$LOCAL_WORKING_DIR/config/release/tripleo-ci/CentOS-7/$QUICKSTART_RELEASE.yml" QUICKSTART_COLLECTLOGS_CMD="$LOCAL_WORKING_DIR/bin/ansible-playbook \ $LOCAL_WORKING_DIR/playbooks/collect-logs.yml \ -vvvv \ $QUICKSTART_DEFAULT_RELEASE_ARG \ --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-quickstart/config/general_config/featureset-multinode-common.yml --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-quickstart/config/general_config/featureset030.yml \ --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-ci/toci-quickstart/config/testenv/multinode.yml --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-ci/toci-quickstart/config/testenv/multinode-vexxhost.yml \ --extra-vars @/home/zuul/workspace/logs/role-vars.yaml \ \ $DEFAULT_ARGS \ --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-ci/toci-quickstart/config/collect-logs.yml \ --extra-vars artcl_collect_dir=$LOGS_DIR \ --extra-vars @/home/zuul/workspace/logs/zuul-variables.yaml \ --extra-vars @/home/zuul/workspace/logs/hostvars-variables.yaml \ --tags all \ " declare -A RELEASE_ARGS=() if [[ -f "$RELEASES_FILE_OUTPUT" ]]; then source $RELEASES_FILE_OUTPUT declare -A RELEASE_ARGS=( ["multinode-undercloud.yml"]=$(get_extra_vars_from_release \ $UNDERCLOUD_INSTALL_RELEASE $UNDERCLOUD_INSTALL_HASH) ["multinode-undercloud-upgrade.yml"]=$(get_extra_vars_from_release \ $UNDERCLOUD_TARGET_RELEASE $UNDERCLOUD_TARGET_HASH) ["multinode-overcloud-prep.yml"]=$(get_extra_vars_from_release \ $OVERCLOUD_DEPLOY_RELEASE $OVERCLOUD_DEPLOY_HASH) ["multinode-overcloud.yml"]=$(get_extra_vars_from_release \ $OVERCLOUD_DEPLOY_RELEASE $OVERCLOUD_DEPLOY_HASH) ["multinode-overcloud-update.yml"]=$(get_extra_vars_from_release \ $OVERCLOUD_DEPLOY_RELEASE $OVERCLOUD_DEPLOY_HASH) ["multinode-overcloud-upgrade.yml"]=$(get_extra_vars_from_release \ $OVERCLOUD_TARGET_RELEASE $OVERCLOUD_TARGET_HASH) ["multinode-validate.yml"]=$(get_extra_vars_from_release \ $OVERCLOUD_TARGET_RELEASE $OVERCLOUD_TARGET_HASH) ["multinode-standalone.yml"]=$(get_extra_vars_from_release \ $STANDALONE_DEPLOY_RELEASE $STANDALONE_DEPLOY_HASH \ $STANDALONE_DEPLOY_NEWEST_HASH) ["multinode-standalone-upgrade.yml"]=$(get_extra_vars_from_release \ $STANDALONE_TARGET_RELEASE $STANDALONE_TARGET_HASH \ $STANDALONE_TARGET_NEWEST_HASH) ) fi declare -A PLAYBOOKS_ARGS=( ["baremetal-full-overcloud.yml"]=" --extra-vars validation_args='--validation-errors-nonfatal' " ["multinode-overcloud.yml"]=" --extra-vars validation_args='--validation-errors-nonfatal' " ["multinode.yml"]=" --extra-vars validation_args='--validation-errors-nonfatal' " ) mkdir -p $LOCAL_WORKING_DIR # TODO(gcerami) parametrize hosts cp /home/zuul/src/opendev.org/openstack/tripleo-ci/toci-quickstart/config/testenv/osinfra_hosts $LOCAL_WORKING_DIR/hosts pushd /home/zuul/src/opendev.org/openstack/tripleo-quickstart/ $QUICKSTART_PREPARE_CMD $QUICKSTART_VENV_CMD # Only ansible-playbook command will be used from this point forward, so we # need some variables from quickstart.sh OOOQ_DIR=/home/zuul/src/opendev.org/openstack/tripleo-quickstart/ export OPT_WORKDIR=$LOCAL_WORKING_DIR export ANSIBLE_CONFIG=$OOOQ_DIR/ansible.cfg export ANSIBLE_COLLECTIONS_PATHS="$OPT_WORKDIR/share/ansible/collections:~/.ansible/collections:/usr/share/ansible/collections" export ARA_DATABASE="sqlite:///${LOCAL_WORKING_DIR}/ara.sqlite" export VIRTUAL_ENV_DISABLE_PROMPT=1 # Workaround for virtualenv issue https://github.com/pypa/virtualenv/issues/1029 set +u source $LOCAL_WORKING_DIR/bin/activate set -u source $OOOQ_DIR/ansible_ssh_env.sh # Debug step capture env variables echo "-- Playbooks Output --------------------------" for playbook in quickstart.yml multinode-undercloud.yml multinode-overcloud-prep.yml multinode-overcloud.yml multinode-overcloud-update.yml multinode-overcloud-upgrade.yml multinode-validate.yml; do echo "$QUICKSTART_INSTALL_CMD \ ${RELEASE_ARGS[$playbook]:=$QUICKSTART_DEFAULT_RELEASE_ARG} \ --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-quickstart/config/nodes/1ctlr.yml \ --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-quickstart/config/general_config/featureset-multinode-common.yml --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-quickstart/config/general_config/featureset030.yml \ --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-ci/toci-quickstart/config/testenv/multinode.yml --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-ci/toci-quickstart/config/testenv/multinode-vexxhost.yml \ --extra-vars @/home/zuul/workspace/logs/role-vars.yaml \ \ -e toci_vxlan_networking='false' -e vxlan_networking='false' \ $DEFAULT_ARGS \ $LOCAL_WORKING_DIR/playbooks/$playbook ${PLAYBOOKS_ARGS[$playbook]:-}" \ --extra-vars @/home/zuul/workspace/logs/zuul-variables.yaml \ --extra-vars @/home/zuul/workspace/logs/hostvars-variables.yaml \ | sed 's/--/\n--/g' \ | tee -a $LOGS_DIR/playbook_executions.log echo "# --------------------------------------- " \ | tee -a $LOGS_DIR/playbook_executions.log done ## LOGS COLLECTION PREPARE create_collect_logs_script for playbook in quickstart.yml multinode-undercloud.yml multinode-overcloud-prep.yml multinode-overcloud.yml multinode-overcloud-update.yml multinode-overcloud-upgrade.yml multinode-validate.yml; do echo ${RELEASE_ARGS[$playbook]:=$QUICKSTART_DEFAULT_RELEASE_ARG} $QUICKSTART_INSTALL_CMD \ ${RELEASE_ARGS[$playbook]:=$QUICKSTART_DEFAULT_RELEASE_ARG} \ --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-quickstart/config/nodes/1ctlr.yml \ --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-quickstart/config/general_config/featureset-multinode-common.yml --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-quickstart/config/general_config/featureset030.yml \ --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-ci/toci-quickstart/config/testenv/multinode.yml --extra-vars @/home/zuul/src/opendev.org/openstack/tripleo-ci/toci-quickstart/config/testenv/multinode-vexxhost.yml \ --extra-vars @/home/zuul/workspace/logs/role-vars.yaml \ \ -e toci_vxlan_networking='false' -e vxlan_networking='false' \ $DEFAULT_ARGS \ --extra-vars @/home/zuul/workspace/logs/zuul-variables.yaml \ --extra-vars @/home/zuul/workspace/logs/hostvars-variables.yaml \ $LOCAL_WORKING_DIR/playbooks/$playbook ${PLAYBOOKS_ARGS[$playbook]:-} \ 2>&1 | tee -a $LOGS_DIR/quickstart_install.log && exit_value=0 || exit_value=$? # Print status of playbook run [[ "$exit_value" == 0 ]] && echo "Playbook run of $playbook passed successfully" [[ "$exit_value" != 0 ]] && echo "Playbook run of $playbook failed" && break done [[ "$exit_value" == 0 ]] && echo "Playbook run passed successfully" || echo "Playbook run failed" echo 'Quickstart completed.' exit $exit_value