onos-install 1.05 KB
#!/bin/bash
#-------------------------------------------------------------------------------
# Remotely pushes bits to a remote machine and install & starts ONOS.
#-------------------------------------------------------------------------------

[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
. $ONOS_ROOT/tools/build/envDefaults

# If the first option is -f attempt uninstall first.
[ "$1" = "-f" ] && shift && onos-uninstall ${1:-$OCI}

remote=$ONOS_USER@${1:-$OCI}

scp -q $ONOS_TAR $remote:/tmp

ssh $remote "
    [ -d $ONOS_INSTALL_DIR/bin ] && echo \"ONOS is already installed\" && exit 1

    # Prepare a landing zone and unroll the bits
    sudo mkdir -p $ONOS_INSTALL_DIR && sudo chown sdn:sdn $ONOS_INSTALL_DIR
    tar zxmf /tmp/$ONOS_BITS.tar.gz -C $ONOS_INSTALL_DIR --strip-components=1

    # Make a link to the log file directory.
    ln -s /opt/onos/$KARAF_DIST/data/log /opt/onos/log
    
    # TODO: Setup ONOS to run as a daemon; for now we at least startup
    nohup /opt/onos/bin/onos-ctl server </dev/null 1>/opt/onos/svc.log 2>&1 &
"