Ansible Role

Ansible role for the OpenDaylight SDN controller.

Installing Ansible-OpenDaylight

The Ansible Galaxy tool that ships with Ansible can be used to install ansible-opendaylight.

To install the latest version of Ansible on Red Hat-based OSs:

$ sudo yum install -y ansible

To install the latest version of Ansible on Debian-based OSs:

$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install -y ansible

After you install ansible-galaxy, install ansible-opendaylight:

$ ansible-galaxy install git+ssh://<LF ID>

The OpenDaylight Ansible role doesn’t depend on any other Ansible roles.

Role Variables

Karaf Features

To set extra Karaf features to be installed at OpenDaylight start time, pass them in a list to the extra_features variable. The extra features you pass will typically be driven by the requirements of your use case.

OpenDaylight normally installs a default set of Karaf features at boot. They are recommended, so the ODL Ansible role defaults to installing them. This can be customized by overriding the default_features variable. You shouldn’t normally need to do so.


To change OpenDaylight’s northbound REST API port from the default of 8181, use the odl_rest_port variable.

For example, in an Openstack deployment, the Swift project uses 8181 and conflicts with OpenDaylight.

The Ansible role will handle opening this port in FirewallD if it’s active.

Install Method

OpenDaylight supports RPM and deb-based installs, either from a repository or directly from a URL to a package. Use the instal_method var to configure which deployment scenario is used.

Valid options:

rpm_repo: Install ODL using its Yum repo config rpm_path: Install ODL RPM from a local path or remote URL dep_repo: Install ODL using a Debian repository deb_path: Install ODL .deb from a local path or remote URL

Installing OpenDaylight

To install OpenDaylight via ansible-opendaylight, use ansible-playbook.

sudo ansible-playbook -i "localhost," -c local examples/<playbook>

Example playbooks are provided for various deployments.

Example Playbooks

The playbook below would install and configure OpenDaylight using all defaults.

- hosts: example_host
    sudo: yes
    - opendaylight

To override default settings, pass variables to the opendaylight role.

- hosts: all
  sudo: yes
    - role: opendaylight
      extra_features: ['odl-netvirt-openstack']

Results in:

opendaylight-user@root>feature:list | grep odl-netvirt-openstack
odl-netvirt-openstack | <odl-release> | x | odl-netvirt-<odl-release> | OpenDaylight :: NetVirt :: OpenStack


OpenDaylight is Open Source. Contributions encouraged!

Author Information

The OpenDaylight Integration/Packaging project maintains this role.