Skip to content

Commit

Permalink
Merge pull request #344 from ppieprzycki/develop
Browse files Browse the repository at this point in the history
Documentation for vyos driver
  • Loading branch information
dbarrosop committed Dec 30, 2016
2 parents bb9617f + b915d53 commit bb2699d
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 28 deletions.
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Supported Network Operating Systems:
* Mikrotik RouterOS
* Palo Alto NOS
* Pluribus
* Vyos

You can select the driver you need by doing the following:

Expand Down
58 changes: 30 additions & 28 deletions docs/support/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,17 @@ General support matrix
----------------------


===================== ========== ============= ============ ============== ============= ============ ============ =============== ========================= ==============
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS MikroTik
===================== ========== ============= ============ ============== ============= ============ ============ =============== ========================= ==============
**Module Name** napalm-eos napalm-junos napalm-iosxr napalm-fortios napalm-ibm napalm-nxos napalm-ios napalm-pluribus napalm-panos napalm-ros
**Driver Name** eos junos iosxr fortios ibm nxos ios pluribus panos ros
**Structured data** Yes Yes No No Yes Yes No No Yes Yes
**Minimum version** 4.15.0F 12.1 5.1.0 5.2.0 ??? 6.1 [#g1]_ 12.4(20)T N/A 7.0 3.30
**Backend library** `pyeapi`_ `junos-eznc`_ `pyIOSXR`_ `pyFG`_ `bnclient`_ `pycsco`_ `netmiko`_ `pyPluribus`_ `netmiko`_, `pan-python`_ `librouteros`_
**Caveats** :doc:`eos` :doc:`fortios` :doc:`ibm` :doc:`nxos` :doc:`ios` :doc:`panos`
===================== ========== ============= ============ ============== ============= ============ ============ =============== ========================= ==============

===================== ========== ============= ============ ============== ============= ============ ============ =============== ========================= ============== ==============
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS MikroTik VyOS
===================== ========== ============= ============ ============== ============= ============ ============ =============== ========================= ============== ==============
**Module Name** napalm-eos napalm-junos napalm-iosxr napalm-fortios napalm-ibm napalm-nxos napalm-ios napalm-pluribus napalm-panos napalm-ros napalm-vyos
**Driver Name** eos junos iosxr fortios ibm nxos ios pluribus panos ros vyos
**Structured data** Yes Yes No No Yes Yes No No Yes Yes Yes
**Minimum version** 4.15.0F 12.1 5.1.0 5.2.0 ??? 6.1 [#g1]_ 12.4(20)T N/A 7.0 3.30 1.1.6
**Backend library** `pyeapi`_ `junos-eznc`_ `pyIOSXR`_ `pyFG`_ `bnclient`_ `pycsco`_ `netmiko`_ `pyPluribus`_ `netmiko`_, `pan-python`_ `librouteros`_ `netmiko`_
**Caveats** :doc:`eos` :doc:`fortios` :doc:`ibm` :doc:`nxos` :doc:`ios` :doc:`panos` :doc:`vyos`
===================== ========== ============= ============ ============== ============= ============ ============ =============== ========================= ============== ==============

.. _pyeapi: https://github.com/arista-eosplus/pyeapi
.. _junos-eznc: https://github.com/Juniper/py-junos-eznc
Expand All @@ -35,16 +36,15 @@ _ EOS JunOS IOS-XR FortiOS
Configuration support matrix
----------------------------

===================== ========== ===== ========== ============== ============= ============== ============== ============== ============== ========
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS MikroTik
===================== ========== ===== ========== ============== ============= ============== ============== ============== ============== ========
**Config. replace** Yes Yes Yes Yes Yes [#c3]_ Yes Yes No Yes No
**Config. merge** Yes Yes Yes Yes Yes Yes Yes No Yes No
**Compare config** Yes Yes Yes [#c1]_ Yes [#c1]_ Yes [#c1]_ Yes [#c4]_ Yes No Yes No
**Atomic Changes** Yes Yes Yes No [#c2]_ No [#c2]_ Yes/No [#c5]_ Yes Yes Yes/No [#c5]_ No
**Rollback** Yes [#c2]_ Yes Yes Yes Yes [#c2]_ Yes/No [#c5]_ Yes No Yes No
===================== ========== ===== ========== ============== ============= ============== ============== ============== ============== ========

===================== ========== ===== ========== ============== ============= ============== ============== ============== ============== ======== ========
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS MikroTik VyOS
===================== ========== ===== ========== ============== ============= ============== ============== ============== ============== ======== ========
**Config. replace** Yes Yes Yes Yes Yes [#c3]_ Yes Yes No Yes No Yes
**Config. merge** Yes Yes Yes Yes Yes Yes Yes No Yes No Yes
**Compare config** Yes Yes Yes [#c1]_ Yes [#c1]_ Yes [#c1]_ Yes [#c4]_ Yes No Yes No Yes
**Atomic Changes** Yes Yes Yes No [#c2]_ No [#c2]_ Yes/No [#c5]_ Yes Yes Yes/No [#c5]_ No Yes
**Rollback** Yes [#c2]_ Yes Yes Yes Yes [#c2]_ Yes/No [#c5]_ Yes No Yes No Yes
===================== ========== ===== ========== ============== ============= ============== ============== ============== ============== ======== ========
.. [#c1] Hand-crafted by the API as the device doesn't support the feature.
.. [#c2] Not supported but emulated. Check caveats.
.. [#c3] Check the caveats, this is a dangerous operation in this device.
Expand All @@ -69,13 +69,13 @@ Other methods
.. |yes| unicode:: U+02705 .. Yes
.. |no| unicode:: U+0274C .. No

============================== ===== ===== ====== ======= ====== ====== ===== ========= ========= ========
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS MikroTik
============================== ===== ===== ====== ======= ====== ====== ===== ========= ========= ========
**load_template** |yes| |yes| |yes| |yes| |yes| |yes| |yes| |yes| |yes| |no|
**ping** |no| |no| |no| |no| |no| |no| |yes| |no| |no| |yes|
**traceroute** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no| |no|
============================== ===== ===== ====== ======= ====== ====== ===== ========= ========= ========
============================== ===== ===== ====== ======= ====== ====== ===== ========= ========= ======== ========
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS MikroTik VyOS
============================== ===== ===== ====== ======= ====== ====== ===== ========= ========= ======== ========
**load_template** |yes| |yes| |yes| |yes| |yes| |yes| |yes| |yes| |yes| |no| |yes|
**ping** |no| |no| |no| |no| |no| |no| |yes| |no| |no| |yes| |yes|
**traceroute** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no| |no| |no|
============================== ===== ===== ====== ======= ====== ====== ===== ========= ========= ======== ========

Available configuration templates
---------------------------------
Expand All @@ -99,6 +99,7 @@ Caveats
nxos
ios
panos
vyos

Optional arguments
------------------
Expand All @@ -116,7 +117,7 @@ List of supported optional arguments
____________________________________

* :code:`fortios_vdom` (fortios) - VDOM to connect to.
* :code:`port` (eos, iosxr, junos, ios, ros) - Allows you to specify a port other than the default.
* :code:`port` (eos, iosxr, junos, ios, ros, vyos) - Allows you to specify a port other than the default.
* :code:`config_lock` (iosxr, junos) - Lock the config during open() (default: True).
* :code:`dest_file_system` (ios) - Destination file system for SCP transfers (default: 'flash:').
* :code:`auto_rollback_on_error` (ios) - Disable automatic rollback (certain versions of IOS support configure replace, but not rollback on error) (default: True).
Expand All @@ -125,6 +126,7 @@ ____________________________________
* :code:`enable_password` (eos) - Password required to enter privileged exec (enable) (default: '').
* :code:`allow_agent` (ios, panos) - Paramiko argument, enable connecting to the SSH agent (default: 'False').
* :code:`use_keys` (ios, panos) - Paramiko argument, enable searching for discoverable private key files in ~/.ssh/ (default: 'False').
* :code:`key_file` (vyos) - Netmiko/Paramiko argument, path to a private key file (default: 'False').
* :code:`api_key` (panos) - Allow to specify the API key instead of username/password (default: '').


Expand Down
42 changes: 42 additions & 0 deletions docs/support/vyos.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
VYOS
====

Prerequisites
-------------

`
VyOS has no native HTTP API or NETCONF capability.
We are using Netmiko for ssh connections and scp file transfers.
Having Netmiko installed in your working box is a prerequisite.

netmiko >= 1.0.0
vyattaconfparser



Configuration file
------------------

Currently VyOS driver supports two different configuration formats:
* load_replace_candidate - Full config file (with brackets) like in /config/config.boot
Due to the OS nature, we do not support a replace using
a set-style configuration format.
* load_merge_candidate - Currently driver supports set-style configuration format.
Example

`set system login banner pre-login "test"`

Vyos require configuration file (load_replace) to contain comment like following

`/* Warning: Do not remove the following line. */
/* === vyatta-config-version: "cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1" === */
/* Release version: VyOS 1.1.7 */`
Otherwise VyOS reject `load` operation

Notes
------------------
* The NAPALM-vyos driver supports all Netmiko arguments as either standard arguments (hostname, username, password, timeout) or as optional_args (everything else).

* The NAPALM-vyos driver supports authentication with ssh key. Please specify path to a key in optional_args
`'optional_args': {'key_file': '/home/user/ssh_private_key'}`
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ napalm-nxos
napalm-pluribus
napalm-panos
napalm-ros
napalm-vyos

0 comments on commit bb2699d

Please sign in to comment.