[![PyPI](https://img.shields.io/pypi/v/napalm-vyos.svg)](https://pypi.python.org/pypi/napalm-vyos) [![PyPI](https://img.shields.io/pypi/dm/napalm-vyos.svg)](https://pypi.python.org/pypi/napalm-vyos) [![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'}`