blob: 2a361b1d00bdb84bca4b92141383ef45bf3272e0 [file] [log] [blame]
Jordan Halterman00e92da2018-05-22 23:05:52 -07001#!/bin/bash
2# -----------------------------------------------------------------------------
3# Remotely pushes bits to a remote node and installs ONOS on it.
4# -----------------------------------------------------------------------------
5
6function _usage () {
7cat << _EOF_
8usage:
9 $(basename $0) [-fn] [-m] <settings> [node]
10
11options:
12- [node] : remote node to install ONOS on.
13
14summary:
15 Downloads Atomix bits to a remote node and installs Atomix on it.
16
17 The -u should be used on upstart-based systems.
18
19 If [node] is not specified the default target is \$OCI.
20
21_EOF_
22}
23
24[ "$1" = "-h" ] && _usage && exit 0
25
26[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
27. $ONOS_ROOT/tools/build/envDefaults
28
29onos-check-bits
30
31while getopts fnvm: o; do
32 case "$o" in
33 f) uninstall=true;;
34 n) nostart=true;;
35 esac
36done
37let OPC=$OPTIND-1
38shift $OPC
39
40# If the -f was given, attempt uninstall first.
41[ -n "$uninstall" ] && atomix-uninstall ${1:-$OCI}
42
43node=${1:-$OCI}
44remote=$ONOS_USER@$node
45
46ssh -tt $remote "
47 [ -f $ATOMIX_INSTALL_DIR/atomix-agent.jar ] && echo \"Atomix is already installed\" && exit 1
48
49 sudo mkdir -p $ATOMIX_INSTALL_DIR && sudo chown ${ONOS_USER}:${ONOS_GROUP} $ATOMIX_INSTALL_DIR
50 sudo wget -O $ATOMIX_INSTALL_DIR/atomix-agent.jar https://oss.sonatype.org/content/repositories/releases/io/atomix/atomix-agent/3.0.0-rc4/atomix-agent-3.0.0-rc4-shaded.jar
51"
52
53# Configure the ONOS installation
54atomix-config $node
55
56# Upload the shared cluster key if present
57[ -f "$ONOS_CLUSTER_KEY_FILE" ] && onos-push-cluster-key $1
58
59# Unless -n option was given, attempt to ignite the ONOS service.
60[ -z "$nostart" ] && atomix-service $node start || true