diff options
Diffstat (limited to 'prototypes/xci/xci-deploy.sh')
-rwxr-xr-x | prototypes/xci/xci-deploy.sh | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/prototypes/xci/xci-deploy.sh b/prototypes/xci/xci-deploy.sh deleted file mode 100755 index d71125651..000000000 --- a/prototypes/xci/xci-deploy.sh +++ /dev/null @@ -1,213 +0,0 @@ -#!/bin/bash -set -o errexit -set -o nounset -set -o pipefail - -#------------------------------------------------------------------------------- -# This script should not be run as root -#------------------------------------------------------------------------------- -if [[ $(whoami) == "root" ]]; then - echo "WARNING: This script should not be run as root!" - echo "Elevated privileges are aquired automatically when necessary" - echo "Waiting 10s to give you a chance to stop the script (Ctrl-C)" - for x in $(seq 10 -1 1); do echo -n "$x..."; sleep 1; done -fi - -#------------------------------------------------------------------------------- -# Set environment variables -#------------------------------------------------------------------------------- -# The order of sourcing the variable files is significant so please do not -# change it or things might stop working. -# - user-vars: variables that can be configured or overriden by user. -# - pinned-versions: versions to checkout. These can be overriden if you want to -# use different/more recent versions of the tools but you might end up using -# something that is not verified by OPNFV XCI. -# - flavor-vars: settings for VM nodes for the chosen flavor. -# - env-vars: variables for the xci itself and you should not need to change or -# override any of them. -#------------------------------------------------------------------------------- -# find where are we -XCI_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -# source user vars -source $XCI_PATH/config/user-vars -# source pinned versions -source $XCI_PATH/config/pinned-versions -# source flavor configuration -source "$XCI_PATH/config/${XCI_FLAVOR}-vars" -# source xci configuration -source $XCI_PATH/config/env-vars - -#------------------------------------------------------------------------------- -# Sanitize local development environment variables -#------------------------------------------------------------------------------- -user_local_dev_vars=(OPNFV_RELENG_DEV_PATH OPNFV_OSA_DEV_PATH OPNFV_BIFROST_DEV_PATH) -for local_user_var in ${user_local_dev_vars[@]}; do - [[ -n ${!local_user_var:-} ]] && export $local_user_var=${!local_user_var%/}/ -done -unset user_local_dev_vars local_user_var - -#------------------------------------------------------------------------------- -# Log info to console -#------------------------------------------------------------------------------- -echo "Info: Starting XCI Deployment" -echo "Info: Deployment parameters" -echo "-------------------------------------------------------------------------" -echo "xci flavor: $XCI_FLAVOR" -echo "opnfv/releng version: $OPNFV_RELENG_VERSION" -echo "openstack/bifrost version: $OPENSTACK_BIFROST_VERSION" -echo "openstack/openstack-ansible version: $OPENSTACK_OSA_VERSION" -echo "-------------------------------------------------------------------------" - -#------------------------------------------------------------------------------- -# Install ansible on localhost -#------------------------------------------------------------------------------- -source file/install-ansible.sh - -# TODO: The xci playbooks can be put into a playbook which will be done later. - -#------------------------------------------------------------------------------- -# Start provisioning VM nodes -#------------------------------------------------------------------------------- -# This playbook -# - removes directories that were created by the previous xci run -# - clones opnfv/releng and openstack/bifrost repositories -# - combines opnfv/releng and openstack/bifrost scripts/playbooks -# - destorys VMs, removes ironic db, leases, logs -# - creates and provisions VMs for the chosen flavor -#------------------------------------------------------------------------------- -echo "Info: Starting provisining VM nodes using openstack/bifrost" -echo "-------------------------------------------------------------------------" -cd $XCI_PATH/playbooks -ansible-playbook $ANSIBLE_VERBOSITY -i inventory provision-vm-nodes.yml -echo "-----------------------------------------------------------------------" -echo "Info: VM nodes are provisioned!" -source $OPENSTACK_BIFROST_PATH/env-vars -ironic node-list -echo -#------------------------------------------------------------------------------- -# Configure localhost -#------------------------------------------------------------------------------- -# This playbook -# - removes directories that were created by the previous xci run -# - clones opnfv/releng repository -# - creates log directory -# - copies flavor files such as playbook, inventory, and var file -#------------------------------------------------------------------------------- -echo "Info: Configuring localhost for openstack-ansible" -echo "-----------------------------------------------------------------------" -cd $XCI_PATH/playbooks -ansible-playbook $ANSIBLE_VERBOSITY -i inventory configure-localhost.yml -echo "-----------------------------------------------------------------------" -echo "Info: Configured localhost host for openstack-ansible" - -#------------------------------------------------------------------------------- -# Configure openstack-ansible deployment host, opnfv -#------------------------------------------------------------------------------- -# This playbook -# - removes directories that were created by the previous xci run -# - clones opnfv/releng and openstack/openstack-ansible repositories -# - configures network -# - generates/prepares ssh keys -# - bootstraps ansible -# - copies flavor files to be used by openstack-ansible -#------------------------------------------------------------------------------- -echo "Info: Configuring opnfv deployment host for openstack-ansible" -echo "-----------------------------------------------------------------------" -cd $OPNFV_RELENG_PATH/prototypes/xci/playbooks -ansible-playbook $ANSIBLE_VERBOSITY -i inventory configure-opnfvhost.yml -echo "-----------------------------------------------------------------------" -echo "Info: Configured opnfv deployment host for openstack-ansible" - -#------------------------------------------------------------------------------- -# Skip the rest if the flavor is aio since the target host for aio is opnfv -#------------------------------------------------------------------------------- -if [[ $XCI_FLAVOR == "aio" ]]; then - echo "xci: aio has been installed" - exit 0 -fi - -#------------------------------------------------------------------------------- -# Configure target hosts for openstack-ansible -#------------------------------------------------------------------------------- -# This playbook -# - adds public keys to target hosts -# - configures network -# - configures nfs -#------------------------------------------------------------------------------- -echo "Info: Configuring target hosts for openstack-ansible" -echo "-----------------------------------------------------------------------" -cd $OPNFV_RELENG_PATH/prototypes/xci/playbooks -ansible-playbook $ANSIBLE_VERBOSITY -i inventory configure-targethosts.yml -echo "-----------------------------------------------------------------------" -echo "Info: Configured target hosts" - -#------------------------------------------------------------------------------- -# Set up target hosts for openstack-ansible -#------------------------------------------------------------------------------- -# This is openstack-ansible playbook. Check upstream documentation for details. -#------------------------------------------------------------------------------- -echo "Info: Setting up target hosts for openstack-ansible" -echo "-----------------------------------------------------------------------" -ssh root@$OPNFV_HOST_IP "openstack-ansible \ - $OPENSTACK_OSA_PATH/playbooks/setup-hosts.yml" | \ - tee $LOG_PATH/setup-hosts.log -echo "-----------------------------------------------------------------------" -# check the log to see if we have any error -if grep -q 'failed=1\|unreachable=1' $LOG_PATH/setup-hosts.log; then - echo "Error: OpenStack node setup failed!" - exit 1 -fi -echo "Info: Set up target hosts for openstack-ansible successfuly" - -#------------------------------------------------------------------------------- -# Set up infrastructure -#------------------------------------------------------------------------------- -# This is openstack-ansible playbook. Check upstream documentation for details. -#------------------------------------------------------------------------------- -echo "Info: Setting up infrastructure" -echo "-----------------------------------------------------------------------" -echo "xci: running ansible playbook setup-infrastructure.yml" -ssh root@$OPNFV_HOST_IP "openstack-ansible \ - $OPENSTACK_OSA_PATH/playbooks//setup-infrastructure.yml" | \ - tee $LOG_PATH/setup-infrastructure.log -echo "-----------------------------------------------------------------------" -# check the log to see if we have any error -if grep -q 'failed=1\|unreachable=1' $LOG_PATH/setup-infrastructure.log; then - echo "Error: OpenStack node setup failed!" - exit 1 -fi - -#------------------------------------------------------------------------------- -# Verify database cluster -#------------------------------------------------------------------------------- -echo "Info: Verifying database cluster" -echo "-----------------------------------------------------------------------" -ssh root@$OPNFV_HOST_IP "ansible -i $OPENSTACK_OSA_PATH/playbooks/inventory/ \ - galera_container -m shell \ - -a "mysql -h localhost -e 'show status like \"%wsrep_cluster_%\";'"" \ - | tee $LOG_PATH/galera.log -echo "-----------------------------------------------------------------------" -# check the log to see if we have any error -if grep -q 'FAILED' $LOG_PATH/galera.log; then - echo "Error: Database cluster verification failed!" - exit 1 -fi -echo "Info: Database cluster verification successful!" - -#------------------------------------------------------------------------------- -# Install OpenStack -#------------------------------------------------------------------------------- -# This is openstack-ansible playbook. Check upstream documentation for details. -#------------------------------------------------------------------------------- -echo "Info: Installing OpenStack on target hosts" -echo "-----------------------------------------------------------------------" -ssh root@$OPNFV_HOST_IP "openstack-ansible \ - $OPENSTACK_OSA_PATH/playbooks/setup-openstack.yml" | \ - tee $LOG_PATH/opnfv-setup-openstack.log -echo "-----------------------------------------------------------------------" -# check the log to see if we have any error -if grep -q 'failed=1\|unreachable=1' $LOG_PATH/opnfv-setup-openstack.log; then - echo "Error: OpenStack installation failed!" - exit 1 -fi -echo "Info: OpenStack installation is successfully completed!" |