summaryrefslogtreecommitdiffstats
path: root/tools/demo_deploy.sh
diff options
context:
space:
mode:
authorBryan Sullivan <bryan.sullivan@att.com>2018-01-22 15:25:53 -0800
committerBryan Sullivan <bryan.sullivan@att.com>2018-01-22 15:25:53 -0800
commitda9564a9b0b78bbe341de9b039aab3c378eb027f (patch)
tree74186eb0c6d429e84b3bb164bfbebfa50e90441e /tools/demo_deploy.sh
parent1d82514c0cf25ed599d27ecfd0c4c9502478ef0c (diff)
Implement component deployment via cloudify
JIRA: VES-2 Change-Id: Ic696f13d2a32e10663f50cd4e26b9a060525ff92 Signed-off-by: Bryan Sullivan <bryan.sullivan@att.com>
Diffstat (limited to 'tools/demo_deploy.sh')
-rw-r--r--tools/demo_deploy.sh163
1 files changed, 97 insertions, 66 deletions
diff --git a/tools/demo_deploy.sh b/tools/demo_deploy.sh
index 305de9c..1105c2a 100644
--- a/tools/demo_deploy.sh
+++ b/tools/demo_deploy.sh
@@ -35,9 +35,17 @@
#. - env variables set prior to running this script, as per ves-setup.sh
#. ves_kafka_hostname: hostname of the node where the kafka server runs
#. - optional env varibles set prior to running this script, as per ves-setup.sh
-#. ves_influxdb_host: ip:port of the influxdb service
+#. ves_host: ip of the VES collector service
+#. ves_zookeeper_host: ip of the zookeeper service
+#. ves_zookeeper_port: port of the zookeeper service
+#. ves_kafka_host: ip of the kafka service
+#. ves_kafka_port: port of the kafka service
+#. ves_port: port of the VES collector service
+#. ves_influxdb_host: ip of the influxdb service
+#. ves_influxdb_port: port of the influxdb service
#. ves_influxdb_auth: authentication for the influxdb service
-#. ves_grafana_host: ip:port of the grafana service
+#. ves_grafana_host: ip of the grafana service
+#. ves_grafana_port: port of the grafana service
#. ves_grafana_auth: authentication for the grafana service
#. ves_loglevel: loglevel for VES Agent and Collector (ERROR|DEBUG)
#.
@@ -49,81 +57,104 @@
#. Usage: on the admin server
#. $ git clone https://gerrit.opnfv.org/gerrit/ves ~/ves
#. $ cd ~/ves/tools
-#. $ bash demo_deploy.sh <key> <user> <master> <workers> [cloudify]
-#. <key>: SSH key enabling password-less SSH to nodes
+#. $ bash demo_deploy.sh <user> <master> [cloudify]
#. <user>: username on node with password-less SSH authorized
-#. <master>: master node where core components will be installed
-#. <workers>: list of worker nodes where collectd will be installed
+#. <master>: hostname of k8s master node
#. cloudify: flag indicating to deploy VES core services via Cloudify
-key=$1
-user=$2
-master=$3
-workers="$4"
-cloudify=$5
+trap 'fail' ERR
-eval `ssh-agent`
-ssh-add $key
+function fail() {
+ log $1
+ exit 1
+}
-ves_host=$master
-ves_mode=node
-ves_user=hello
-ves_pass=world
-ves_kafka_host=$master
-ves_kafka_hostname=$ves_kafka_hostname
-ves_influxdb_host=$ves_influxdb_host
-ves_influxdb_auth=$ves_influxdb_auth
-ves_grafana_host=$ves_grafana_host
-ves_grafana_auth=$ves_grafana_auth
-ves_loglevel=$ves_loglevel
-env | grep ves
-source ~/ves/tools/ves-setup.sh env
+function log() {
+ f=$(caller 0 | awk '{print $2}')
+ l=$(caller 0 | awk '{print $1}')
+ echo; echo "$f:$l ($(date)) $1"
+}
-echo; echo "$0 $(date): Setting up master node"
-ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
- $user@$master mkdir /home/$user/ves
-scp -r -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
- ~/ves/tools $user@$master:/home/$user/ves
-ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
- $user@$master <<EOF
-bash ves/tools/ves-setup.sh collector
-bash ves/tools/ves-setup.sh kafka
-EOF
+function run() {
+ log "$1"
+ start=$((`date +%s`/60))
+ $1
+ step_end "$1"
+}
-if [[ "$cloudify" == "cloudify" ]]; then
- bash ves/tools/ves-setup.sh agent $cloudify
-else
+function step_end() {
+ end=$((`date +%s`/60))
+ runtime=$((end-start))
+ log "step \"$1\" duration = $runtime minutes"
+}
+
+function run_master() {
+ log "$1"
+ start=$((`date +%s`/60))
ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
- $user@$master bash ves/tools/ves-setup.sh agent
-fi
+ $k8s_user@$k8s_master "$1"
+ step_end "$1"
+}
+
+function deploy() {
+ if [[ -f ~/ves/tools/ves_env.sh ]]; then rm ~/ves/tools/ves_env.sh; fi
+ ves_host=$ves_host
+ ves_port=$ves_port
+ ves_mode=node
+ ves_user=hello
+ ves_pass=world
+ ves_kafka_host=$ves_kafka_host
+ ves_kafka_hostname=$ves_kafka_hostname
+ ves_zookeeper_host=$ves_zookeeper_host
+ ves_zookeeper_port=$ves_zookeeper_port
+ ves_influxdb_host=$ves_influxdb_host
+ ves_influxdb_port=$ves_influxdb_port
+ ves_influxdb_auth=$ves_influxdb_auth
+ ves_grafana_host=$ves_grafana_host
+ ves_grafana_port=$ves_grafana_port
+ ves_grafana_auth=$ves_grafana_auth
+ ves_loglevel=$ves_loglevel
+ source ~/ves/tools/ves-setup.sh env
+ env | grep ves_ >~/ves/tools/ves_env.sh
+ for var in $vars; do echo "export $var" | tee -a ~/ves/tools/ves_env.sh; done
-if [[ "$master" == "$workers" ]]; then
- nodes=$master
-else
- nodes="$master $workers"
-fi
+ log "Setting up master node"
+ run_master "mkdir /home/$user/ves"
+ scp -r -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
+ ~/ves/tools $user@$master:/home/$user/ves
+ run "bash ves/tools/ves-setup.sh collector $cloudify"
+ run "bash ves/tools/ves-setup.sh kafka $cloudify"
+ run "bash ves/tools/ves-setup.sh agent $cloudify"
-for node in $nodes; do
- echo; echo "$0 $(date): Setting up collectd at $node"
- if [[ "$node" != "$master" ]]; then
- ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
- $user@$node mkdir /home/$user/ves
- scp -r -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
- ~/ves/tools $user@$node:/home/$user/ves
+ if [[ "$k8s_master" == "$k8s_workers" ]]; then
+ nodes=$k8s_master
+ else
+ nodes="$k8s_master $k8s_workers"
fi
- ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
- $user@$node <<EOF > ves-collectd-$node.log 2>&1 &
-ves_kafka_host=$master
-export ves_kafka_host
-ves_kafka_port=$ves_kafka_port
-export ves_kafka_port
-ves_kafka_hostname=$ves_kafka_hostname
-export ves_kafka_hostname
-ves_mode=node
-export ves_mode
-bash /home/$user/ves/tools/ves-setup.sh collectd
+
+ for node in $nodes; do
+ log "Setting up collectd at $node"
+ if [[ "$node" != "$k8s_master" ]]; then
+ ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
+ $user@$node mkdir /home/$user/ves
+ scp -r -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
+ ~/ves/tools $user@$node:/home/$user/ves
+ fi
+ run "bash ves/tools/ves-setup.sh collectd"
EOF
-done
+ done
-echo; echo "$0 $(date): VES Grafana dashboards are available at http://$ves_grafana_host (login as admin/admin)"
+ source ~/ves/tools/ves_env.sh
+ log "VES Grafana dashboards are available at http://$ves_grafana_host:$ves_grafana_port (login as admin/admin)"
+}
+deploy_start=$((`date +%s`/60))
+user=$1
+master=$2
+cloudify=$3
+source ~/k8s_env_$master.sh
+log "k8s environment as input"
+env | grep k8s
+eval `ssh-agent`
+ssh-add $k8s_key
+deploy