X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=README.markdown;h=3676f7cb5dcb53f6253c4464161171bf21e2c656;hb=HEAD;hp=0d404e1719a58a37143f4b6fdb1f4e0a4c473d9f;hpb=2e12305f3aa3f143365e765e743b848609941830;p=integration%2Fpackaging%2Fansible-opendaylight.git diff --git a/README.markdown b/README.markdown index 0d404e1..3676f7c 100644 --- a/README.markdown +++ b/README.markdown @@ -1,28 +1,93 @@ +[![CI Status][7]][6] + # OpenDaylight Ansible Role -Ansible role for the [OpenDaylight SDN controller](http://www.opendaylight.org/project/technical-overview). +Ansible role for the [OpenDaylight SDN controller][1]. + +#### Ansible Dependencies: `ansible-galaxy` + +Releases of this role can also be installed available via [Ansible Galaxy][5] +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 +``` + +#### Ansible Dependencies: Roles -**This project is new and under construction. See our [issue tracker](https://github.com/dfarrell07/ansible-opendaylight/issues) for details.** +After you install the `ansible-galaxy` tool, point it at the project's +`requirements.yml` file to install ODL's role. -## Requirements +``` +[~/ansible-opendaylight]$ ansible-galaxy install -r requirements.yml +``` -The OpenDaylight Ansible role handles the installation and configuration of all of its dependences. +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` param. The extra features you pass will typically be driven by the requirements of your ODL install. You'll almost certainly need to pass some. +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 ODL install. +You'll almost certainly need to pass some. -OpenDaylight normally installs a default set of Karaf features at boot. They are recommended, so the ODL Puppet mod defaults to installing them. This can be customized by overriding the `default_features` param. You shouldn't normally need to do so. +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. -## Dependencies +### REST API Port -The OpenDaylight Ansible role doesn't depend on any other Ansible roles. +To change the port on which OpenDaylight's northbound listens for REST API +calls, use the `nb_rest_port` variable. This was added because OpenStack's +Swift project uses a conflicting port. + +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 `odl_install_method` are `rpm_repo` or `rpm_path`. +For Debian based OSs, `odl_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 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`. + +```Shellsession +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`. + +```Shellsession +sudo ansible-playbook -i "localhost," -c local examples/ +``` + +You can also use ansible-opendaylight using [Vagrant base box examples of Ansible ODL deployments][8]. ## Example Playbook -The simple example playbook below would install and configure OpenDaylight using this role. +The simple example playbook below would install and configure OpenDaylight +using this role. ```yaml --- @@ -32,12 +97,50 @@ The simple example playbook below would install and configure OpenDaylight using - opendaylight ``` +To override default settings, pass variables to the `opendaylight` role. + +```yaml +--- +- 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! +The OpenDaylight Ansible role is Open Sourced under a BSD two-clause license. + +[Contributions encouraged][4]! ## Author Information -[Daniel Farrell](https://twitter.com/dfarrell07) of the [OpenDaylight Integration Team](https://wiki.opendaylight.org/view/CrossProject:Integration_Group) is the main developer of this module. +[Daniel Farrell][2] of the [OpenDaylight Integration/Packaging project][3] is +the main developer of this role. + +See [CONTRIBUTING.md][4] for details about how to contribute to the +OpenDaylight Ansible role. + +[1]: http://www.opendaylight.org/project/technical-overview "OpenDaylight main technical overview" + +[2]: https://wiki.opendaylight.org/view/User:Dfarrell07 "Maintainer information" + +[3]: https://wiki.opendaylight.org/view/Integration/Packaging "OpenDaylight Integration/Packaging project wiki" + +[4]: https://github.com/dfarrell07/ansible-opendaylight/blob/master/CONTRIBUTING.md "OpenDaylight Ansible role contributing docs" + +[5]: https://galaxy.ansible.com/list#/roles/3948 "OpenDaylight Ansible role on Ansible Galaxy" + +[6]: https://travis-ci.org/dfarrell07/ansible-opendaylight "OpenDaylight Ansible role Travis CI" + +[7]: https://travis-ci.org/dfarrell07/ansible-opendaylight.svg "Travis CI status image" -Please raise [issues](https://github.com/dfarrell07/ansible-opendaylight/issues) to ask questions, request features, report bugs or otherwise contribute. Please avoid 1-1 communication, as Open Source projects benefit from public, documented communication. +[8]: https://github.com/dfarrell07/vagrant-opendaylight#ansible-deployments "Ansible Vagrant deployment"