Skip to content

Driver Selection Guide

NetPulse adopts a plugin-based driver architecture, supporting rapid extension of new device drivers. Through a unified API interface, new drivers can be easily integrated to support more device types.

Quick Comparison

Driver Connection Method Recommended Scenario Core Advantage
Netmiko SSH/Telnet Most scenarios (recommended) Supports a wide range of device types, long connection reuse improves performance
NAPALM SSH/HTTP/HTTPS Need configuration merge/rollback Supports configuration merge, replace, rollback
PyEAPI HTTP/HTTPS Arista EOS devices Native API, excellent performance, JSON structured data
Paramiko SSH Linux servers Native SSH, supports file transfer, proxy connections, sudo, etc.

Driver Description

NetPulse is based on a plugin-based driver architecture that can quickly extend new device drivers. Currently supports the following drivers:

Default choice for most scenarios. Executes commands via SSH connection, supports Cisco, Juniper, and most network devices. Long connection reuse can improve performance in frequent operation scenarios.

  • Supported Devices: Cisco, Juniper, HP and other SSH devices
  • Recommended Queue Strategy: Pinned (long connection reuse)
  • Use Cases: Query, configuration push and other regular operations

Key Parameters: - connection_args.device_type (required): Device type, such ascisco_ios,juniper_junos, etc. -connection_args.keepalive(default 180 seconds): SSH connection keepalive time for long connection reuse - connection_args.secret: Privileged mode password (enable password) - driver_args.read_timeout (default 10 seconds): Read timeout time -driver_args.delay_factor: Delay factor for slow devices -driver_args.strip_prompt(default true): Remove prompt from output - driver_args.cmd_verify (default true)`: Command verification

📖 View Netmiko Detailed Documentation

NAPALM

Use only when advanced configuration management features are needed. Provides advanced features such as configuration merge, replace, and rollback.

  • Supported Devices: Cisco, Juniper and other multi-vendor devices
  • Use Cases: Need configuration merge, replace, rollback, version control

Key Parameters: - connection_args.device_type (required): Device type, such asios,junos,eos, etc. -connection_args.hostname(required): Device IP address (Note: NAPALM uses hostname instead of host) - connection_args.optional_args: Optional parameter object, can include port, secret, transport, etc. - driver_args.encoding (query, default "text"): Encoding format -driver_args.message(configuration): Configuration commit message - driver_args.revert_in (configuration)`: Configuration confirmation time (seconds) for automatic rollback

📖 View NAPALM Detailed Documentation

PyEAPI

Recommended choice when managing Arista devices. Uses Arista native HTTP API with excellent performance.

  • Supported Devices: Arista EOS specific
  • Use Cases: All operations on Arista devices

Key Parameters: - connection_args.host (required): Device IP address -connection_args.transport(default https): Transport protocol, supports http/https - connection_args.port: API port number (HTTP default 80, HTTPS default 443) - connection_args.timeout (default 60 seconds): Connection timeout time -driver_args`: Supports arbitrary parameters, will be passed to pyeapi's enable/config methods

📖 View PyEAPI Detailed Documentation

Paramiko

Recommended choice when managing Linux servers. Based on native SSH protocol, supports file transfer, proxy connections, sudo, and other advanced features.

  • Supported Devices: Linux servers (Ubuntu, CentOS, Debian, etc.)
  • Recommended Queue Strategy: FIFO (short connection)
  • Use Cases: System monitoring, configuration management, file transfer, batch server operations

Key Parameters: - connection_args.host (required): Server address -connection_args.username(required): SSH username - connection_args.password: Password authentication - connection_args.key_filename: Private key file path - connection_args.pkey: Private key content (PEM format string) - connection_args.proxy_host: SSH proxy/jump host address - driver_args.timeout: Command execution timeout - driver_args.get_pty: Whether to use pseudo-terminal (PTY) - driver_args.file_transfer: File transfer operation (upload/download)

📖 View Paramiko Detailed Documentation

Selection Recommendations

Scenario Recommended Driver
Linux servers Paramiko (preferred)
Arista devices PyEAPI (preferred)
Cisco/Juniper/Other SSH devices Netmiko (recommended)
Need configuration merge/rollback NAPALM

Quick Decision

Linux server? → Paramiko
Arista device? → PyEAPI
Need configuration merge/rollback? → NAPALM
Other scenarios → Netmiko (recommended)