diff options
Diffstat (limited to 'ci/deploy-opnfv-compass-ubuntu.sh')
-rw-r--r-- | ci/deploy-opnfv-compass-ubuntu.sh | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/ci/deploy-opnfv-compass-ubuntu.sh b/ci/deploy-opnfv-compass-ubuntu.sh new file mode 100644 index 0000000..efccf78 --- /dev/null +++ b/ci/deploy-opnfv-compass-ubuntu.sh @@ -0,0 +1,201 @@ +#!/usr/bin/env bash + +# /usr/bin/env bash or /bin/bash ? /usr/bin/env bash is more environment-independent +# beware of files which were edited in Windows, and have invisible \r end-of-line characters, causing Linux errors + +############################################################################## +# Copyright (c) 2018 Wipro Limited 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 +############################################################################## + +# OPNFV contribution guidelines Wiki page: +# https://wiki.opnfv.org/display/DEV/Contribution+Guidelines + +# OPNFV/Auto project: +# https://wiki.opnfv.org/pages/viewpage.action?pageId=12389095 + + +# localization control: force script to use default language for output, and force sorting to be bytewise +# ("C" is from C language, represents "safe" locale everywhere) +# (result: the script will consider only basic ASCII characters and disable UTF-8 multibyte match) +export LANG=C +export LC_ALL=C + +################################################################################# +## installation of OpenStack via OPNFV Compass4nfv, on Ubuntu, virtual deployment +################################################################################# +# reference manual: https://docs.opnfv.org/en/latest/submodules/compass4nfv/docs/release/installation/index.html +# page for virtual deployment: https://docs.opnfv.org/en/latest/submodules/compass4nfv/docs/release/installation/vmdeploy.html + +echo "*** begin AUTO install: OPNFV Compass4nfv" + +# prepare install directory +export INSTALLDIR=/opt/opnfv-compass +mkdir -p $INSTALLDIR +cd $INSTALLDIR + +# premptively install latest pip and clear $PATH cache +# with apt-get (see apt-get -h and man apt-get for details) +apt-get -y update +apt-get -y upgrade +apt-get -y install python-pip +pip install --upgrade pip +hash -r +apt-get -y install python3-openstackclient +apt-get -y autoremove + +## note: apt is more recent than apt-get (apt was formally introduced with Ubuntu 16.04) +## APT: Advanced Packaging Tool; apt is more high-level, apt-get has more features; +# apt -y update # Refreshes repository index +# apt -y full-upgrade # Upgrades packages with auto-handling of dependencies +# apt -y install python-pip +# pip install --upgrade pip +# hash -r +# apt -y install python3-openstackclient +# apt -y autoremove + + +# 2 options: (option 1 is preferable) +# 1) remain in master branch, use build.sh (which builds a tar ball), then launch deploy.sh +# 2) download a tar ball and launch deploy.sh in a branch matching the tar ball release (e.g. fraser 6.2) + + +############## +# OPTION 1: build.sh + deploy.sh in master branch + +# retrieve the repository of Compass4nfv code (this creates a compass4nfv subdir in the installation directory), current master branch +echo "*** begin download Compass4nfv repository" +git clone https://gerrit.opnfv.org/gerrit/compass4nfv +cd compass4nfv + +# launch build script +echo "*** begin Compass4nfv build:" +./build.sh |& tee log1-Build.txt + +# edit in deploy.sh specific to OPTION 1 +# set path to ISO file (tar ball), as built by build.sh previously +# absolute path to tar ball file URL (MUST be absolute path) +sed -i '/#export TAR_URL=/a export TAR_URL=file:///opt/opnfv-compass/compass4nfv/work/building/compass.tar.gz' deploy.sh + +# END OPTION 1 +############## + + +############## +# OPTION 2: tar ball + deploy.sh in matching releases/branches + +# download tarball of a certain release/version +#echo "*** begin download Compass4nfv tar ball" +#wget http://artifacts.opnfv.org/compass4nfv/fraser/opnfv-6.2.tar.gz +# note: list of tar ball (ISO) files from Compass4NFV in https://artifacts.opnfv.org/compass4nfv.html + +# retrieve the repository of Compass4nfv code (this creates a compass4nfv subdir in the installation directory), current master branch +#echo "*** begin download Compass4nfv repository" +#git clone https://gerrit.opnfv.org/gerrit/compass4nfv +#cd compass4nfv +# note: list of compass4nfv branch names in https://gerrit.opnfv.org/gerrit/#/admin/projects/compass4nfv,branches +# checkout to branch (or tag) matching the tarball release +#git checkout stable/fraser + +# edit in deploy.sh specific to OPTION 2 +# set path to ISO file (tar ball), as downloaded previously +# absolute path to tar ball file URL (MUST be absolute path) +# sed -i '/#export TAR_URL=/a export TAR_URL=file:///opt/opnfv-compass/opnfv-6.2.tar.gz' deploy.sh + +# END OPTION 2 +############## + + +# edit remaining deploy.sh entries as needed + +# set operating system version: Ubuntu Xenial Xerus +sed -i '/#export OS_VERSION=xenial\/centos7/a export OS_VERSION=xenial' deploy.sh + +# set path to OPNFV scenario / DHA (Deployment Hardware Adapter) YAML file +# here, os-nosdn-nofeature-noha scenario +sed -i '/#export DHA=/a export DHA=/opt/opnfv-compass/compass4nfv/deploy/conf/vm_environment/os-nosdn-nofeature-noha.yml' deploy.sh + +# set path to network YAML file +sed -i '/#export NETWORK=/a export NETWORK=/opt/opnfv-compass/compass4nfv/deploy/conf/vm_environment/network.yml' deploy.sh + +# append parameters for virtual machines (for virtual deployments); e.g., 2 nodes for NOHA scenario, 5 for HA, etc. +# note: this may not be needed in a future release of Compass4nfv + +# VIRT_NUMBER – the number of nodes for virtual deployment. +# VIRT_CPUS – the number of CPUs allocated per virtual machine. +# VIRT_MEM – the memory size (MB) allocated per virtual machine. +# VIRT_DISK – the disk size allocated per virtual machine. + +# if OPTION 1 (master): OPENSTACK_VERSION is queens, so add the VIRT_NUMBER line after the queens match +#sed -i '/export OPENSTACK_VERSION=queens/a export VIRT_DISK=200G' deploy.sh +#sed -i '/export OPENSTACK_VERSION=queens/a export VIRT_MEM=16384' deploy.sh +#sed -i '/export OPENSTACK_VERSION=queens/a export VIRT_CPUS=4' deploy.sh +sed -i '/export OPENSTACK_VERSION=queens/a export VIRT_NUMBER=2' deploy.sh + +# if OPTION 2 (stable/fraser): OPENSTACK_VERSION is pike, so add the VIRT_NUMBER line after the pike match +#sed -i '/export OPENSTACK_VERSION=pike/a export VIRT_DISK=200G' deploy.sh +#sed -i '/export OPENSTACK_VERSION=pike/a export VIRT_MEM=16384' deploy.sh +#sed -i '/export OPENSTACK_VERSION=pike/a export VIRT_CPUS=4' deploy.sh +#sed -i '/export OPENSTACK_VERSION=pike/a export VIRT_NUMBER=5' deploy.sh + + +# launch deploy script +echo "*** begin Compass4nfv deploy:" +./deploy.sh |& tee log2-Deploy.txt + + + + +# To access OpenStack Horizon GUI in Virtual deployment +# source: https://wiki.opnfv.org/display/compass4nfv/Containerized+Compass + +# confirm IP@ of the current server (jump server, such as 10.10.100.xyz on LaaS: 10.10.100.42 for hpe32, etc.) +external_nic=$(ip route |grep '^default'|awk '{print $5F}') +echo "external_nic: $external_nic" +ip addr show "$external_nic" + +# Config IPtables rules: pick an unused port number, e.g. 50000+machine number, 50032 for hpe32 at 10.10.100.42 +# 192.16.1.222:443 is the OpenStack Horizon GUI after a Compass installation +# syntax: iptables -t nat -A PREROUTING -d $EX_IP -p tcp --dport $PORT -j DNAT --to 192.16.1.222:443 +# (note: this could be automated: retrieve IP@, pick port number) + +# example: hpe15 +# iptables -t nat -A PREROUTING -d 10.10.100.25 -p tcp --dport 50015 -j DNAT --to 192.16.1.222:443 +# example: hpe33 +# iptables -t nat -A PREROUTING -d 10.10.100.43 -p tcp --dport 50033 -j DNAT --to 192.16.1.222:443 + +# display IPtables NAT rules +iptables -t nat -L + +# Enter https://$EX_IP:$PORT in you browser to visit the OpenStack Horizon dashboard +# examples: https://10.10.100.25:50015 , https://10.10.100.43:50033 +# The default user is "admin" +# to get the Horizon password for "admin": +sudo docker cp compass-tasks:/opt/openrc ./ +sudo cat openrc | grep OS_PASSWORD +source ./openrc + +# for OpenStack CLI (generic content from openrc) +export OS_ENDPOINT_TYPE=publicURL +export OS_INTERFACE=publicURL +export OS_USERNAME=admin +export OS_PROJECT_NAME=admin +export OS_TENANT_NAME=admin +export OS_AUTH_URL=https://192.16.1.222:5000/v3 +export OS_NO_CACHE=1 +export OS_USER_DOMAIN_NAME=Default +export OS_PROJECT_DOMAIN_NAME=Default +export OS_REGION_NAME=RegionOne + +# For openstackclient +export OS_IDENTITY_API_VERSION=3 +export OS_AUTH_VERSION=3 + + + +echo "*** end AUTO install: OPNFV Compass4nfv" + |