=================================== Setting Up Open Daylight Controller =================================== For exemplary purpose, we assume: * The hostname of Open Daylight Controller Node is ``opnfv-odl- controller`` * CentOS 7 is installed * We use ``opnfv`` as username to login. * Java 7 is installed in directory ``=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/`` **ODL-1**: Login to Open Daylight Controller Node with username ``opnfv``. **ODL-2**: Download the ODL Lithium distribution from ``http://www.opendaylight.org/software/downloads`` ``wget https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.3.3-Lithium-SR3/distribution-karaf-0.3.3-Lithium-SR3.tar.gz`` **ODL-3**: Extract the tar file ``tar -zxvf distribution-karaf-0.3.3-Lithium-SR3.tar.gz`` **ODL-4**: Install Java7 ``sudo yum install -y java-1.7.0-openjdk.x86_64`` **ODL-5 (OPTIONAL)**: We are using ``iptables`` instead of ``firewalld`` but this is optional for the OpenDaylight Controller Node. The objective is to allow all connections on the internal private network (ens160). The same objective can be achieved using firewalld as well. **If you intend to use firewalld, please skip this step and directly go to next step**: | ``sudo systemctl stop firewalld.service`` | ``sudo yum remove -y firewalld`` | ``sudo yum install -y iptables-services`` | ``sudo touch /etc/sysconfig/iptables`` | ``sudo systemctl enable iptables.service`` | ``sudo systemctl start iptables.service `` | ``sudo iptables -I INPUT 1 -i ens160 -j ACCEPT`` | ``sudo iptables -I INPUT -m state --state NEW -p tcp --dport 8181 -j ACCEPT # For ODL DLUX UI`` | ``sudo iptables-save > /etc/sysconfig/iptables`` **ODL-6**: Open a screen session. ``screen -S ODL_Controller`` **ODL-7**: In the new screen session, change directory to where Open Daylight is installed. Here we use ``odl`` directory name and ``Lithium SR3`` installation as an example. ``cd ~/odl/distribution-karaf-0.3.3-Lithium-SR3/bin`` **ODL-8**: Set the JAVA environment variables. | ``export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/jre`` | ``export PATH=$PATH:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/jre/bin`` **ODL-9**: Run the ``karaf`` shell. ``./karaf`` **ODL-10**: You are now in the Karaf shell of Open Daylight. To explore the list of available features you can execute ``feature:list``. In order to enable Open Daylight with OpenStack, you have to load the ``odl-ovsdb-openstack`` feature. ``opendaylight-user@opnfv>feature:install odl-ovsdb-openstack`` **ODL-11**: Verify that OVSDB feature is installed successfully. | ``opendaylight-user@opnfv>feature:list -i | grep ovsdb`` | odl-ovsdb-openstack | 1.1.1-Lithium-SR1 | x | ovsdb-1.1.1-Lithium-SR1 | OpenDaylight :: OVSDB :: OpenStack Network Virtual | odl-ovsdb-southbound-api | 1.1.1-Lithium-SR1 | x | odl-ovsdb-southbound-1.1.1-Lithium-SR1 | OpenDaylight :: southbound :: api | odl-ovsdb-southbound-impl | 1.1.1-Lithium-SR1 | x | odl-ovsdb-southbound-1.1.1-Lithium-SR1 | OpenDaylight :: southbound :: impl | odl-ovsdb-southbound-impl-rest|1.1.1-Lithium-SR1 | x | odl-ovsdb-southbound-1.1.1-Lithium-SR1| OpenDaylight :: southbound :: impl :: REST | odl-ovsdb-southbound-impl-ui | 1.1.1-Lithium-SR1| x | odl-ovsdb-southbound-1.1.1-Lithium-SR1| OpenDaylight :: southbound :: impl :: UI | ``opendaylight-user@opnfv>`` **ODL-12**: To view the logs, you can use the following commands (or alternately the file data/log/karaf.log). | ``opendaylight-user@opnfv>log:display`` | ``opendaylight-user@opnfv>log:tail`` **ODL-13**: To enable ODL DLUX UI, install the following features. Then you can navigate to ``http://:8181/index.html`` for DLUX UI. The default user-name and password is admin/admin. ``opendaylight-user@opnfv>feature:install odl-restconf odl-l2switch-switch odl-mdsal-apidocs odl-dlux-core`` **ODL-14**: To exit out of screen session, please use the command ``CTRL+a`` followed by ``d`` **Note: Do not kill the screen session, it will terminate the ODL controller.** At this moment, Open Daylight has been started successfully.