How to Install ONOS
Open Network Operating System (ONOS) is an open source network operating system for software-defined networks (SDN). Intended to run on white box switches, ONOS is targeted at mission critical networks, including service providers. It provides benefits including:
- Virtually unlimited control plane scalability
- High performance, suitable for large network operators
- Mission-critical level of resiliency
- Support for legacy devices
- Next-generation device support and control for devices that support OpenFlow and P4
ONOS is intended to help service providers migrate their existing networks to white box switches, thus lowering CapEx and OpEx. It was developed in conjunction with service providers including AT&T and NTT Communications.
This document describes how to install ONOS.
INSTALLING ONOS :-
1) INSTALL GIT CORE
$ sudo apt-get install git-core
2) ONOS REQUIREMENTS
System requirements
- 2GB or more RAM (I personally recommend at least 4GB)
- 2 or more processors
- Ubuntu 14.04 LTS or 16.04 LTS (Checked with both distros)
3) INSTALL MAVEN AND KARAF
Software requirements
i) Maven
Install Maven 3.3.9 on your Applications directory
$ cd ~
$ mkdir Applications
$ wget http://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
$ tar -zxvf apache-maven-3.3.9-bin.tar.gz -C ../Applications/
NOTE: Although ONOS has been migrated to Buck, maven was used in earlier releases.
ii) Karaf
Install Karaf 3.0.5 on your Applications directory
$ cd ~
$ cd Applications
$ wget http://archive.apache.org/dist/karaf/3.0.5/apache-karaf-3.0.5.tar.gz
$ tar -zxvf apache-karaf-3.0.5.tar.gz -C ../Applications/
4) INSTALL JAVA 8 and set JAVA_HOME
i) Java 8
$ sudo apt-get install software-properties-common -y
$ sudo add-apt-repository ppa:webupd8team/java -y
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer oracle-java8-set-default -y
ii) SET YOUR JAVA_HOME
$ export JAVA_HOME=/usr/lib/jvm/java-8-oracle
iii) VERIFY IT WITH FOLLOWING COMMAND
$ env | grep JAVA_HOME
JAVA_HOME=/usr/lib/jvm/java-8-oracle
5) DOWNLOAD THE LATEST ONOS
$ git clone https://gerrit.onosproject.org/onos
$ cd onos
$ git checkout master
6) ENVIRONMENTAL VARIABLES
The ONOS source comes with a sample bash_profile that can set these variables for you.
i) Edit ~/.bashrc
$ nano ~/.bashrc
ii) Add the following line at the end
. ~/onos/tools/dev/bash_profile
iii) Reload .bashrc or log out and log in again to apply the changes
. ~/.bashrc
iv) Once you run the above command, you will see in the output of the env command that several new variables, such as ONOS_ROOT, MAVEN, and KARAF_ROOT, have been set.
$ env | grep ONOS_ROOT
ONOS_ROOT=/Users/nirmalkaria/onos
$ env | grep MAVEN
MAVEN=/Users/nirmalkaria/Applications/apache-maven-3.3.9
$ env | grep KARAF_ROOT
KARAF_ROOT=/Users/nirmalkaria/Applications/apache-karaf-3.0.8
7) BUILD AND DEPLOY ONOS
i) Edit ~/Applications/apache-karaf-3.0.5/etc/org.apache.karaf.features.cfg file by appending the following line to featuresRepositories:
$ nano ~/Applications/apache-karaf-3.0.5/etc/org.apache.karaf.features.cfg
ii) Locate the featuresRepositories and append this line (will need a comma before appending the text to separate from the previous value)
mvn:org.onosproject/onos-features/1.10.0-SNAPSHOT/xml/features
8) BUILD ONOS WITH MAVEN
$ cd ~/onos
$ mvn clean install or use the alias ‘mci’
9) Selecting IP address
Export ONOS4_IP or ONOS_NIC environment variables with the IP address prefix to configure ONOS clustering component. This IP address is the ip address of the controller.
$ export ONOS_IP=10.1.9.255
$ export ONOS_NIC=10.1.9.*
10) Selecting ONOS apps to activate
To configure ONOS with a set of applications that should be automatically activated on startup, use the ONOS_APPS environment variable as follows:
$ export ONOS_APPS=drivers,openflow,proxyarp,mobility,fwd
11) Starting ONOS
$ ok clean Creating local cluster configs for IP 10.1.9.247... Setting up hazelcast.xml for subnet 10.1.9.*... Staging builtin apps... Customizing apps to be auto-activated: drivers,openflow,proxyarp,mobility,fwd... Welcome to Open Network Operating System (ONOS)! ____ _ ______ ____ / __ \/ |/ / __ \/ __/ / /_/ / / /_/ /\ \ \____/_/|_/\____/___/
Hit '<tab>' for a list of available commands and '[cmd] --help' for help on a specific command. Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown ONOS. onos>
At this point, typing help onos at the prompt should still bring up a list of available commands. Pressing Ctrl-D or logout will exit the CLI. |
METHOD 2
BUILDING ONOS USING BUCK
1) INSTALL JAVA 8 and set JAVA_HOME
i) Java 8
$ sudo apt-get install software-properties-common -y
$ sudo add-apt-repository ppa:webupd8team/java -y
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer oracle-java8-set-default -y
ii) SET YOUR JAVA_HOME
$ export JAVA_HOME=/usr/lib/jvm/java-8-oracle
iii) Verify it with the following command
$ env | grep JAVA_HOME
JAVA_HOME=/usr/lib/jvm/java-8-oracle
2) Download latest ONOS
$ git clone https://gerrit.onosproject.org/onos
$ cd onos
$ git checkout master
3) Development Environment Setup
The ONOS_ROOT environment variable is exported in the shell profile (.bash_aliases, .profile, etc.)
$ export ONOS_ROOT=~/onos
$ source $ONOS_ROOT/tools/dev/bash_profile
4) Build with Buck
$ sudo apt-get install zip unzip
$ cd $ONOS_ROOT
$ tools/build/onos-buck build onos --show-output
ii) To execute ONOS unit tests,
$ tools/build/onos-buck test
|
iii) To import the project into IntelliJ
$ tools/build/onos-buck project
5) Run ONOS
$ cd $ONOS_ROOT
$ tools/build/onos-buck run onos-local -- clean debug
i) To attach to the ONOS CLI console, run:
$ tools/test/bin/onos localhost
ii) To open your default browser on the ONOS GUI page, simply type:
$ tools/test/bin/onos-gui localhost or alternatively visit http://localhost:8181/onos/ui
Copyright © 2024 Pica8 Inc. All Rights Reserved.