Fetching contributors…
Cannot retrieve contributors at this time
143 lines (108 sloc) 7.79 KB

Supported Devices

General support matrix

Driver Name eos junos iosxr nxos nxos_ssh ios
Structured data Yes Yes No Yes No No
Minimum version 4.15.0F 12.1 5.1.0 6.1 [1]   12.4(20)T
Backend library pyeapi junos-eznc pyIOSXR pynxos netmiko netmiko
Caveats :doc:`eos`     :doc:`nxos` :doc:`nxos` :doc:`ios`
[1]NX-API support on the Nexus 5k, 6k and 7k families was introduced in version 7.2


Please, make sure you understand the caveats for your particular platforms before using the library.

Configuration support matrix

Config. replace Yes Yes Yes Yes Yes
Config. merge Yes Yes Yes Yes Yes
Compare config Yes Yes Yes [2] Yes [4] Yes
Atomic Changes Yes Yes Yes Yes/No [5] Yes/No [5]
Rollback Yes [3] Yes Yes Yes/No [5] Yes
[2]Hand-crafted by the API as the device doesn't support the feature.
[3]Not supported but emulated. Check caveats.
[4]For merges, the diff is very simplistic. See caveats.
[5](1, 2, 3) No for merges. See caveats.


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


The following table is built automatically. Every time there is a release of a supported driver a built is triggered. The result of the tests are aggregated on the following table.

Other methods


Available configuration templates

  • set_hostname (JunOS, IOS-XR, IOS) - Configures the hostname of the device.
  • set_ntp_peers (JunOS, IOS-XR, EOS, NXOS, IOS) - Configures NTP peers of the device.
  • delete_ntp_peers (JunOS, IOS-XR, EOS, NXOS, IOS): Removes NTP peers form device's configuration.
  • set_probes (JunOS, IOS-XR): Configures RPM/SLA probes.
  • schedule_probes (IOS-XR): On Cisco devices, after defining the SLA probes, it is mandatory to schedule them. Defined also for JunOS as empty template, for consistency reasons.
  • delete_probes (JunOS, IOS-XR): Removes RPM/SLA probes.


.. toctree::
   :maxdepth: 1


Optional arguments

NAPALM supports passing certain optional arguments to some drivers. To do that you have to pass a dictionary via the 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('', 'dbarroso', 'this_is_not_a_secure_password', optional_args=optional_args)

List of supported optional arguments

  • allow_agent (ios, iosxr) - Paramiko argument, enable connecting to the SSH agent (default: False).
  • alt_host_keys (ios, iosxr) - If True, host keys will be loaded from the file specified in alt_key_file.
  • alt_key_file (ios, iosxr) - SSH host key file to use (if alt_host_keys is True).
  • auto_rollback_on_error (ios) - Disable automatic rollback (certain versions of IOS support configure replace, but not rollback on error) (default: True).
  • config_lock (iosxr, junos) - Lock the config during open() (default: False).
  • canonical_int (ios) - Convert operational interface's returned name to canonical name (fully expanded name) (default: False).
  • dest_file_system (ios) - Destination file system for SCP transfers (default: flash:).
  • enable_password (eos) - Password required to enter privileged exec (enable) (default: '').
  • global_delay_factor (ios) - Allow for additional delay in command execution (default: 1).
  • ignore_warning (junos) - Allows to set ignore_warning when loading configuration to avoid exceptions via junos-pyez. (default: False).
  • keepalive (junos, iosxr) - SSH keepalive interval, in seconds (default: 30 seconds).
  • key_file (junos, ios, iosxr) - Path to a private key file. (default: False).
  • port (eos, iosxr, junos, ios, nxos) - Allows you to specify a port other than the default.
  • secret (ios) - Password required to enter privileged exec (enable) (default: '').
  • ssh_config_file (junos, ios, iosxr) - File name of OpenSSH configuration file.
  • ssh_strict (iosxr, ios) - Automatically reject unknown SSH host keys (default: False, which means unknown SSH host keys will be accepted).
  • transport (eos, ios, nxos) - Protocol to connect with (see The transport argument for more information).
  • use_keys (iosxr, ios, panos) - Paramiko argument, enable searching for discoverable private key files in ~/.ssh/ (default: False).
  • eos_autoComplete (eos) - Allows to set autoComplete when running commands. (default: None equivalent to False)

The transport argument

Certain drivers support providing an alternate transport in the optional_args, overriding the default protocol to connect with. Allowed transports are therefore device/library dependant:

Default https https ssh
Supported http, https http, https telnet, ssh