From bb6ff47d62ebe0100c26296941b300540ec8dc45 Mon Sep 17 00:00:00 2001 From: Gerard Damm Date: Thu, 16 Aug 2018 18:29:11 -0500 Subject: First draft of script for Daisy installer for Auto JIRA: AUTO-54 Work in progress: Currently fails on the last step (oslo-config module issue). This is to capture the script in the Auto repo, for further edits. OS: CentOS. Deployment type: virtual. Change-Id: I8a0655951f227c48bf5174acbeaa02f4da6625d2 Signed-off-by: Gerard Damm --- ci/deploy-opnfv-daisy-centos.sh | 179 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 ci/deploy-opnfv-daisy-centos.sh diff --git a/ci/deploy-opnfv-daisy-centos.sh b/ci/deploy-opnfv-daisy-centos.sh new file mode 100644 index 0000000..664ba55 --- /dev/null +++ b/ci/deploy-opnfv-daisy-centos.sh @@ -0,0 +1,179 @@ +#!/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 Daisy4nfv, on CentOS, virtual deployment +############################################################################### +# reference manual: https://docs.opnfv.org/en/stable-fraser/submodules/daisy/docs/release/installation/index.html#daisy-installation +# page for virtual deployment: https://docs.opnfv.org/en/stable-fraser/submodules/daisy/docs/release/installation/vmdeploy.html + +echo "*** begin AUTO install: OPNFV Daisy4nfv" + +# check OS version +echo "*** print OS version (must be CentOS, version 7.2 or more)" +cat /etc/*release + +# 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 + +# 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 + +# download tools: git, kvm, libvirt, python-yaml +sudo yum -y install git +sudo yum -y install kvm +sudo yum -y install libvirt +sudo yum info libvirt +sudo yum info qemu-kvm +sudo yum -y install python-yaml + + +# make sure SELinux is enforced (Security-Enhanced Linux) +sudo setenforce 1 +echo "getenforce: $(getenforce)" + +# Restart the libvirtd daemon: +sudo service libvirtd restart +# Verify if the kvm module is loaded, you should see amd or intel depending on the hardware: +lsmod | grep kvm +# Note: to test, issue a virsh command to ensure local root connectivity: +# sudo virsh sysinfo + + + +# 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 + +# prepare Daisy installation directory +export INSTALLDIR=/opt/opnfv-daisy +mkdir $INSTALLDIR +cd $INSTALLDIR + +# oslo-config, needed in daisy/deploy/get_conf.py +sudo curl -O https://bootstrap.pypa.io/get-pip.py +hash -r +python get-pip.py --no-warn-script-location +pip install --upgrade oslo-config + + +# retrieve Daisy4nfv repository +git clone https://gerrit.opnfv.org/gerrit/daisy +cd daisy + + + +# OPTION 1: master repo and latest bin file: May 17th 2018 +# Download latest bin file from http://artifacts.opnfv.org/daisy.html and name it opnfv.bin +curl http://artifacts.opnfv.org/daisy/opnfv-2018-05-17_14-00-32.bin -o opnfv.bin +# make opnfv.bin executable +chmod 777 opnfv.bin + +# OPTION 2: stable release: Fraser 6.0 (so, checkout to stable Fraser release opnfv-6.0) +# Download matching bin file from http://artifacts.opnfv.org/daisy.html and name it opnfv.bin +#git checkout opnfv.6.0 # as per Daisy4nfv instructions, but does not work +#git checkout stable/fraser +#curl http://artifacts.opnfv.org/daisy/fraser/opnfv-6.0.iso -o opnfv.bin +# make opnfv.bin executable +#chmod 777 opnfv.bin + + + +# The deploy.yaml file is the inventory template of deployment nodes: +# error from doc: ”./deploy/conf/vm_environment/zte-virtual1/deploy.yml” +# correct path: "./deploy/config/vm_environment/zte-virtual1/deploy.yml” +# You can write your own name/roles reference into it: +# name – Host name for deployment node after installation. +# roles – Components deployed. +# note: ./templates/virtual_environment/ contains xml files, for networks and VMs + + +# prepare config dir for Auto lab in daisy dir, and copy deploy and network YAML files from default files (virtual1 or virtual2) +export AUTO_DAISY_LAB_CONFIG1=labs/auto_daisy_lab/virtual1/daisy/config +export DAISY_DEFAULT_ENV1=deploy/config/vm_environment/zte-virtual1 +mkdir -p $AUTO_DAISY_LAB_CONFIG1 +cp $DAISY_DEFAULT_ENV1/deploy.yml $AUTO_DAISY_LAB_CONFIG1 +cp $DAISY_DEFAULT_ENV1/network.yml $AUTO_DAISY_LAB_CONFIG1 + +export AUTO_DAISY_LAB_CONFIG2=labs/auto_daisy_lab/virtual2/daisy/config +export DAISY_DEFAULT_ENV2=deploy/config/vm_environment/zte-virtual2 +mkdir -p $AUTO_DAISY_LAB_CONFIG2 +cp $DAISY_DEFAULT_ENV2/deploy.yml $AUTO_DAISY_LAB_CONFIG2 +cp $DAISY_DEFAULT_ENV2/network.yml $AUTO_DAISY_LAB_CONFIG2 + +# Note: +# - zte-virtual1 config files deploy openstack with five nodes (3 LB nodes and 2 computer nodes). +# - zte-virtual2 config files deploy an all-in-one openstack + +# run deploy script, scenario os-nosdn-nofeature-ha, multinode OpenStack +sudo ./ci/deploy/deploy.sh -L "$(cd ./;pwd)" -l auto_daisy_lab -p virtual1 -s os-nosdn-nofeature-ha + +# run deploy script, scenario os-nosdn-nofeature-noha, all-in-one OpenStack +# sudo ./ci/deploy/deploy.sh -L "$(cd ./;pwd)" -l auto_daisy_lab -p virtual2 -s os-nosdn-nofeature-noha + + +# Notes about deploy.sh: +# The value after -L should be an absolute path which points to the directory which includes $AUTO_DAISY_LAB_CONFIG directory. +# The value after -p parameter (virtual1 or virtual2) should match the one selected for $AUTO_DAISY_LAB_CONFIG. +# The value after -l parameter (e.g. auto_daisy_lab) should match the lab name selected for $AUTO_DAISY_LAB_CONFIG, after labs/ . +# Scenario (-s parameter): “os-nosdn-nofeature-ha” is used for deploying multinode openstack (virtual1) +# Scenario (-s parameter): “os-nosdn-nofeature-noha” used for deploying all-in-one openstack (virtual2) + +# more details on deploy.sh OPTIONS: +# -B PXE Bridge for booting Daisy Master, optional +# -D Dry-run, does not perform deployment, will be deleted later +# -L Securelab repo absolute path, optional +# -l LAB name, necessary +# -p POD name, necessary +# -r Remote workspace in target server, optional +# -w Workdir for temporary usage, optional +# -h Print this message and exit +# -s Deployment scenario +# -S Skip recreate Daisy VM during deployment + +# When deployed successfully, the floating IP of openstack is 10.20.11.11, the login account is “admin” and the password is “keystone” -- cgit 1.2.3-korg