Jump to: navigation, search

OpenDaylight Virtual Tenant Network (VTN):Installation:VTN Coordinator

Installing VTN Coordinator from source code

Prior preparation

1. Arrange a server with any one of the supported 64-bit OS environment.
    RHEL 6 / 7
    CentOS 6 / 7
    Ubuntu (12.04/12.10/13.04/14.04)
2. Install necessary packages.
  • RHEL/Fedora/Cent OS
   yum install make glibc-devel gcc gcc-c++ boost-devel openssl-devel \
     ant perl-ExtUtils-MakeMaker unixODBC-devel perl-Digest-SHA uuid libxslt libcurl libcurl-devel git bzip2
  • Ubuntu 13.10/14.04
  apt-get install pkg-config gcc make  ant g++ maven git libboost-dev libcurl4-openssl-dev \
   libjson0-dev libssl-dev openjdk-7-jdk unixodbc-dev xmlstarlet
  • Ubuntu 12.04
  apt-get install pkg-config gcc make  ant g++ maven git libboost-dev libcurl4-openssl-dev \
   libssl-dev openjdk-7-jdk unixodbc-dev
   Note:Install libjson0-dev from packages of ubuntu versions (>12.04)
3. Install JDK 7, and add the JAVA_HOME environment variable (Only for RHEL/Cent OS/Fedora)
  • RHEL 6.1/Cent OS 6.1
Download Oracle JDK 7 from the following page, and install it.
Set JAVA_HOME to the location of the JDK.
e.g.) export JAVA_HOME=/usr/java/default
  • RHEL 6.4/Cent OS 6.4 /Fedora (17/20)
Install OpenJDK 7.
yum install java-1.7.0-openjdk-devel
Set JAVA_HOME to the location of the JDK.
e.g.) export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64
4. Preperation for Execution
  • RHEL 6/Fedora/Cent OS 6
Download the following PostgreSQL 9.1 files (latest versions) from http://yum.postgresql.org/9.1/redhat/rhel-6.4-x86_64/ (RHEL 6.4) or http://yum.postgresql.org/9.1/redhat/rhel-6.1-x86_64/ (RHEL 6.1)and install.
  • postgresql91-libs
  • postgresql91
  • postgresql91server
  • postgresql91-contrib
  • postgresql91-odbc

Note: the above procedure caters only for RHEL 6, For Fedora and CentOS, Please visit http://yum.postgresql.org and install the corresponding rpm for the particular version of Linux distro

  • RHEL 7/Cent OS 7
Download and install the Postgres 9.3 by installing the rpm

Note: For RHEL 7, Please install the below rpm

 rpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-7-x86_64/pgdg-redhat93-9.3-3.noarch.rpm
 yum install postgresql93-libs postgresql93 postgresql93-server postgresql93-contrib postgresql93-odbc 

Note: For Cent OS 7, Please install the below rpm

 rpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-7-x86_64/pgdg-centos93-9.3-3.noarch.rpm 
 yum install postgresql93-libs postgresql93 postgresql93-server postgresql93-contrib postgresql93-odbc 
  • Ubuntu 13.10/12.04
  apt-get install  postgresql-9.1 postgresql-client-9.1 postgresql-client-common postgresql-contrib-9.1 odbc-postgresql

5. Install Maven. (RHEL/Cent OS/Fedora)
6. Install gtest-devel, json-c libraries
  • RHEL/Fedora/Cent OS
  wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
  rpm -Uvh epel-release-6-8.noarch.rpm
  yum install gtest-devel json-c json-c-devel
  Note: For RHEL7 and CentOS7, the json-c is part of the default repo, Please install json-c and json-c-devel from the default repo 
  and gtest-devel alsone from the EPEL repo (http://dl.fedoraproject.org/pub/epel/7/x86_64/)
  • Ubuntu 13.10/Ubuntu 12.04
  apt-get install cmake libgtest-dev
  cp -R /usr/src/gtest gtest-work
  cd gtest-work
  cmake CMakeLists.txt
  sudo cp *.a /usr/lib
  cd ..
  rm -rf gtest-work


Important Note: User is not required to be mandatorily root, but the user must own the directory /usr/local/vtn

For example, the directory should appear as below (assuming the user as "vtn"):
# ls -l /usr/local/
drwxr-xr-x. 12 vtn vtn 4096 Mar 14 21:53 vtn

1. Download the code from git.
git clone ssh://<username>@git.opendaylight.org:29418/vtn.git


git clone https://git.opendaylight.org/gerrit/p/vtn.git
2. Build and install VTN Coordinator.
a. cd vtn
b. To git checkout
  • Helium branch:
        git checkout stable/helium
  • Lithium branch:
        git checkout stable/lithium
  • Beryllium branch:
        git checkout stable/beryllium
c. cd coordinator
d. mvn -f dist/pom.xml install
e. To install coordinator
  • Helium branch
        tar -C/ -jxvf dist/target/distribution.vtn-coordinator-
  • Lithium branch
        tar -C/ -jxvf dist/target/distribution.vtn-coordinator-
  • Beryllium branch
        tar -C/ -jxvf dist/target/distribution.vtn-coordinator-6.2.0-beryllium-bin.tar.bz2

Run VTN Coordinator

Prior preparation

To change the port

1. By Default coordinator will listen on port 8083
2. To change the listening port modify the TOMCAT_PORT in below file
  • /usr/local/vtn/tomcat/conf/tomcat-env.sh.
3. Set up the DB.

If any problem in setting up db, Please click on troubleshooting page


1. Start VTN Coordinator.
2. Execute the following commands while stopping.

Installing HTTPS in VTN Coordinator

1. Please go throuth the below link,


  • VTN Coordinator version information will be displayed if following command is executed when VTN has started successfully.
curl --user admin:adminpass -H 'content-type: application/json' -X GET \
  • The expected response message: