X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2Fansible-role.rst;fp=docs%2Fansible-role.rst;h=4dd31c3d6a3c0bd6b858e07d986cb3e8c3624855;hb=a80f11a3ef3070d98a49d0aec97e3b1873e005e8;hp=0000000000000000000000000000000000000000;hpb=206866932247285e67bf6c785cacc3596854c98a;p=integration%2Fpackaging.git diff --git a/docs/ansible-role.rst b/docs/ansible-role.rst new file mode 100644 index 0000000..4dd31c3 --- /dev/null +++ b/docs/ansible-role.rst @@ -0,0 +1,149 @@ +Ansible Role +============ + +Ansible role for the `OpenDaylight SDN controller`_. + +Ansible Dependencies +-------------------- + +Ansible Galaxy +^^^^^^^^^^^^^^ +Releases of this role can also be installed available via `Ansible Galaxy`__ +which ships with Ansible. +To install the latest version of ansible on RedHat 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 + +Roles +^^^^^ +After you install the **ansible-galaxy** tool, point it at the project's +**requirements.yml** file to install ODL's role. + +:: + + [~/ansible-opendaylight]$ ansible-galaxy install -r requirements.yml + +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. + +REST API Port +^^^^^^^^^^^^^ +To change the port on which OpenDaylight's northbound listens for REST API +calls, use the **odl_rest_port** variable. +Example Use Case: +In an Openstack deployment, the swift project is already using the port 818 +which is the default for OpenDaylight and would be in conflict. Use the +**odl_rest_port** variable to change what OpenDaylight uses. + +The Ansible role will handle opening this port in FirewallD if it's active. + +Install Method +^^^^^^^^^^^^^^ + +OpenDaylight can be installed either via an RPM or a .deb depending on the +operating system. +For RedHat based OSs, the valid options for **install_method** +are **rpm_repo** or **rpm_path**. +For Debian based OSs, **install_method** can accept either **deb_repo** or +**deb_path**. + +Installing OpenDaylight +----------------------- +To install OpenDaylight on your system, you can make use of +**ansible-playbook**. + +On RedHat based OSs, you can install OpenDaylight from the RPM repo +(recommended) using the playbook **examples/all_defaults_playbook.yml** or from +a local/remote path to an ODL rpm via +**examples/rpm_path_install_playbook.yml**. + +:: + + sudo ansible-playbook -i "localhost," -c local examples/ + +On a Debian based OS, you can install OpenDaylight either from a Debian repo +using the playbook **examples/deb_repo_install_playbook.yml** or from a +local/remote Deb path using **examples/deb_path_install_playbook.yml**. + +:: + + sudo ansible-playbook -i "localhost," -c local examples/ + +You can also use ansible-opendaylight using `Vagrant base box examples of +Ansible ODL deployments`_. + +Example Playbook +---------------- +The simple example playbook below would install and configure OpenDaylight +using this role. + +:: + + --- + - hosts: example_host + sudo: yes + roles: + - opendaylight + +To override default settings, pass variables to the **opendaylight** role. + +:: + + --- + - hosts: all + sudo: yes + roles: + - role: opendaylight + extra_features: ['odl-netvirt-openstack'] + +Results in: + +:: + + opendaylight-user@root>feature:list | grep odl-netvirt-openstack + odl-netvirt-openstack | | x | odl-netvirt- | OpenDaylight :: NetVirt :: OpenStack + +License +------- +The OpenDaylight Ansible role is Open Sourced under a BSD two-clause license. +`Contributions encouraged!`_ + +Author Information +------------------ +`Daniel Farrell`_ of the `OpenDaylight Integration/Packaging project`_ is the main +developer of this role. + +See `CONTRIBUTING.md`_ for details about how to contribute to the OpenDaylight +Ansible role. + +.. _OpenDaylight SDN controller: https://www.opendaylight.org/project/technical-overview +.. __: https://galaxy.ansible.com/list#/roles/3948 +.. _Vagrant base box examples of Ansible ODL deployments: https://github.com/dfarrell07/vagrant-opendaylight#ansible-deployments +.. _Contributions encouraged!: https://github.com/dfarrell07/ansible-opendaylight/blob/master/CONTRIBUTING.md +.. _Daniel Farrell: https://wiki.opendaylight.org/view/User:Dfarrell07 +.. _OpenDaylight Integration/Packaging project: https://wiki.opendaylight.org/view/Integration/Packaging +.. _CONTRIBUTING.md: https://github.com/dfarrell07/ansible-opendaylight/blob/master/CONTRIBUTING.md \ No newline at end of file