Originally posted on Icaro Camelo’s Blog.
In order to create an OpenDaylight development environment in 5 minutes, the easiest way to have it up and running is using Vagrant. Vagrant creates and configures lightweight, reproducible, and portable development environments. In this case you need to have the following softwares pre-installed:
- git 2+
- virtualbox 5+
- Vagrant 1.8+
To begin the VM creation process you should:
- Be sure you have the aforementioned softwares installed and set in your PATH variable;
- If you don’t have a VM Box, please add one executing this vagrant command: vagrant box add ubuntu64-trusty http://cloud-images.ubuntu.com/vagrant/trusty/20161010/trusty-server-cloudimg-amd64-vagrant-disk1.box
- Clone this repository: https://github.com/icarocamelo/OpenDaylight-Development-Box.git;
- Switch to “odl-dev” branch;
- vagrant up (it may take a while depending on your internet connection) – Go get some coffee! 🙂
- vagrant ssh
For the sake of easiness, I decided to use Shell script to install all the required libraries and dependencies. However, Vagrant supports several configuration management softwares, such as Puppet, Chef, etc. You can even set up a VM in your cloud provider, such as Amazon, VMWare, just installing the respective Vagrant provider, as you can see here. In short, here are some libraries that will be automatically installed once you run ‘vagrant up’:
- Java Development Kit 1.8;
- Maven 3.3.9;
- Clone the following OpenDaylight repositories: odlparent, yangtools and controller (master branch);
Moreover, if you want to simulate a network topology, you can use Mininet. Mininet creates a realistic virtual network, running real kernel, switch and application code on a single machine (VM, cloud or native), in seconds, with a single command. The following link has all required instructions to setup a VM with everything you need to interact with OpenDaylight: http://mininet.org/vm-setup-notes/.
Finally, feel free to open issues, suggest improvements, create a pool request or even fork this repository. I hope you enjoy it!