summaryrefslogtreecommitdiffstats
path: root/openstack-ansible/scripts/osa-deploy.sh
diff options
context:
space:
mode:
authorFatih Degirmenci <fatih.degirmenci@ericsson.com>2017-03-22 11:29:21 +0100
committerTrevor Bramwell <tbramwell@linuxfoundation.org>2017-08-11 12:56:12 -0700
commit47b0110092496d8aa00846749d8252b6ccb9a12c (patch)
tree7c7cda523acd8d9d16c2558a12d93a659325aa9b /openstack-ansible/scripts/osa-deploy.sh
parent5c5c1e744412f628a0d49adff80ddbcdaad1b0dc (diff)
xci: Logging, naming, and job updates
- adjust build blockers in daily jobs. - explicity set SLAVE_LABEL for provision, deploy, and functest jobs so they run on correct nodes even if they are started manually. - rename files and update scripts accordingly. osa_deploy.sh -> osa-deploy.sh targethost_configuration.yml -> configure-targethosts.yml jumphost_configuration.yml -> configure-xcimaster.yml - add/fix console logging in osa-deploy.sh. - add license header to osa-deploy.sh. Change-Id: I57a37dccaa4bcda554ef79969e5d288b49937807 Signed-off-by: Fatih Degirmenci <fatih.degirmenci@ericsson.com>
Diffstat (limited to 'openstack-ansible/scripts/osa-deploy.sh')
-rwxr-xr-xopenstack-ansible/scripts/osa-deploy.sh133
1 files changed, 133 insertions, 0 deletions
diff --git a/openstack-ansible/scripts/osa-deploy.sh b/openstack-ansible/scripts/osa-deploy.sh
new file mode 100755
index 00000000..d30cf1b7
--- /dev/null
+++ b/openstack-ansible/scripts/osa-deploy.sh
@@ -0,0 +1,133 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+set -o errexit
+set -o nounset
+set -o pipefail
+
+export OSA_PATH=/opt/openstack-ansible
+export LOG_PATH=$OSA_PATH/log
+export PLAYBOOK_PATH=$OSA_PATH/playbooks
+export OSA_BRANCH=${OSA_BRANCH:-"master"}
+XCIMASTER_IP="192.168.122.2"
+
+sudo /bin/rm -rf $LOG_PATH
+sudo /bin/mkdir -p $LOG_PATH
+sudo /bin/cp /root/.ssh/id_rsa.pub ../file/authorized_keys
+echo -e '\n' | sudo tee --append ../file/authorized_keys
+
+# log some info
+echo -e "\n"
+echo "***********************************************************************"
+echo "* *"
+echo "* Configure XCI Master *"
+echo "* *"
+echo "* Bootstrap xci-master, configure network, clone openstack-ansible *"
+echo "* *"
+echo "***********************************************************************"
+echo -e "\n"
+
+cd ../playbooks/
+# this will prepare the jump host
+# git clone the Openstack-Ansible, bootstrap and configure network
+sudo -E ansible-playbook -i inventory configure-xcimaster.yml
+
+echo "XCI Master is configured successfully!"
+
+# log some info
+echo -e "\n"
+echo "***********************************************************************"
+echo "* *"
+echo "* Configure Nodes *"
+echo "* *"
+echo "* Configure network on OpenStack Nodes, configure NFS *"
+echo "* *"
+echo "***********************************************************************"
+echo -e "\n"
+
+# this will prepare the target host
+# such as configure network and NFS
+sudo -E ansible-playbook -i inventory configure-targethosts.yml
+
+echo "Nodes are configured successfully!"
+
+# log some info
+echo -e "\n"
+echo "***********************************************************************"
+echo "* *"
+echo "* Set Up OpenStack Nodes *"
+echo "* *"
+echo "* Set up OpenStack Nodes using openstack-ansible *"
+echo "* *"
+echo "***********************************************************************"
+echo -e "\n"
+
+# using OpenStack-Ansible deploy the OpenStack
+
+sudo -E /bin/sh -c "ssh root@$XCIMASTER_IP openstack-ansible \
+ $PLAYBOOK_PATH/setup-hosts.yml" | \
+ tee $LOG_PATH/setup-host.log
+
+#check the result of openstack-ansible setup-hosts.yml
+#if failed, exit with exit code 1
+grep "failed=1" $LOG_PATH/setup-host.log>/dev/null \
+ || grep "unreachable=1" $LOG_PATH/setup-host.log>/dev/null
+if [ $? -eq 0 ]; then
+ echo "OpenStack node setup failed!"
+ exit 1
+fi
+
+sudo -E /bin/sh -c "ssh root@$XCIMASTER_IP openstack-ansible \
+ $PLAYBOOK_PATH/setup-infrastructure.yml" | \
+ tee $LOG_PATH/setup-infrastructure.log
+
+grep "failed=1" $LOG_PATH/setup-infrastructure.log>/dev/null \
+ || grep "unreachable=1" $LOG_PATH/setup-infrastructure.log>/dev/null
+if [ $? -eq 0 ]; then
+ echo "failed setup infrastructure!"
+ exit 1
+fi
+
+echo "OpenStack nodes are setup successfully!"
+
+sudo -E /bin/sh -c "ssh root@$XCIMASTER_IP ansible -i $PLAYBOOK_PATH/inventory/ \
+ galera_container -m shell \
+ -a "mysql -h localhost -e 'show status like \"%wsrep_cluster_%\";'"" \
+ | tee $LOG_PATH/galera.log
+
+grep "FAILED" $LOG_PATH/galera.log>/dev/null
+if [ $? -eq 0 ]; then
+ echo "Database cluster verification failed!"
+ exit 1
+else
+ echo "Database cluster verification successful!"
+fi
+
+# log some info
+echo -e "\n"
+echo "***********************************************************************"
+echo "* *"
+echo "* Install OpenStack *"
+echo "* *"
+echo "***********************************************************************"
+echo -e "\n"
+
+sudo -E /bin/sh -c "ssh root@$XCIMASTER_IP openstack-ansible \
+ $PLAYBOOK_PATH/setup-openstack.yml" | \
+ tee $LOG_PATH/setup-openstack.log
+
+grep "failed=1" $LOG_PATH/setup-openstack.log>/dev/null \
+ || grep "unreachable=1" $LOG_PATH/setup-openstack.log>/dev/null
+if [ $? -eq 0 ]; then
+ echo "OpenStack installation failed!"
+ exit 1
+else
+ echo "OpenStack installation is successfully completed!"
+ exit 0
+fi