Community NAPALM driver for the VyOS. https://vyos.io/
Also it can be used for other similar systems: Vyatta or EdgeOS
VyOS | |
---|---|
Module Name | napalm-vyos |
Driver Name | vyos |
Structured data | Yes |
Minimum version | 1.1.6 |
Backend library | netmiko |
VyOS | |
---|---|
Config. replace | Yes |
Config. merge | Yes |
Compare config | Yes |
Atomic Changes | Yes |
Rollback | Yes |
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('vyos')
>>> optional_args = {'my_optional_arg1': 'my_value1', 'my_optional_arg2': 'my_value2'}
>>> device = driver('192.168.76.10', 'vagrant', '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').
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
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
-
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'}
- Vyos as IPSec VPN endpoint and BGP router - https://github.com/DreamLab/ansible-vyos
- CI Demo for vyos+junos (Polish only) https://github.com/ppieprzycki/plnog2016
Slack Channel https://slack.vyos.io