Have questions? Stuck? Please check our FAQ for some common questions and answers.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

I noticed that many people expressed the exigence to install ONOS on CentOS 6.X, 7 based systems, since it's very common to find these types of systems in production environments. Even if this distribution is not officially supported at the moment I though it would be a good idea to come up with a way to use that.

Nothing complicated. Since ONOS is based on Java, which by definition can run on heterogeneous systems, it's just a matter of figuring out the right dependencies.

I came up with this little tutorial, that hopefully should quickly guide the users over the process.

Important note: The tutorial is based on the following assumptions:

  • The process described below will focus on the requirements to both compile and run (as a target machine) ONOS. The final deployment procedure is then totally similar to the one described for Ubuntu in the main user guide.
  • You've just installed a brand new CentOS box and have logged in for the first time.

The basics: setup the network card, the hostname

First let's configure the network card.

$ ip link set eth0 up
$ vi /etc/sysconfig/network-scripts/ifcfg-eth0           # Replace "ON_BOOT = no" with "ON_BOOT = yes"
$ service network restart

Then let's set the hostname editing /etc/hostname and /etc/hosts.

$ vi /etc/sysconfig/network          # Check that the host name is correct
$ vi /etc/hosts

Install dependencies

For dependencies, you can just use yum.

$ yum -y install vim openssh-server openssh-clients wget git xz gcc gcc-c++

Now we'll install Java8 on CentOS.

$ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.rpm"

$ yum -y localinstall jdk-8u151-linux-x64.rpm

The yum command manages the the dependences, that's why we use it instead of rpm.


For maven I followed this guide instead: http://preilly.me/2013/05/10/how-to-install-maven-on-centos/

We need to manually install a dependency called ncurses, compiling the package.This is how you should do it. If you see some errors at the end of the procedure, don't worry about it. It's a known issue of the package, that won't anyway hurt the functionality provided.

$ wget http://blog.starcklin.com/files/dpkg_1.17.6.tar.xz
$ tar -xf dpkg_1.17.6.tar.xz
$ cd dpkg-1.17.6
$ sudo yum install ncurses-devel ncurses
$ ./configure
$ make
$ cd utils
$ sudo make install

Let's configure ssh.

$ chkconfig sshd on
$ ssh-keygen -t rsa

Configure IPtables and SELinux (CentOS 6.X)

IPtables and SELinux are enforced by default on CentOS. In this section I briefly show how to disable both, in order to don't deal with them. It's then up to the user to apply her/his specific configuration later on in a production environment.

Deactivate IPtables

$ sudo iptables -F
$ sudo service iptables save
$ sudo chkconfig iptables off
$ sudo chkconfig ip6tables off

Deactivate SELinux

$ echo 0 >/selinux/enforce
$ vi /etc/selinux/config  # replace "SELINUX=enforcing" to "SELINUX=disabled"

Configure an admin user

In order to use ONOS, we need to add a dedicated user, who must be sudoer (without the need of typing the password).

$ sudo adduser admin
$ sudo visudo  # add the following line at the END of the file: admin ALL=(ALL) NOPASSWD:ALL
               # Modify also the line From: "Defaults requiretty” to "Defaults !requiretty"

From this point we will continue as the admin user. If we did things correctly, we shouldn't be asked for the password.

$ sudo su admin

Create needed directories:

$ mkdir -p ~/Downloads
$ mkdir -p ~/Applications

Configure Git:

$ sudo git config --global http.sslverify false

Install ONOS

At this point you can download/deploy on this machine ONOS, as described in the main user guide.



  • No labels