blob: afe8d0e88a6e1000e7e72df24ba3a843c245cae3 [file] [log] [blame]
tom5ca34372014-09-19 17:43:41 -07001#!/bin/bash
Pavlin Radoslavov91413792014-10-15 11:00:32 -07002# -----------------------------------------------------------------------------
tom5ca34372014-09-19 17:43:41 -07003# Remotely configures & starts ONOS for the first time.
Pavlin Radoslavov91413792014-10-15 11:00:32 -07004# -----------------------------------------------------------------------------
tom5ca34372014-09-19 17:43:41 -07005
6[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
7. $ONOS_ROOT/tools/build/envDefaults
8
9remote=$ONOS_USER@${1:-$OCI}
10
tomdefed6f2014-09-29 11:37:02 -070011# Generate a cluster.json from the ON* environment variables
Yuta HIGUCHIe4920dc2014-11-24 16:26:17 -080012CDEF_FILE=/tmp/${remote}.cluster.json
tomdefed6f2014-09-29 11:37:02 -070013echo "{ \"nodes\":[" > $CDEF_FILE
14for node in $(env | sort | egrep "OC[2-9]+" | cut -d= -f2); do
15 echo " { \"id\": \"$node\", \"ip\": \"$node\", \"tcpPort\": 9876 }," >> $CDEF_FILE
16done
17echo " { \"id\": \"$OC1\", \"ip\": \"$OC1\", \"tcpPort\": 9876 }" >> $CDEF_FILE
18echo "]}" >> $CDEF_FILE
Yuta HIGUCHIe4920dc2014-11-24 16:26:17 -080019scp -q $CDEF_FILE $remote:$ONOS_INSTALL_DIR/config/cluster.json
tomdefed6f2014-09-29 11:37:02 -070020
tom0768a022014-09-24 16:16:16 -070021ssh $remote "
22 sudo perl -pi.bak -e \"s/ <interface>.*</ <interface>${ONOS_NIC:-192.168.56.*}</g\" \
23 $ONOS_INSTALL_DIR/$KARAF_DIST/etc/hazelcast.xml
Yuta HIGUCHI673aaeb2014-11-22 03:31:18 -080024 sudo perl -pi -e \"s/ <name>onos</ <name>${ONOS_CELL:-onos}</g\" \
25 $ONOS_INSTALL_DIR/$KARAF_DIST/etc/hazelcast.xml
tomdefed6f2014-09-29 11:37:02 -070026
27 echo \"onos.ip = \$(ifconfig | grep $ONOS_NIC | cut -d: -f2 | cut -d\\ -f1)\" \
28 >> $ONOS_INSTALL_DIR/$KARAF_DIST/etc/system.properties
29"
Yuta HIGUCHI60731cb2014-11-11 01:34:46 -080030
31# Generate a default tablets.json from the ON* environment variables
Yuta HIGUCHIe4920dc2014-11-24 16:26:17 -080032TDEF_FILE=/tmp/${remote}.tablets.json
33nodes=( $(env | sort | egrep "OC[0-9]+" | cut -d= -f2) )
Yuta HIGUCHI60731cb2014-11-11 01:34:46 -080034echo "{ \"default\":[" > $TDEF_FILE
Yuta HIGUCHIe4920dc2014-11-24 16:26:17 -080035while [ ${#nodes[@]} -gt 0 ]; do
36 node=${nodes[0]}
37 nodes=( ${nodes[@]:1} )
38 if [ "${#nodes[@]}" -ne "0" ]; then
39 echo " { \"id\": \"$node\", \"ip\": \"$node\", \"tcpPort\": 9876 }," >> $TDEF_FILE
40 else
41 echo " { \"id\": \"$node\", \"ip\": \"$node\", \"tcpPort\": 9876 }" >> $TDEF_FILE
42 fi
Yuta HIGUCHI60731cb2014-11-11 01:34:46 -080043done
Yuta HIGUCHI60731cb2014-11-11 01:34:46 -080044echo "]}" >> $TDEF_FILE
Yuta HIGUCHIe4920dc2014-11-24 16:26:17 -080045scp -q $TDEF_FILE $remote:$ONOS_INSTALL_DIR/config/tablets.json
Yuta HIGUCHI60731cb2014-11-11 01:34:46 -080046
47
48# copy tools/package/config/ to remote
49scp -qr ${ONOS_ROOT}/tools/package/config/ $remote:$ONOS_INSTALL_DIR/
50