log.sh: Collect /var/log from cluster nodes 49/41449/3
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Sat, 9 Sep 2017 01:09:18 +0000 (03:09 +0200)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Sat, 9 Sep 2017 17:39:53 +0000 (19:39 +0200)
Bring back <ci/deploy.sh> parameter `-L`, which is already passed by
releng deploy script.

Since we need to enable file_recv on salt master, do so by adding a
new class in <virtual-mcp-ocata-common/infra/config.yml>, which will
be inherited by all scenario reclass models.

JIRA: FUEL-288

Change-Id: I9b649315984fb8580b63883d0e06c1e1efd11057
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
ci/deploy.sh
mcp/reclass/classes/cluster/virtual-mcp-ocata-common/infra/config.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/infra/config.yml
mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/infra/config.yml
mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/infra/config.yml
mcp/scripts/log.sh [new file with mode: 0755]
mcp/scripts/salt.sh

index 4b64000..9055839 100755 (executable)
@@ -33,7 +33,7 @@ $(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]]]] \\
-    [-S storage-dir]
+    [-S storage-dir] [-L /path/to/log/file.tar.gz]
 
 $(notify "OPTIONS:" 2)
   -b  Base-uri for the stack-configuration structure
@@ -43,6 +43,7 @@ $(notify "OPTIONS:" 2)
   -p  Pod-name
   -s  Deploy-scenario short-name
   -S  Storage dir for VM images
+  -L  Deployment log path and file name
 
 $(notify "DISABLED OPTIONS (not yet supported with MCP):" 3)
   -d  (disabled) Dry-run
@@ -50,7 +51,6 @@ $(notify "DISABLED OPTIONS (not yet supported with MCP):" 3)
   -f  (disabled) Deploy on existing Salt master
   -F  (disabled) Do only create a Salt master
   -i  (disabled) iso url
-  -L  (disabled) Deployment log path and file name
   -T  (disabled) Timeout, in minutes, for the deploy.
 
 $(notify "Description:" 2)
@@ -75,6 +75,7 @@ $(notify "Input parameters to the build script are:" 2)
    while "mcpcontrol" is used to provision the infrastructure VMs only.
    The default is 'pxebr'.
 -h Print this message and exit
+-L Deployment log path and name, eg. -L /home/jenkins/job.log.tar.gz
 -l Lab name as defined in the configuration directory, e.g. lf
 -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
@@ -86,7 +87,6 @@ $(notify "Disabled input parameters (not yet supported with MCP):" 3)
 -f (disabled) Deploy on existing Salt master
 -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
 -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
@@ -141,8 +141,10 @@ URI_REGEXP='(file|https?|ftp)://.*'
 
 export SSH_KEY=${SSH_KEY:-"/var/lib/opnfv/mcp.rsa"}
 export SALT_MASTER=${SALT_MASTER_IP:-192.168.10.100}
+export SALT_MASTER_USER=${SALT_MASTER_USER:-ubuntu}
 export MAAS_IP=${MAAS_IP:-192.168.10.3}
 export SSH_OPTS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ${SSH_KEY}"
+export SSH_SALT="${SALT_MASTER_USER}@${SALT_MASTER}"
 
 # Variables below are disabled for now, to be re-introduced or removed later
 set +x
@@ -208,8 +210,7 @@ do
             TARGET_LAB=${OPTARG}
             ;;
         L)
-            notify '' 3 "${OPTION}"; continue
-            DEPLOY_LOG="-log ${OPTARG}"
+            DEPLOY_LOG="${OPTARG}"
             ;;
         p)
             TARGET_POD=${OPTARG}
@@ -339,6 +340,8 @@ for state in "${cluster_states[@]}"; do
         sudo "/root/fuel/mcp/config/states/${state} || true"
 done
 
+./log.sh "${DEPLOY_LOG}"
+
 popd > /dev/null
 
 #
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/infra/config.yml
new file mode 100644 (file)
index 0000000..b7f8985
--- /dev/null
@@ -0,0 +1,4 @@
+parameters:
+  salt:
+    master:
+      file_recv: true
index 63e58a2..39edab2 100644 (file)
@@ -11,6 +11,7 @@ classes:
 - system.reclass.storage.system.openstack_compute_multi
 - system.reclass.storage.system.openstack_gateway_single
 - system.reclass.storage.system.opendaylight_control_single
+- cluster.virtual-mcp-ocata-common.infra.config
 - cluster.virtual-mcp-ocata-odl-router
 parameters:
   _param:
index 864c71d..56cfa6e 100644 (file)
@@ -10,6 +10,7 @@ classes:
 - system.mysql.client.single
 - system.reclass.storage.system.openstack_compute_multi
 - system.reclass.storage.system.openstack_gateway_single
+- cluster.virtual-mcp-ocata-common.infra.config
 - cluster.virtual-mcp-ocata-ovs-dpdk
 parameters:
   _param:
index 97730b1..1cfded0 100644 (file)
@@ -10,6 +10,7 @@ classes:
 - system.mysql.client.single
 - system.reclass.storage.system.openstack_compute_multi
 - system.reclass.storage.system.openstack_gateway_single
+- cluster.virtual-mcp-ocata-common.infra.config
 - cluster.virtual-mcp-ocata-ovs
 parameters:
   _param:
diff --git a/mcp/scripts/log.sh b/mcp/scripts/log.sh
new file mode 100755 (executable)
index 0000000..1ae0953
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/bash
+##############################################################################
+# Copyright (c) 2017 Mirantis Inc., Enea AB 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
+##############################################################################
+#
+# Collect /var/log from all cluster nodes via Salt Master
+#
+
+DEPLOY_LOG=$1
+OPNFV_TMP_LOG="opnfv_fuel_logs"
+
+[ -n "${DEPLOY_LOG}" ] || exit 0
+
+# ssh to cfg01
+# shellcheck disable=SC2086,2087
+ssh ${SSH_OPTS} "${SSH_SALT}" bash -s << LOG_COLLECT_END
+  sudo -i
+
+  echo salt -C '*' cp.push_dir /var/log upload_path='${OPNFV_TMP_LOG}'
+  salt -C '*' cp.push_dir /var/log upload_path='${OPNFV_TMP_LOG}'
+
+  cd /var/cache/salt/master/minions && \
+    find */files/${OPNFV_TMP_LOG}/ | \
+      xargs tar czf \$(eval echo \~\${SUDO_USER}/${OPNFV_TMP_LOG}.tar.gz) \
+        --transform 's|/files/${OPNFV_TMP_LOG}||'
+LOG_COLLECT_END
+
+# shellcheck disable=SC2086
+scp ${SSH_OPTS} "${SSH_SALT}:${OPNFV_TMP_LOG}.tar.gz" "${DEPLOY_LOG}"
+# shellcheck disable=SC2086,2029
+ssh ${SSH_OPTS} "${SSH_SALT}" rm -f "${OPNFV_TMP_LOG}.tar.gz"
index 4fa54ab..174471e 100755 (executable)
@@ -11,8 +11,6 @@
 #
 
 F_GIT_ROOT=$(git rev-parse --show-toplevel)
-SALT_MASTER_USER=${SALT_MASTER_USER:-ubuntu}
-SSH_SALT="${SALT_MASTER_USER}@${SALT_MASTER}"
 OPNFV_TMP_DIR="/home/${SALT_MASTER_USER}/fuel"
 OPNFV_FUEL_DIR="/root/fuel"