AyumuUeha | 76a01bc | 2017-05-18 13:34:13 +0900 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | #************************************************************/ |
| 3 | #** File: nova_pppoe_setup.sh */ |
| 4 | #** Contents: Contains shell script to install apps, */ |
| 5 | #** start Nova Consolidator app, call */ |
| 6 | #** nova_vsg_monitor.sh */ |
| 7 | #************************************************************/ |
| 8 | |
| 9 | # IP address of prod VM that can be accessed from |
| 10 | # nova-compute, vSG and vcpe-docker instances. |
| 11 | # Need to replace the hard coded value with |
| 12 | # some script that can dynamically pickup the |
| 13 | # IP address that is reachable from vSG and docker instances |
| 14 | # running inside vSG. |
| 15 | # |
| 16 | # ONOS_VM Public IP is same as virbr4 IP address in |
| 17 | # the prod VM |
| 18 | |
| 19 | function create_env_file() { |
| 20 | echo "ONOS_VM_PUBLIC_IP=$ONOS_VM_PUBLIC_IP; export ONOS_VM_PUBLIC_IP" >$HOME_DIR/$VSG_ENV_FILE |
| 21 | echo "NETCFG_CONSOLIDATOR_IP=$NETCFG_CONSOLIDATOR_IP;export NETCFG_CONSOLIDATOR_IP " >>$HOME_DIR/$VSG_ENV_FILE |
| 22 | echo "VCPEGW_BR_IP=$VCPEGW_BR_IP;export VCPEGW_BR_IP" >>$HOME_DIR/$VSG_ENV_FILE |
| 23 | echo "VCPEGW_BR_NAME=$VCPEGW_BR_NAME;export VCPEGW_BR_NAME" >>$HOME_DIR/$VSG_ENV_FILE |
| 24 | echo "VCPEGW_BR_SUBNET=$VCPEGW_BR_SUBNET;export VCPEGW_BR_SUBNET" >>$HOME_DIR/$VSG_ENV_FILE |
| 25 | echo "VSG_WAN_BR_NAME=$VSG_WAN_BR_NAME;export VSG_WAN_BR_NAME" >>$HOME_DIR/$VSG_ENV_FILE |
| 26 | echo "NETCFG_UP_IFACE=$NETCFG_UP_IFACE;export NETCFG_UP_IFACE" >>$HOME_DIR/$VSG_ENV_FILE |
| 27 | echo "VCPEGW_DOCKER_IMAGE=$VCPEGW_DOCKER_IMAGE;export VCPEGW_DOCKER_IMAGE" >>$HOME_DIR/$VSG_ENV_FILE |
| 28 | echo "PPPOE_INSTALL_DIR=$PPPOE_INSTALL_DIR;export PPPOE_INSTALL_DIR" >>$HOME_DIR/$VSG_ENV_FILE |
| 29 | echo "VSG_ENV_FILE=$VSG_ENV_FILE;export VSG_ENV_FILE" >>$HOME_DIR/$VSG_ENV_FILE |
| 30 | echo "VCPEPROXY_WAN_IFACE=$VCPEPROXY_WAN_IFACE;export VCPEPROXY_WAN_IFACE" >>$HOME_DIR/$VSG_ENV_FILE |
| 31 | echo "VCPEPROXY_WAN_IP=$VCPEPROXY_WAN_IP;export VCPEPROXY_WAN_IP" >>$HOME_DIR/$VSG_ENV_FILE |
| 32 | echo "VCPEPROXY_IP_PREFIX=$VCPEPROXY_IP_PREFIX;export VCPEPROXY_IP_PREFIX" >>$HOME_DIR/$VSG_ENV_FILE |
| 33 | echo "VCPEPROXY_DHCP_BASE=$VCPEPROXY_DHCP_BASE;export VCPEPROXY_DHCP_BASE" >>$HOME_DIR/$VSG_ENV_FILE |
| 34 | echo "VCPEPROXY_PREFIX=$VCPEPROXY_PREFIX;export VCPEPROXY_PREFIX" >>$HOME_DIR/$VSG_ENV_FILE |
| 35 | echo "VSG_CP_IFACE=$VSG_CP_IFACE;export VSG_CP_IFACE" >>$HOME_DIR/$VSG_ENV_FILE |
| 36 | echo "VCPEPROXY_CP_IFACE=$VCPEPROXY_CP_IFACE;export VCPEPROXY_CP_IFACE" >>$HOME_DIR/$VSG_ENV_FILE |
| 37 | echo "VCPEPROXY_CP_MAC_PREFIX=$VCPEPROXY_CP_MAC_PREFIX;export VCPEPROXY_CP_MAC_PREFIX" >>$HOME_DIR/$VSG_ENV_FILE |
| 38 | echo "VCPEPROXY_LOCAL_IP=$VCPEPROXY_LOCAL_IP;export VCPEPROXY_LOCAL_IP" >>$HOME_DIR/$VSG_ENV_FILE |
| 39 | echo "VCPEPROXY_LOCAL_IP_PREFIX=$VCPEPROXY_LOCAL_IP_PREFIX;export VCPEPROXY_LOCAL_IP_PREFIX" >>$HOME_DIR/$VSG_ENV_FILE |
| 40 | echo "VCPEPROXY_CP_IP_PREFIX=$VCPEPROXY_CP_IP_PREFIX;export VCPEPROXY_CP_IP_PREFIX" >>$HOME_DIR/$VSG_ENV_FILE |
| 41 | echo "VCPEPROXY_CP_IP_START=$VCPEPROXY_CP_IP_START;export VCPEPROXY_CP_IP_START" >>$HOME_DIR/$VSG_ENV_FILE |
| 42 | echo "VCPEGW_WAN_IP_PREFIX=$VCPEGW_WAN_IP_PREFIX;export VCPEGW_WAN_IP_PREFIX" >>$HOME_DIR/$VSG_ENV_FILE |
| 43 | echo "VCPEGW_NETMASK_BITS=$VCPEGW_NETMASK_BITS;export VCPEGW_NETMASK_BITS" >>$HOME_DIR/$VSG_ENV_FILE |
| 44 | echo "VCPEPROXY_DVAL_START=$VCPEPROXY_DVAL_START;export VCPEPROXY_DVAL_START" >>$HOME_DIR/$VSG_ENV_FILE |
| 45 | echo "MAX_IP_PER_VSG=$MAX_IP_PER_VSG;export MAX_IP_PER_VSG" >>$HOME_DIR/$VSG_ENV_FILE |
| 46 | echo "VCPEPROXY_DHCP_LISTEN_ADDRESS=$VCPEPROXY_DHCP_LISTEN_ADDRESS;export VCPEPROXY_DHCP_LISTEN_ADDRESS" >>$HOME_DIR/$VSG_ENV_FILE |
| 47 | echo "VCPEPROXY_DHCP_LOW=$VCPEPROXY_DHCP_LOW;export VCPEPROXY_DHCP_LOW" >>$HOME_DIR/$VSG_ENV_FILE |
| 48 | echo "VCPEPROXY_NUM_HOSTS=$VCPEPROXY_NUM_HOSTS;export VCPEPROXY_NUM_HOSTS" >>$HOME_DIR/$VSG_ENV_FILE |
| 49 | echo "VSG_NUM_ONUS=$VSG_NUM_ONUS;export VSG_NUM_ONUS" >>$HOME_DIR/$VSG_ENV_FILE |
| 50 | echo "VSG_LAN_IFACE=$VSG_LAN_IFACE;export VSG_LAN_IFACE" >>$HOME_DIR/$VSG_ENV_FILE |
| 51 | echo "VCPEPROXY_DOCKER_HOME=$VCPEPROXY_DOCKER_HOME;export VCPEPROXY_DOCKER_HOME" >>$HOME_DIR/$VSG_ENV_FILE |
| 52 | echo "VSG_DOCKER_IPV4=$VSG_DOCKER_IPV4;export VSG_DOCKER_IPV4" >>$HOME_DIR/$VSG_ENV_FILE |
| 53 | echo "VCPEGW_WAN_IP_START=$VCPEGW_WAN_IP_START;export VCPEGW_WAN_IP_START" >>$HOME_DIR/$VSG_ENV_FILE |
| 54 | echo "VCPEGW_WAN_MAC_PREFIX=$VCPEGW_WAN_MAC_PREFIX;export VCPEGW_WAN_MAC_PREFIX" >>$HOME_DIR/$VSG_ENV_FILE |
| 55 | echo "VCPEGW_DOCKER_HOME=$VCPEGW_DOCKER_HOME;export VCPEGW_DOCKER_HOME" >>$HOME_DIR/$VSG_ENV_FILE |
| 56 | |
| 57 | echo "VCPEGW_WAN_IFACE=$VCPEGW_WAN_IFACE;export VCPEGW_WAN_IFACE" >>$HOME_DIR/$VSG_ENV_FILE |
| 58 | echo "VCPEGW_LOCAL_IFACE=$VCPEGW_LOCAL_IFACE;export VCPEGW_LOCAL_IFACE" >>$HOME_DIR/$VSG_ENV_FILE |
| 59 | |
| 60 | echo "AP_RESTAPI_PORT=$AP_RESTAPI_PORT;export AP_RESTAPI_PORT" >>$HOME_DIR/$VSG_ENV_FILE |
| 61 | echo "AP_REST_NETCFG=$AP_REST_NETCFG;export AP_REST_NETCFG" >>$HOME_DIR/$VSG_ENV_FILE |
| 62 | echo "APMGMT_TAR_FILE=$APMGMT_TAR_FILE;export APMGMT_TAR_FILE" >>$HOME_DIR/$VSG_ENV_FILE |
| 63 | echo "IPV6_TAR_FILE=$IPV6_TAR_FILE;export IPV6_TAR_FILE" >>$HOME_DIR/$VSG_ENV_FILE |
| 64 | echo "OnosIP=$OnosIP;export OnosIP" >>$HOME_DIR/$VSG_ENV_FILE |
| 65 | echo "NETCFG_RESTAPI_PORT=$NETCFG_RESTAPI_PORT;export NETCFG_RESTAPI_PORT" >>$HOME_DIR/$VSG_ENV_FILE |
| 66 | |
| 67 | echo "PPPOE_APPS_DIR=$PPPOE_APPS_DIR;export PPPOE_APPS_DIR" >>$HOME_DIR/$VSG_ENV_FILE |
| 68 | echo "PPPOE_AP_MGMT_DIR=$PPPOE_AP_MGMT_DIR;export PPPOE_AP_MGMT_DIR" >>$HOME_DIR/$VSG_ENV_FILE |
| 69 | echo "IPV6_AP_DIR=$IPV6_AP_DIR;export IPV6_AP_DIR" >>$HOME_DIR/$VSG_ENV_FILE |
| 70 | echo "NODEJS_MODULES_DIR=$NODEJS_MODULES_DIR;export NODEJS_MODULES_DIR" >>$HOME_DIR/$VSG_ENV_FILE |
| 71 | echo "VCPEPROXY_BASE_IP=$VCPEPROXY_BASE_IP;export VCPEPROXY_BASE_IP" >>$HOME_DIR/$VSG_ENV_FILE |
| 72 | echo "PPPOE_VCPE_TAR_FILE=$PPPOE_VCPE_TAR_FILE;export PPPOE_VCPE_TAR_FILE" >>$HOME_DIR/$VSG_ENV_FILE |
| 73 | } |
| 74 | |
| 75 | function create_pppoe_server_script() { |
| 76 | echo "#!/bin/bash" > $HOME_DIR/$PPPOE_SERVER_ADD_SCRIPT |
| 77 | echo "PPPOE_SERVER_IP=\$1" >> $HOME_DIR/$PPPOE_SERVER_ADD_SCRIPT |
| 78 | echo "curl -X POST http://$NETCFG_CONSOLIDATOR_IP:$NETCFG_RESTAPI_PORT/rest:\$PPPOE_SERVER_IP:$AP_RESTAPI_PORT" >> $HOME_DIR/$PPPOE_SERVER_ADD_SCRIPT |
| 79 | chmod +x $HOME_DIR/$PPPOE_SERVER_ADD_SCRIPT |
| 80 | |
| 81 | echo "#!/bin/bash" > $HOME_DIR/$PPPOE_SERVER_DELETE_SCRIPT |
| 82 | echo "PPPOE_SERVER_IP=\$1" >> $HOME_DIR/$PPPOE_SERVER_DELETE_SCRIPT |
| 83 | echo "curl -X DELETE http://$NETCFG_CONSOLIDATOR_IP:$NETCFG_RESTAPI_PORT/rest:\$PPPOE_SERVER_IP:$AP_RESTAPI_PORT" >> $HOME_DIR/$PPPOE_SERVER_DELETE_SCRIPT |
| 84 | chmod +x $HOME_DIR/$PPPOE_SERVER_DELETE_SCRIPT |
| 85 | } |
| 86 | |
| 87 | echo "nova_pppoe_setup.sh: Execution Begin" |
| 88 | # |
| 89 | # NOVA-COMPUTE Node/VSG Globals. |
| 90 | # |
| 91 | # NOVA PPPoE Params |
| 92 | NOVA_PPPOE_IFACE=eth3 |
| 93 | NOVA_PPPOE_IFACE_IP=10.200.200.200 |
| 94 | NOVA_PPPOE_PEER_IP=10.200.200.100 |
| 95 | NOVA_PPPOE_VXLAN_NAME=vxlanp |
| 96 | NOVA_PPPOE_VXLAN_ID=42 |
| 97 | # NOVA PPPoE Params End |
| 98 | ONOS_VM_PUBLIC_IP=10.100.198.201; export ONOS_VM_PUBLIC_IP |
| 99 | OnosIP=$ONOS_VM_PUBLIC_IP; export OnosIP |
| 100 | NETCFG_CONSOLIDATOR_IP=10.3.0.1; export NETCFG_CONSOLIDATOR_IP |
| 101 | VCPEGW_BR_IP=10.3.0.2; export VCPEGW_BR_IP |
| 102 | VCPEGW_BR_NAME=vcpe_gwbr; export VCPEGW_BR_NAME |
| 103 | VCPEGW_BR_SUBNET=10.3.0.0; export VCPEGW_BR_SUBNET |
| 104 | VSG_WAN_BR_NAME=br-wan; export VSG_WAN_BR_NAME |
| 105 | VCPEGW_DOCKER_IMAGE=vcpe_gwdocker.tar; export VCPEGW_DOCKER_IMAGE |
| 106 | VSG_LAN_IFACE=eth0; export VSG_LAN_IFACE |
| 107 | VCPEGW_DOCKER_HOME=/home/ubuntu; export VCPEGW_DOCKER_HOME |
| 108 | VSGGW_BR_NAME=vsg_gwbr; export VSGGW_BR_NAME |
| 109 | VCPEGW_WAN_IFACE=eth0; export VCPEGW_WAN_IFACE |
| 110 | VCPEGW_LOCAL_IFACE=eth1; export VCPEGW_LOCAL_IFACE |
| 111 | VCPEGW_WAN_MAC_PREFIX=00:17:38; export VCPEGW_WAN_MAC_PREFIX |
| 112 | VCPEGW_NETMASK_BITS=16; export VCPEGW_NETMASK_BITS |
| 113 | # |
| 114 | # The VCPEGW_WAN_IP_PREFIX should be in the same subnet as |
| 115 | # as the VCPEGW_BR_SUBNET |
| 116 | # If it is moved to Class-C subnet then the prefix should be |
| 117 | # adjusted. |
| 118 | VCPEGW_WAN_IP_PREFIX=10.3; export VCPEGW_WAN_IP_PREFIX |
| 119 | |
| 120 | # |
| 121 | # No specific reason to start at 128. Just to keep addresses |
| 122 | # in non-overlapping range. |
| 123 | VCPEGW_WAN_IP_START=128; export VCPEGW_WAN_IP_START |
| 124 | # |
| 125 | # Interface that would be connecting the VSG instance to |
| 126 | # the vcpegw_br in the nova-compute node. |
| 127 | # |
| 128 | NETCFG_UP_IFACE=eth2; export NETCFG_UP_IFACE |
| 129 | HOME_DIR=`pwd`; export HOME_DIR |
| 130 | |
| 131 | PPPOE_INSTALL_DIR=/usr/local/pppoe; export PPPOE_INSTALL_DIR |
| 132 | PPPOE_VSG_ID_FILE_NAME=vsg_id.txt; export PPPOE_VSG_ID_FILE_NAME |
| 133 | VSG_ENV_FILE=vsg_env.txt; export VSG_ENV_FILE |
| 134 | |
| 135 | ### Env. variables used in setting up VCPEPROXY. |
| 136 | ## |
| 137 | ## |
| 138 | VCPEPROXY_WAN_IFACE=eth0; export VCPEPROXY_WAN_IFACE |
| 139 | VCPEPROXY_WAN_IP=0.0.0.0;export VCPEPROXY_WAN_IP |
| 140 | VCPEPROXY_IP_PREFIX=192.168.0;export VCPEPROXY_IP_PREFIX |
| 141 | VCPEPROXY_DHCP_BASE=50;export VCPEPROXY_DHCP_BASE |
| 142 | VCPEPROXY_BASE_IP=`echo $VCPEPROXY_IP_PREFIX.$VCPEPROXY_DHCP_BASE`; export VCPEPROXY_BASE_IP |
| 143 | VCPEPROXY_PREFIX=vcpe; export VCPEPROXY_PREFIX |
| 144 | VSG_CP_IFACE=$VCPEGW_BR_NAME; export VSG_CP_IFACE |
| 145 | VCPEPROXY_CP_IFACE=eth2; export VCPEPROXY_CP_IFACE |
| 146 | VCPEPROXY_CP_MAC_PREFIX=00:16:3E;export VCPEPROXY_CP_MAC |
| 147 | # |
| 148 | # LOCAL IP is hardcoded since it has to sink up with the XOS assigned |
| 149 | # IP address. May be later we can relax this restriction. |
| 150 | VCPEPROXY_LOCAL_IP="192.168.0.1"; export VCPEPROXY_LOCAL_IP |
| 151 | VCPEPROXY_LOCAL_IP_PREFIX="192.168.0"; export VCPEPROXY_LOCAL_IP_PREFIX |
| 152 | VCPEPROXY_CP_IP_PREFIX=$VCPEGW_WAN_IP_PREFIX; export VCPEPROXY_CP_IP_PREFIX |
| 153 | VCPEPROXY_CP_IP_START=2; export VCPEPROXY_CP_IP_START |
| 154 | VCPEPROXY_DHCP_LISTEN_ADDRESS=$VCPEPROXY_LOCAL_IP;export VCPEPROXY_DHCP_LISTEN_ADDRESS |
| 155 | VCPEPROXY_DHCP_LOW=$(( VCPEPROXY_DHCP_BASE + 1 ));export VCPEPROXY_DHCP_LOW |
| 156 | VCPEPROXY_NUM_HOSTS=100; export VCPEPROXY_NUM_HOSTS |
| 157 | VCPEPROXY_DHCP_HIGH=$(( VCPEPROXY_DHCP_LOW + VCPEPROXY_NUM_HOSTS ));export VCPEPROXY_DHCP_HIGH |
| 158 | VCPEPROXY_DOCKER_HOME=/home/ubuntu; export VCPEPROXY_DOCKER_HOME |
| 159 | VSG_NUM_ONUS=64; export VSG_NUM_ONUS |
| 160 | |
| 161 | # The number of hosts is restricted to 4 for the project(4 APs per ONU). |
| 162 | # For other projects, the number of hosts may be increased to a value upto 62 |
| 163 | # |
| 164 | MAX_NUM_VSG=4; export MAX_NUM_VSG |
| 165 | VCPEPROXY_DVAL_START=$(( MAX_NUM_VSG+2 )); export VCPEPROXY_DVAL_START |
| 166 | MAX_IP_PER_VSG=$(( VSG_NUM_ONUS *(VCPEPROXY_NUM_HOSTS+1) )); export MAX_IP_PER_VSG |
| 167 | |
| 168 | NETCFG_RESTAPI_PORT=24000; export NETCFG_RESTAPI_PORT |
| 169 | AP_RESTAPI_PORT=3000; export AP_RESTAPI_PORT |
| 170 | AP_REST_NETCFG=netcfg.sh; export AP_REST_NETCFG |
| 171 | APMGMT_TAR_DIR="/tmp"; export APMGMT_TAR_DIR |
| 172 | IPV6_TAR_DIR="/tmp"; export APMGMT_TAR_DIR |
| 173 | APMGMT_TAR_FILE_NAME=apmgmt_js.tar;export APMGMT_TAR_FILE_NAME |
| 174 | IPV6_TAR_FILE_NAME=ipv6.tar;export IPV6_TAR_FILE_NAME |
| 175 | APMGMT_TAR_FILE=`echo $APMGMT_TAR_DIR/$APMGMT_TAR_FILE_NAME`; export APMGMT_TAR_FILE |
| 176 | IPV6_TAR_FILE=`echo $IPV6_TAR_DIR/$IPV6_TAR_FILE_NAME`; export IPV6_TAR_FILE |
| 177 | PPPOE_VCPE_TAR_FILE=pppoe_vcpe_docker.tar;export PPPOE_VCPE_TAR_FILE |
| 178 | PPPOE_VCPE_TAR_GZ_FILE=pppoe_vcpe_docker.tar.gz |
| 179 | PPPOE_SERVER_ADD_SCRIPT=pppoe_server_add.sh |
| 180 | PPPOE_SERVER_DELETE_SCRIPT=pppoe_server_delete.sh |
| 181 | VSG_DOCKER_IPV4="" |
| 182 | |
| 183 | if [[ "$1" == "ipv4" ]]; then |
| 184 | echo "vsg vcpe supports $1" |
| 185 | VSG_DOCKER_IPV4="ipv4" |
| 186 | else |
| 187 | echo "vsg vcpe supports ipv6" |
| 188 | fi |
| 189 | |
| 190 | if ping -c 3 $ONOS_VM_PUBLIC_IP >/dev/null; then |
| 191 | reachable=1 |
| 192 | else |
| 193 | echo "ONOS VM ($ONOS_VM_PUBLIC_IP) is not reachable!!!" |
| 194 | echo "$0 : Script execution failed!!!!!Bailing out..." |
| 195 | exit 0 |
| 196 | fi |
| 197 | |
| 198 | if brctl show |grep $VSGGW_BR_NAME ; then |
| 199 | echo "$VSGGW_BR_NAME exists,...Cleaning up $VSGGW_BR_NAME" |
| 200 | sudo ip link set dev $VSGGW_BR_NAME down |
| 201 | sudo brctl delbr $VSGGW_BR_NAME |
| 202 | sleep 1 |
| 203 | fi |
| 204 | sudo brctl addbr $VSGGW_BR_NAME |
| 205 | sudo ip link set dev $VSGGW_BR_NAME up |
| 206 | sudo ip link set dev $VSGGW_BR_NAME dynamic off |
| 207 | sudo ip addr add $NETCFG_CONSOLIDATOR_IP/$VCPEGW_NETMASK_BITS dev $VSGGW_BR_NAME |
| 208 | #PPPoE |
| 209 | if ifconfig -a |grep $NOVA_PPPOE_VXLAN_NAME; then |
| 210 | sudo ip link set dev $NOVA_PPPOE_VXLAN_NAME down |
| 211 | sudo ip link delete $NOVA_PPPOE_VXLAN_NAME |
| 212 | sleep 1 |
| 213 | fi |
| 214 | sudo ifconfig $NOVA_PPPOE_IFACE up |
| 215 | sudo ifconfig $NOVA_PPPOE_IFACE $NOVA_PPPOE_IFACE_IP/24 |
| 216 | sudo ip link add $NOVA_PPPOE_VXLAN_NAME type vxlan id $NOVA_PPPOE_VXLAN_ID remote $NOVA_PPPOE_PEER_IP local $NOVA_PPPOE_IFACE_IP dev $NOVA_PPPOE_IFACE |
| 217 | sudo ip link set up dev $NOVA_PPPOE_VXLAN_NAME |
| 218 | sudo brctl addif $VSGGW_BR_NAME $NOVA_PPPOE_VXLAN_NAME |
| 219 | #PPPoE End |
| 220 | ifconfig $VSGGW_BR_NAME |
| 221 | echo "Clearing VSG ID file.." |
| 222 | rm -f ${HOME_DIR}/$PPPOE_VSG_ID_FILE_NAME |
| 223 | touch ${HOME_DIR}/$PPPOE_VSG_ID_FILE_NAME |
| 224 | echo "ONOS VM Reachable=$reachable" |
| 225 | echo "VCPEGW_BR setup..." |
| 226 | |
| 227 | if [ ! -f ~/admin-openrc.sh ]; then |
| 228 | echo "admin-openrc.sh is not found under /home/ubuntu directory" |
| 229 | scp vagrant@prod:admin-openrc.sh ~/ |
| 230 | sudo chmod +x ~/admin-openrc.sh |
| 231 | fi |
| 232 | cp ~/admin-openrc.sh ${HOME_DIR} |
| 233 | |
| 234 | sudo apt list --installed | grep sshpass > /dev/null 2>&1 |
| 235 | if [ "$?" == 1 ]; then |
| 236 | sudo apt-get install sshpass -y |
| 237 | fi |
| 238 | |
| 239 | if [ -d ${HOME_DIR}/apps ]; then |
| 240 | echo "Using ${HOME_DIR}/apps to install REST server applications" |
| 241 | else |
| 242 | echo "apps directory is missing..." |
| 243 | echo "$0: Script execution failed!!!.Bailing out.." |
| 244 | exit 0 |
| 245 | fi |
| 246 | |
| 247 | # |
| 248 | # Update NetcfgConfig.json with ONOS_VM_PUBLIC_IP |
| 249 | # |
| 250 | echo "{\"OnosIP\":\"$ONOS_VM_PUBLIC_IP\"}" > $HOME_DIR/apps/netcfgConsolidator/NetcfgConfig.json |
| 251 | |
| 252 | |
| 253 | PPPOE_APPS_DIR="$PPPOE_INSTALL_DIR/utils/"; export PPPOE_APPS_DIR |
| 254 | PPPOE_AP_MGMT_DIR=pppoeMgmt; export PPPOE_AP_MGMT_DIR |
| 255 | IPV6_AP_DIR=ipv6Apps; export IPV6_AP_DIR |
| 256 | NODEJS_MODULES_DIR=/usr/local/lib/node_modules/; export NODEJS_MODULES_DIR |
| 257 | if [ -d "$PPPOE_APPS_DIR" ]; then |
| 258 | echo "$PPPOE_APPS_DIR exists, removing..." |
| 259 | sudo rm -rf $PPPOE_APPS_DIR |
| 260 | sudo rm -rf $PPPOE_INSTALL_DIR |
| 261 | fi |
| 262 | |
| 263 | if [ ! -f $HOME_DIR/apps/$PPPOE_AP_MGMT_DIR/authwebapp/js/jquery.js ]; then |
| 264 | wget https://code.jquery.com/jquery-1.11.1.js |
| 265 | mv jquery-1.11.1.js $HOME_DIR/apps/$PPPOE_AP_MGMT_DIR/authwebapp/js/jquery.js |
| 266 | fi |
| 267 | |
| 268 | if [ ! -f $HOME_DIR/apps/$IPV6_AP_DIR/tayga ]; then |
| 269 | wget http://www.litech.org/tayga/tayga-0.9.2.tar.bz2 |
| 270 | tar xvf tayga-0.9.2.tar.bz2 |
| 271 | cd tayga-0.9.2 |
| 272 | ./configure |
| 273 | make |
| 274 | cp tayga $HOME_DIR/apps/$IPV6_AP_DIR |
| 275 | fi |
| 276 | |
| 277 | if [ ! -f $HOME_DIR/apps/$IPV6_AP_DIR/totd ]; then |
| 278 | wget https://launchpad.net/ubuntu/+archive/primary/+files/totd_1.5.1.orig.tar.gz |
| 279 | tar xvf totd_1.5.1.orig.tar.gz |
| 280 | cd totd-1.5.1 |
| 281 | ./configure OPTFLAGS="-Wno-error" |
| 282 | make |
| 283 | cp totd $HOME_DIR/apps/$IPV6_AP_DIR |
| 284 | fi |
| 285 | |
| 286 | if [ ! -f $PPPOE_VCPE_TAR_FILE ]; then |
| 287 | if [ -f $PPPOE_VCPE_TAR_GZ_FILE ]; then |
| 288 | gzip -d $PPPOE_VCPE_TAR_GZ_FILE |
| 289 | fi |
| 290 | fi |
| 291 | sudo mkdir $PPPOE_INSTALL_DIR |
| 292 | sudo mkdir $PPPOE_APPS_DIR |
| 293 | |
| 294 | sudo cp -r $HOME_DIR/apps/* $PPPOE_APPS_DIR |
| 295 | echo $ONOS_VM_PUBLIC_IP >$PPPOE_INSTALL_DIR/onos_vm_public_ip |
| 296 | # |
| 297 | # Create environment file. |
| 298 | # |
| 299 | echo "Creating environment file" |
| 300 | create_env_file |
| 301 | create_pppoe_server_script |
| 302 | |
| 303 | sudo $HOME_DIR/nova_consolidator_setup.sh |
| 304 | sudo $HOME_DIR/nova_consolidator_stop.sh |
| 305 | sleep 2 |
| 306 | sudo $HOME_DIR/nova_consolidator_start.sh |
| 307 | $HOME_DIR/nova_vsg_monitor.sh > $HOME_DIR/nova_vsg_monitor.log 2>&1 & |
| 308 | echo "nova_pppoe_setup.sh: Execution End" |
| 309 | |