diff --git a/README.md b/README.md index 967ba27..6baa9cc 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,107 @@ [![Build Status](https://travis-ci.org/napalm-automation-community/napalm-vyos.svg?branch=master)](https://travis-ci.org/napalm-automation-community/napalm-vyos) # napalm-vyos + + +General support matrix +---------------------- + + ===================== ============== + _ VyOS + ===================== ============== + **Module Name** napalm-vyos + **Driver Name** vyos + **Structured data** Yes + **Minimum version** 1.1.6 + **Backend library** `netmiko`_ + ===================== ============== + +Configuration support matrix +---------------------------- + +===================== ========== +_ VyOS +===================== ========== +**Config. replace** Yes +**Config. merge** Yes +**Compare config** Yes +**Atomic Changes** Yes +**Rollback** Yes +===================== ========== + + +Other methods +------------- + +============================== ===== +_ VyOS +============================== ===== +**load_template** |yes| +**ping** |yes| +**traceroute** |no| +============================== ===== + + +Optional arguments +------------------ + +NAPALM supports passing certain optional arguments to some drivers. To do that you have to pass a dictionary via the +:code:`optional_args` parameter when creating the object:: + + >>> from napalm import get_network_driver + >>> driver = get_network_driver('eos') + >>> optional_args = {'my_optional_arg1': 'my_value1', 'my_optional_arg2': 'my_value2'} + >>> device = driver('192.168.76.10', 'dbarroso', 'this_is_not_a_secure_password', optional_args=optional_args) + >>> device.open() + +List of supported optional arguments +____________________________________ + +* :code:`port` (vyos) - Allows you to specify a port other than the default. +* :code:`key_file` (vyos) - Netmiko/Paramiko argument, path to a private key file (default: 'False'). + + + +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. + +VyOS in version 1.1.x (tested 1.1.7) + +napalm==2.* +paramiko +netmiko>=1.1.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'}` diff --git a/setup.py b/setup.py index 363bcb2..ce58990 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ reqs = [str(ir.req) for ir in install_reqs] setup( name="napalm-vyos", - version="0.1.4", + version="0.1.5", packages=find_packages(), author="Piotr Pieprzycki", author_email="piotr.pieprzycki@dreamlab.pl",