-
Notifications
You must be signed in to change notification settings - Fork 563
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'upstream/0.30'
- Loading branch information
Showing
22 changed files
with
613 additions
and
64 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,34 +1,23 @@ | ||
NAPALM | ||
====== | ||
NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) is python library that implements a set of functions to interact with different vendors using a unified API. | ||
NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) is a Python library that implements a set of functions to interact with different router vendor devices using a unified API. | ||
|
||
 | ||
|
||
NAPALM supports several methods to connect to the devices, to manipulate configuration and to retrieve data. | ||
NAPALM supports several methods to connect to the devices, to manipulate configurations or to retrieve data. | ||
|
||
Supported Network Operating Systems | ||
----------------------------------- | ||
* EOS - Using [pyeapi](https://github.com/arista-eosplus/pyeapi). You need version 4.14.6M or superior. | ||
* JunOS - Using [junos-eznc](https://github.com/Juniper/py-junos-eznc) | ||
* IOS-XR - Using [pyIOSXR](https://github.com/fooelisa/pyiosxr) | ||
* FortiOS - Using [pyFG](https://github.com/spotify/pyfg) | ||
|
||
| | EOS | JunOS | IOS-XR | FortiOS | | ||
|---|---|---|---|---| | ||
| **Name** | eos | junos | iosxr | fortios | | ||
| **Config Management** | Full | Full | Full | Full | | ||
| **Atomic Changes** | Yes | Yes | Yes | No | | ||
| **Rollback** | Yes | Yes | Yes | Yes | | ||
|
||
Please check the following [link](http://napalm.readthedocs.org/support/index.html) to see which devices are supported. Make sure you understand the [caveats](http://napalm.readthedocs.org/support/index.html#caveats). | ||
|
||
Documentation | ||
============= | ||
Before using the library, please, read the documentation (link below). Specially the "caveats" section: | ||
|
||
See the [Read the Docs](http://napalm.readthedocs.org) | ||
Before using the library, please read the documentation at: [Read the Docs](http://napalm.readthedocs.org) | ||
|
||
You can also watch a [live demo](https://youtu.be/93q-dHC0u0I) of NAPALM to see what it is and what it can do for you. | ||
|
||
|
||
Install | ||
======= | ||
To install, execute: | ||
|
@@ -39,10 +28,11 @@ To install, execute: | |
|
||
Ansible | ||
======= | ||
There is an ansible module provided by this API. Make sure you read the documentation and you understand how it works before trying to use it. | ||
There are some ansible modules provided by this API. Make sure you read the documentation and you understand how it works before trying to use it. | ||
|
||
Mailing List | ||
======= | ||
|
||
If you have any questions, join the users' mailing list at [[email protected]](mailto:[email protected]) and if you are developer and want to contribute to NAPALM feel free to join to the developers' mailing list at [[email protected]](mailto:[email protected]) | ||
|
||
IRC | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
IBM Networking Operating System | ||
------- | ||
|
||
Rollback | ||
~~~~~~~~ | ||
|
||
Rollback is simply implemented by reading current running configuration before any load actions. Rollback function executes load replace and commit. | ||
|
||
|
||
Atomic Changes | ||
~~~~~~~~~~~~~~ | ||
|
||
IBM plugin uses netconf to load configuration on to device. It seems that configuration is executed line by line but we can be sure that all lines will be executed. There are three options for error handling: stop-on-error, continue-on-error and rollback-on-error. Plugin uses rollback-on-error option in case of merge operation. However replace operation uses continue-on-error option. In case of typo in configuration, device will inform plugin about error but execute all the rest lines. Plugin will revert configuration using rollback function from the plugin. I do not use rollback-on-error for replace operation because in case of error device is left without any configuration. It seems like a bug. It will be investigated further. Moreover it seems that replace option wipe out whole configuration on device at the first step, so this option is good for provisioning of new device and it is not recomended for device in production. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
Supported Devices | ||
================= | ||
|
||
General support matrix | ||
---------------------- | ||
|
||
|
||
===================== ========== ============= =========== ============== | ||
_ EOS JunOS IOS-XR FortiOS | ||
===================== ========== ============= =========== ============== | ||
**Driver Name** eos junos iosxr fortios | ||
**Structured data** Yes Yes No No | ||
**Minimum version** 4.15.0F 12.1 5.1.0 5.2.0 | ||
**Backend library** `pyeapi`_ `junos-eznc`_ `pyIOSXR`_ `pyFG`_ | ||
**Caveats** :doc:`eos` :doc:`fortios` | ||
===================== ========== ============= =========== ============== | ||
|
||
.. _pyeapi: https://github.com/arista-eosplus/pyeapi | ||
.. _junos-eznc: https://github.com/Juniper/py-junos-eznc | ||
.. _pyIOSXR: https://github.com/fooelisa/pyiosxr | ||
.. _pyFG: https://github.com/spotify/pyfg | ||
|
||
.. warning:: Please, make sure you understand the caveats for your particular platforms before using the library. | ||
|
||
|
||
Configuration support matrix | ||
---------------------------- | ||
|
||
===================== ========== ===== ========== ============== | ||
_ EOS JunOS IOS-XR FortiOS | ||
===================== ========== ===== ========== ============== | ||
**Config. replace** Yes Yes Yes Yes | ||
**Config. merge** Yes Yes Yes Yes | ||
**Compare config** Yes Yes Yes [#c1]_ Yes [#c1]_ | ||
**Atomic Changes** Yes Yes Yes No [#c2]_ | ||
**Rollback** Yes [#c2]_ Yes Yes Yes | ||
===================== ========== ===== ========== ============== | ||
|
||
.. [#c1] Hand-crafted by the API as the device doesn't support the feature. | ||
.. [#c2] Not supported but emulated. Check caveats. | ||
.. warning:: Before building a workflow to deploy configuration it is important you understand what the table above means; | ||
what are atomic changes and which devices support it, what does replacing or merging configuration mean, etc. | ||
The key to success is to test your workflow and to try to break things on a lab first. | ||
|
||
Getters support matrix | ||
---------------------- | ||
|
||
.. |yes| unicode:: U+02705 .. Yes | ||
.. |no| unicode:: U+0274C .. No | ||
|
||
====================== ===== ===== ====== ======= | ||
_ EOS JunOS IOS-XR FortiOS | ||
====================== ===== ===== ====== ======= | ||
**get_facts** |yes| |yes| |yes| |yes| | ||
**get_interfaces** |yes| |yes| |yes| |yes| | ||
**get_lldp_neighbors** |yes| |yes| |yes| |yes| | ||
====================== ===== ===== ====== ======= | ||
|
||
Caveats | ||
------- | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
eos | ||
fortios |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Tutorials | ||
========= | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
first_steps_config |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.