From 5e03d0157a4efaa00ebd86449b26cf485819f72e Mon Sep 17 00:00:00 2001 From: Gerard Damm Date: Tue, 7 Aug 2018 19:30:57 -0500 Subject: first draft of 3 installers for Auto JIRA: AUTO-42 JIRA: AUTO-43 JIRA: AUTO-46 JIRA: AUTO-50 a) Moved 3 scripts (Fuel/MCP, Compass4nfv, Apex/TripleO) from Auto Wiki pages to Auto repository. Did some cross-script alignment. Host folder in repository is: auto/ci. Abandoned JOID script: JOID seems to be unsupported after Fraser. b) Further fixes to these scripts can now be done in the Auto repository (not in Wiki), and inclusion in Auto CI jobs can also be tested. c) File names might be revisited, to account for variants: CPU, OS, scenario (openstack/kubernetes, HA/NOHA), size configs (vCPUs, RAM), etc. Or explore having these parameters as script parameters, maybe collapsing all scripts into one, where the installer would also be a script parameter. d) This batch of scripts is for x86 architectures; future versions/additions will cover Arm architectures; e1) Fuel/MCP script works (Fuel@x86) e2) Compass script works (x86, virtual deploy, NOHA) e3) Apex works on 2nd attempt; first attempt still has issues on blank servers (due to undocumented initial setup steps, causing errors which don't happen on servers where several tools and packages have already been installed). raised ticket on Apex: https://jira.opnfv.org/browse/APEX-633 f) scripts all pass the shellcheck tool Change-Id: Ib9a393bcc6f94ec8be82d5d2d4c9c194a018c0f7 Signed-off-by: Gerard Damm --- ci/deploy-opnfv-apex-centos.sh | 209 ++++++++++++++++++++++++++++++++++++++ ci/deploy-opnfv-compass-ubuntu.sh | 201 ++++++++++++++++++++++++++++++++++++ ci/deploy-opnfv-fuel-ubuntu.sh | 199 ++++++++++++++++++++++++++++++++++++ 3 files changed, 609 insertions(+) create mode 100644 ci/deploy-opnfv-apex-centos.sh create mode 100644 ci/deploy-opnfv-compass-ubuntu.sh create mode 100644 ci/deploy-opnfv-fuel-ubuntu.sh (limited to 'ci') diff --git a/ci/deploy-opnfv-apex-centos.sh b/ci/deploy-opnfv-apex-centos.sh new file mode 100644 index 0000000..a3a0433 --- /dev/null +++ b/ci/deploy-opnfv-apex-centos.sh @@ -0,0 +1,209 @@ +#!/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 Apex/TripleO, on CentOS, virtual deployment +################################################################################## +# reference manual: https://docs.opnfv.org/en/latest/submodules/apex/docs/release/installation/index.html +# page for virtual deployment: https://docs.opnfv.org/en/latest/submodules/apex/docs/release/installation/virtual.html + +echo "*** begin AUTO install: OPNFV Apex/TripleO" + +# check OS version +echo "*** print OS version (must be CentOS, version 7 or more)" +cat /etc/*release + +# Manage Nested Virtualization +echo "*** ensure Nested Virtualization is enabled on Intel x86" +echo "*** nested flag before:" +cat /sys/module/kvm_intel/parameters/nested +rm -f /etc/modprobe.d/kvm-nested.conf +{ printf "options kvm-intel nested=1\n";\ + printf "options kvm-intel enable_shadow_vmcs=1\n";\ + printf "options kvm-intel enable_apicv=1\n";\ + printf "options kvm-intel ept=1\n"; } >> /etc/modprobe.d/kvm-nested.conf +sudo modprobe -r kvm_intel +sudo modprobe -a kvm_intel +echo "*** nested flag after:" +cat /sys/module/kvm_intel/parameters/nested + +echo "*** verify status of modules in the Linux Kernel: kvm_intel module should be loaded for x86_64 machines" +lsmod | grep kvm_ +grep kvm_ < /proc/modules + +# 3 additional pre-installation preparations, lifted from OPNFV/storperf (they are post-installation there): +# https://wiki.opnfv.org/display/storperf/LaaS+Setup+For+Development#LaaSSetupForDevelopment-InstallOPNFVApex +# (may of may not be needed, to enable first-time Apex installation on blank server) + +# 1) Install Docker +sudo yum install -y yum-utils device-mapper-persistent-data lvm2 +sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo +sudo yum install -y docker-ce +sudo systemctl start docker + +# 2) Install docker-compose +sudo curl -L "https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +sudo chmod +x /usr/local/bin/docker-compose + +# 3) Install Python +sudo yum install -y python-virtualenv +sudo yum groupinstall -y "Development Tools" +sudo yum install -y openssl-devel + + +# update everything (upgrade: riskier than update, as packages supposed to be unused will be deleted) +# (note: can take several minutes; may not be necessary) +sudo yum -y update + + +# download Apex packages +echo "*** downloading packages:" +sudo yum -y install https://repos.fedorapeople.org/repos/openstack/openstack-pike/rdo-release-pike-1.noarch.rpm +sudo yum -y install epel-release +# note: EPEL = Extra Packages for Enterprise Linux +sudo curl -o /etc/yum.repos.d/opnfv-apex.repo http://artifacts.opnfv.org/apex/fraser/opnfv-apex.repo + +# install three required RPMs (RedHat/RPM Package Managers); this takes several minutes +sudo yum -y install http://artifacts.opnfv.org/apex/fraser/opnfv-apex-6.2.noarch.rpm http://artifacts.opnfv.org/apex/fraser/opnfv-apex-undercloud-6.2.noarch.rpm http://artifacts.opnfv.org/apex/fraser/opnfv-apex-python34-6.2.noarch.rpm + +# clean-up old Apex versions if any +## precautionary opnfv-clean doesn't work... (even though packages are installed at this point) +opnfv-clean + +# Manage DNS references +# probably not needed on an already configured server: already has DNS references +# echo "nameserver 8.8.8.8" >> /etc/resolv.conf +echo "*** printout of /etc/resolv.conf :" +cat /etc/resolv.conf + +# prepare installation directory +mkdir -p /opt/opnfv-TripleO-apex +cd /opt/opnfv-TripleO-apex + +# make sure cp is not aliased or a function; same for mv and rm +unalias cp +unset -f cp +unalias mv +unset -f mv +unalias rm +unset -f rm + +# 2 YAML files from /etc/opnfv-apex/ are needed for virtual deploys: +# 1) network_settings.yaml : may need to update NIC names, to match the NIC names on the deployment server +# 2) standard scenario file (os-nosdn-nofeature-noha.yaml, etc.), or customized deploy_settings.yaml + +# make a local copy of YAML files (not necessary: could deploy from /etc/opnfv-apex); local copies are just for clarity +# 1) network settings +cp /etc/opnfv-apex/network_settings.yaml . +# 2) deploy settings +# copy one of the 40+ pre-defined scenarios (one of the YAML files) +# for extra customization, git clone Apex repo, and copy and customize the generic deploy_settings.yaml +# git clone https://git.opnfv.org/apex +# cp ./apex/config/deploy/deploy_settings.yaml . +cp /etc/opnfv-apex/os-nosdn-nofeature-noha.yaml ./deploy_settings.yaml +# cp /etc/opnfv-apex/os-nosdn-nofeature-ha.yaml ./deploy_settings.yaml + +# Note: content of os-nosdn-nofeature-noha.yaml +# --- +# global_params: +# ha_enabled: false +# +# deploy_options: +# sdn_controller: false +# tacker: true +# congress: true +# sfc: false +# vpn: false + + +# modify NIC names in network settings YAML file, specific to your environment (e.g. replace em1 with ens4f0 in LaaS) +# Note: actually, this should not matter for a virtual environment +sed -i 's/em1/ens4f0/' network_settings.yaml + +# launch deploy (works if openvswitch module is installed, which may not be the case the first time around) +echo "*** deploying OPNFV by TripleO/Apex:" +# --debug for detailed debug info +# -v: Enable virtual deployment +# note: needs at least 10G RAM for controllers +sudo opnfv-deploy --debug -v -n network_settings.yaml -d deploy_settings.yaml +# without --debug: +# sudo opnfv-deploy -v -n network_settings.yaml -d deploy_settings.yaml + +# with specific sizing: +# sudo opnfv-deploy --debug -v -n network_settings.yaml -d deploy_settings.yaml --virtual-compute-ram 32 --virtual-cpus 16 --virtual-computes 4 + + +# verify that the openvswitch module is listed: +lsmod | grep openvswitch +grep openvswitch < /proc/modules + +##{ +## workaround: do 2 successive installations... not exactly optimal... +## clean up, as now opnfv-clean should work +#opnfv-clean +## second deploy try, should succeed (whether first one failed or succeeded) +#sudo opnfv-deploy -v -n network_settings.yaml -d deploy_settings.yaml +##} + + + +# verifications: https://docs.opnfv.org/en/latest/submodules/apex/docs/release/installation/verification.html + +# { +# if error after deploy.sh: "libvirt.libvirtError: Storage pool not found: no storage pool with matching name 'default'" + +# This usually happens if for some reason you are missing a default pool in libvirt: +# $ virsh pool-list |grep default +# You can recreate it manually: +# $ virsh pool-define-as default dir --target /var/lib/libvirt/images/ +# $ virsh pool-autostart default +# $ virsh pool-start default +# } + +# { +# if error after deploy.sh: iptc.ip4tc.IPTCError +# check Apex jira ticket #521 https://jira.opnfv.org/browse/APEX-521 +# } + +# OpenvSwitch should not be missing, as it is a requirement from the RPM package: +# https://github.com/opnfv/apex/blob/stable/fraser/build/rpm_specs/opnfv-apex-common.spec#L15 + + + +# install python 3 on CentOS +echo "*** begin install python 3.6 (3.4 should be already installed by default)" + +sudo yum -y install python36 +# install pip and setup tools +sudo curl -O https://bootstrap.pypa.io/get-pip.py +hash -r +sudo /usr/bin/python3.6 get-pip.py --no-warn-script-location + + + +echo "*** end AUTO install: OPNFV Apex/TripleO" + 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" + diff --git a/ci/deploy-opnfv-fuel-ubuntu.sh b/ci/deploy-opnfv-fuel-ubuntu.sh new file mode 100644 index 0000000..db276b2 --- /dev/null +++ b/ci/deploy-opnfv-fuel-ubuntu.sh @@ -0,0 +1,199 @@ +#!/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 Fuel/MCP, on Ubuntu, virtual deployment +############################################################################## +# reference manual: https://docs.opnfv.org/en/latest/submodules/fuel/docs/release/installation/index.html +# page for virtual deployment: https://docs.opnfv.org/en/latest/submodules/fuel/docs/release/installation/installation.instruction.html#opnfv-software-installation-and-deployment + +# Steps: +# step 1: download Fuel/MCP repository and run deploy script +# (this example: x86, virtual deploy, os-nosdn-nofeature-noha scenario) +# step 2: download additional packages (python3, OpenStackSDK, OpenStack clients, ...) +# step 3: add more resources to OpenStack instance (vCPUs, RAM) +# step 4: download Auto repository +# step 5: run Auto python script to populate OpenStack instance with objects expected by ONAP + + +echo "*** begin AUTO install: OPNFV Fuel/MCP" + + +# step 1: download Fuel/MCP repository and run deploy script + +# prepare install directory +export INSTALLDIR=/opt/opnfv-fuel +mkdir -p $INSTALLDIR +cd $INSTALLDIR + +# get Fuel repository +git clone https://git.opnfv.org/fuel +# cd in new fuel repository, which contains directories: mcp, ci, etc. +# note: this is for x86_64 architectures; for aarch64 architectures, git clone https://git.opnfv.org/armband and cd armband instead +cd fuel + +# edit NOHA scenario YAML file with more resources for compute nodes: 32 vCPUs, 192G RAM +{ printf " cmp01:\n";\ + printf " vcpus: 32\n";\ + printf " ram: 196608\n";\ + printf " cmp02:\n";\ + printf " vcpus: 32\n";\ + printf " ram: 196608\n"; } >> mcp/config/scenario/os-nosdn-nofeature-noha.yaml + +# provide more storage space to VMs: 350G per compute node (default is 100G) +sed -i mcp/scripts/lib.sh -e 's/\(qemu-img create.*\) 100G/\1 350G/g' + +# launch OPNFV Fuel/MCP deploy script +ci/deploy.sh -l local -p virtual1 -s os-nosdn-nofeature-noha -D |& tee deploy.log + + + +# step 2: download additional packages (python3, OpenStackSDK, OpenStack clients, ...) + +# install python 3 on Ubuntu +echo "*** begin install python 3" +sudo apt-get -y update +sudo apt-get -y install python3 +# maybe clean-up packages +# sudo apt -y autoremove +# specific install of a python version, e.g. 3.6 +# sudo apt-get install python3.6 + +# http://docs.python-guide.org/en/latest/starting/install3/linux/ +# sudo apt-get install software-properties-common +# sudo add-apt-repository ppa:deadsnakes/ppa +# sudo apt-get update +# sudo apt-get install python3.6 +echo "python2 --version: $(python2 --version)" +echo "python3 --version: $(python3 --version)" +echo "which python: $(which python)" + +# install pip3 for python3; /usr/local/bin/pip3 vs. /usr/bin/pip3; solve with "hash -r" +echo "*** begin install pip3 for python3" +apt -y install python3-pip +hash -r +pip3 install --upgrade pip +hash -r + +echo "\$PATH: $PATH" +echo "which pip: $(which pip)" +echo "which pip3: $(which pip3)" + +# install OpenStack SDK Python client +echo "*** begin install OpenStack SDK Python client" +pip3 install openstacksdk +pip3 install --upgrade openstacksdk + +# install OpenStack CLI +echo "*** begin install OpenStack CLI" +pip3 install python-openstackclient +pip3 install --upgrade python-openstackclient + +pip3 install --upgrade python-keystoneclient +pip3 install --upgrade python-neutronclient +pip3 install --upgrade python-novaclient +pip3 install --upgrade python-glanceclient +pip3 install --upgrade python-cinderclient + +# install OpenStack Heat (may not be installed by default), may be useful for VNF installation +#apt install python3-heatclient +echo "*** begin install OpenStack Heat" +pip3 install --upgrade python-heatclient + +# package verification printouts +echo "*** begin package verification printouts" +pip3 list +pip3 show openstacksdk +pip3 check + + + +# step 3: add more resources to OpenStack instance + +# now that OpenStack CLI is installed, finish Fuel/MCP installation: +# take extra resources indicated in os-nosdn-nofeature-noha.yaml into account as quotas in the OpenStack instance +# (e.g. 2 compute nodes with 32 vCPUs and 192G RAM each => 64 cores and 384G=393,216M RAM) +# enter environment variables hard-coded here, since always the same for Fuel/MCP; there could be better ways to do this :) + +export OS_AUTH_URL=http://10.16.0.107:5000/v3 +export OS_PROJECT_NAME="admin" +export OS_USER_DOMAIN_NAME="Default" +export OS_PROJECT_DOMAIN_ID="default" +unset OS_TENANT_ID +unset OS_TENANT_NAME +export OS_USERNAME="admin" +export OS_PASSWORD="opnfv_secret" +export OS_REGION_NAME="RegionOne" +export OS_INTERFACE=public +export OS_IDENTITY_API_VERSION=3 + +# at this point, openstack CLI commands should work +echo "*** finish install OPNFV Fuel/MCP" +openstack quota set --cores 64 admin +openstack quota set --ram 393216 admin + + + +# step 4: download Auto repository + +# install OPNFV Auto +# prepare install directory +echo "*** begin install OPNFV Auto" +mkdir -p /opt/opnfv-Auto +cd /opt/opnfv-Auto +# get Auto repository from Gerrit +git clone https://gerrit.opnfv.org/gerrit/auto +# cd in new auto repository, which contains directories: lib, setup, ci, etc. +cd auto + + + +# step 5: run Auto python script to populate OpenStack instance with objects expected by ONAP + +# download images used by script, unless downloading images from URL works from the script +echo "*** begin download images" +cd setup/VIMs/OpenStack +mkdir images +cd images +#CirrOS +curl -O http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img +curl -O http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-arm-disk.img +curl -O http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-aarch64-disk.img +# Ubuntu 16.04 LTS (Xenial Xerus) +curl -O https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img +curl -O https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-arm64-disk1.img +# Ubuntu 14.04.5 LTS (Trusty Tahr) +curl -O http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img +curl -O http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-arm64-disk1.img + +# launch script to populate the OpenStack instance +echo "*** begin populate OpenStack instance with ONAP objects" +cd .. +python3 auto_script_config_openstack_for_onap.py + +echo "*** end AUTO install: OPNFV Fuel/MCP" + -- cgit 1.2.3-korg