diff options
Diffstat (limited to 'nsb_setup.sh')
-rwxr-xr-x | nsb_setup.sh | 93 |
1 files changed, 85 insertions, 8 deletions
diff --git a/nsb_setup.sh b/nsb_setup.sh index a983f4de7..49eb5def8 100755 --- a/nsb_setup.sh +++ b/nsb_setup.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (c) 2017 Intel Corporation. +# Copyright (c) 2017-2019 Intel Corporation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,14 +13,78 @@ # See the License for the specific language governing permissions and # limitations under the License. +usage() +{ + cat <<EOF + +Yardstick NSB setup script. + +Usage: $0 [-h] [[-o] admin-openrc-for-openstack] [-i yardstick-docker-image] + +Options: + -h Show this message and exit + -o openrc Specify admin-openrc file with OpenStack credentials + Defaults to none + -i image Specify Yardstick Docker image, e.g. opnfv/yardstick:stable + Default value provided by ansible/nsb_setup.yml + See https://hub.docker.com/r/opnfv/yardstick/tags/ + +EOF +} + +OPTSTR=':ho:i:' +openrc= +image= + +# For backward compatibility reasons, accept openrc both as an argument +# and as the -o option. Hence these two loops. +while [ $# -ge 1 ]; do + OPTIND=1 + while getopts ${OPTSTR} OPT; do + case $OPT in + h) + usage + exit 0 + ;; + o) + openrc=${OPTARG} + ;; + i) + image=${OPTARG} + ;; + :) + usage + echo "ERROR: Missing value for -${OPTARG} option" + exit 1 + ;; + *) + usage + echo "ERROR: Invalid -${OPTARG} option" + exit 1 + ;; + esac + done + + if [ ${OPTIND} -eq 1 ]; then + openrc=$1 + shift + else + shift $((OPTIND - 1)) + fi +done + # OPENRC handling has to be first due no_proxy -if [ $# -eq 1 ]; then - OPENRC=$(readlink -f -- "$1") +if [ -n "${openrc}" ]; then + OPENRC=$(readlink -f -- "${openrc}") extra_args="${extra_args} -e openrc_file=${OPENRC}" source "${OPENRC}" CONTROLLER_IP=$(echo ${OS_AUTH_URL} | sed -ne "s#http://\([0-9a-zA-Z.\-]*\):*[0-9]*/.*#\1#p") fi +if [ -n "${image}" ]; then + extra_args="${extra_args} -e yardstick_docker_image=${image}" +fi + env_http_proxy=$(sed -ne "s/^http_proxy=[\"\']\(.*\)[\"\']/\1/p" /etc/environment) if [[ -z ${http_proxy} ]] && [[ ! -z ${env_http_proxy} ]]; then export http_proxy=${env_http_proxy} @@ -42,6 +106,16 @@ proxy_env: https_proxy: ${https_proxy} no_proxy: ${no_proxy} EOF + + mkdir -p /etc/systemd/system/docker.service.d + cat <<EOF > /etc/systemd/system/docker.service.d/http-proxy.conf +--- +[Service] +Environment="HTTP_PROXY=${http_proxy}" "HTTPS_PROXY=${https_proxy}" "NO_PROXY=${no_proxy}" +EOF + + systemctl daemon-reload + systemctl restart docker fi apt-get update > /dev/null 2>&1 @@ -53,12 +127,15 @@ for i in "${pkg[@]}"; do fi done -pip install ansible==2.3.2 shade==1.17.0 docker-py==1.10.6 +pip install ansible==2.5.5 shade==1.22.2 docker-py==1.10.6 ANSIBLE_SCRIPTS="ansible" -cd ${ANSIBLE_SCRIPTS} &&\ +cd ${ANSIBLE_SCRIPTS} && \ ansible-playbook \ - -e img_modify_playbook='ubuntu_server_cloudimg_modify_samplevnfs.yml' \ - -e YARD_IMG_ARCH='amd64' ${extra_args}\ - -i yardstick-install-inventory.ini nsb_setup.yml + -e IMAGE_PROPERTY='nsb' \ + -e OS_RELEASE='xenial' \ + -e INSTALLATION_MODE='container_pull' \ + -e YARD_IMAGE_ARCH='amd64' ${extra_args} \ + -i install-inventory.ini install.yaml + |