aboutsummaryrefslogtreecommitdiffstats
path: root/ci/deploy.sh
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-08-31 03:09:51 +0200
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-09-05 02:20:57 +0200
commit0fed9ab50ef24816bf0979bece955763fd634189 (patch)
tree1482c60408547cc757d63e1cec2ee5c890aa58b8 /ci/deploy.sh
parent3a76d07dbd409b781abdb8520f55a1b20edf07db (diff)
ci/deploy.sh, lib.sh: Align SSH_KEY with Jenkins
Jenkins defines a build param also called SSH_KEY, which holds the full path to our MCP private RSA key, as opposed to Fuel@OPNFV, which uses the file basename as SSH_KEY. Switch to using full path in SSH_KEY, while also moving the key outside /tmp. NOTE: When running `ci/deploy.sh` with sudo, key will land in /root/opnfv/mcp.rsa unless SSH_KEY is set via env var. While at it, bring back VM image storage dir param, allowing us to drop one more reference to /tmp. JIRA: FUEL-280 Change-Id: Id1cfa6dbe7b2e6f3915b22281da5957333718401 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Diffstat (limited to 'ci/deploy.sh')
-rwxr-xr-xci/deploy.sh23
1 files changed, 13 insertions, 10 deletions
diff --git a/ci/deploy.sh b/ci/deploy.sh
index f51ba5fb0..b9c533323 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -32,7 +32,8 @@ $(notify "$(basename "$0"): Deploy the Fuel@OPNFV MCP stack" 3)
$(notify "USAGE:" 2)
$(basename "$0") -b base-uri -l lab-name -p pod-name -s deploy-scenario \\
- [-B PXE Bridge [-B Mgmt Bridge [-B Internal Bridge [-B Public Bridge]]]]
+ [-B PXE Bridge [-B Mgmt Bridge [-B Internal Bridge [-B Public Bridge]]]] \\
+ [-S storage-dir]
$(notify "OPTIONS:" 2)
-b Base-uri for the stack-configuration structure
@@ -41,6 +42,7 @@ $(notify "OPTIONS:" 2)
-l Lab-name
-p Pod-name
-s Deploy-scenario short-name
+ -S Storage dir for VM images
$(notify "DISABLED OPTIONS (not yet supported with MCP):" 3)
-d (disabled) Dry-run
@@ -49,7 +51,6 @@ $(notify "DISABLED OPTIONS (not yet supported with MCP):" 3)
-F (disabled) Do only create a Salt master
-i (disabled) iso url
-L (disabled) Deployment log path and file name
- -S (disabled) Storage dir for VM images
-T (disabled) Timeout, in minutes, for the deploy.
$(notify "Description:" 2)
@@ -78,6 +79,7 @@ $(notify "Input parameters to the build script are:" 2)
-p POD name as defined in the configuration directory, e.g. pod-1
-s Deployment-scenario, this points to a short deployment scenario name, which
has to be defined in config directory (e.g. os-odl_l2-nofeature-noha).
+-S Storage dir for VM images, default is mcp/deploy/images
$(notify "Disabled input parameters (not yet supported with MCP):" 3)
-d (disabled) Dry-run - Produce deploy config files, but do not execute deploy
@@ -85,7 +87,6 @@ $(notify "Disabled input parameters (not yet supported with MCP):" 3)
-e (disabled) Do not launch environment deployment
-F (disabled) Do only create a Salt master
-L (disabled) Deployment log path and name, eg. -L /home/jenkins/job.log.tar.gz
--S (disabled) Storage dir for VM images, default is fuel/deploy/images
-T (disabled) Timeout, in minutes, for the deploy.
It defaults to using the DEPLOY_TIMEOUT environment variable when defined.
-i (disabled) .iso image to be deployed (needs to be provided in a URI
@@ -133,11 +134,14 @@ clean() {
#
SCRIPT_PATH=$(readlink -f "$(dirname "${BASH_SOURCE[0]}")")
DEPLOY_DIR=$(cd "${SCRIPT_PATH}/../mcp/scripts"; pwd)
+STORAGE_DIR=$(cd "${SCRIPT_PATH}/../mcp/deploy/images"; pwd)
DEPLOY_TYPE='baremetal'
OPNFV_BRIDGES=('pxebr' 'mgmt' 'internal' 'public')
URI_REGEXP='(file|https?|ftp)://.*'
-export SSH_KEY=${SSH_KEY:-mcp.rsa}
+# NOTE: When this script runs with sudo, key will land in /root/opnfv/mcp.rsa,
+# unless SSH_KEY is set to point to non-root user's home (e.g. via env var).
+export SSH_KEY=${SSH_KEY:-"${HOME}/opnfv/mcp.rsa"}
export SALT_MASTER=${SALT_MASTER_IP:-192.168.10.100}
export MAAS_IP=${MAAS_IP:-192.168.10.3}
export SSH_OPTS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ${SSH_KEY}"
@@ -147,7 +151,6 @@ set +x
USE_EXISTING_FUEL=''
FUEL_CREATION_ONLY=''
NO_DEPLOY_ENVIRONMENT=''
-STORAGE_DIR=''
DRY_RUN=0
if ! [ -z "${DEPLOY_TIMEOUT}" ]; then
DEPLOY_TIMEOUT="-dt ${DEPLOY_TIMEOUT}"
@@ -220,7 +223,6 @@ do
DEPLOY_SCENARIO=${OPTARG}
;;
S)
- notify '' 3 "${OPTION}"; continue
if [[ ${OPTARG} ]]; then
STORAGE_DIR="-s ${OPTARG}"
fi
@@ -295,11 +297,11 @@ if [ "$(uname -i)" = "aarch64" ]; then
fi
# Check scenario file existence
-if [ ! -f ../config/scenario/${DEPLOY_TYPE}/${DEPLOY_SCENARIO}.yaml ]; then
+if [ ! -f "../config/scenario/${DEPLOY_TYPE}/${DEPLOY_SCENARIO}.yaml" ]; then
notify "[WARN] ${DEPLOY_SCENARIO}.yaml not found! \
Setting simplest scenario (os-nosdn-nofeature-noha)\n" 3
DEPLOY_SCENARIO='os-nosdn-nofeature-noha'
- if [ ! -f ../config/scenario/${DEPLOY_TYPE}/${DEPLOY_SCENARIO}.yaml ]; then
+ if [ ! -f "../config/scenario/${DEPLOY_TYPE}/${DEPLOY_SCENARIO}.yaml" ]; then
notify "[ERROR] Scenario definition file is missing!\n" 1>&2
exit 1
fi
@@ -322,9 +324,10 @@ done
# Infra setup
generate_ssh_key
-prepare_vms virtual_nodes "${base_image}"
+prepare_vms virtual_nodes "${base_image}" "${STORAGE_DIR}"
create_networks OPNFV_BRIDGES
-create_vms virtual_nodes virtual_nodes_ram virtual_nodes_vcpus OPNFV_BRIDGES
+create_vms virtual_nodes virtual_nodes_ram virtual_nodes_vcpus \
+ OPNFV_BRIDGES "${STORAGE_DIR}"
update_mcpcontrol_network
start_vms virtual_nodes
check_connection