Skip to main content

a forked version of netmiko_multihop

Project description

netmiko_multihop is an out of tree netmiko monkeypatch which adds multihop capability. Currently following platforms are supported as intermediate hop:

  • linux

  • cisco_nxos

  • cisco_ios

Other platforms can be added easily if required.

Installation

Install the netmiko_multihop package by running:

pip3 install netmiko-mhrt

Usage

import  netmiko_multihop
from netmiko import ConnectHandler


jumphost1 = {
    'device_type': 'linux',
    'ip': <ip_jumphost1>,
    'username': <ssh_username_jumphost1>,
    'password': <ssh_password_jumphost1>,
    'port': 22,
}

jumphost2 = {
    'device_type': 'linux',
    'ip': <ip_jumphost2>,
    'username': <ssh_username_jumphost2>,
    'password': <ssh_password_jumphost2>,
    'port': 22,
}

target1 = {
    'device_type': 'cisco_nxos',
    'ip': <ip_target1>,
    'username': <ssh_username_target1>,,
    'password': <ssh_password_target1>,
    'port': 22,
}

target2 = {
    'device_type': 'cisco_ios',
    'ip': <ip_target2>,
    'username': <ssh_username_target2>,
    'password': <ssh_password_target2>,
    'port': 22,
}

# If the next hop is reachable via vrf on the current hop, add the vrf parameter to the destination configuration.
# Eg.: Target1 is reachable via vrf mgmt from target2.
#      You want to jump from target1 to target2.
#      Add the parameter vrf='mgmt' to target2 configuration before you jump from target1 to target2.

ssh = ConnectHandler(**jumphost1)
# now we are on jumphost1
# this is where the magic starts. as jump_to returns the object instance we can jump multiple hops at once

ssh.jump_to(**jumphost2).jump_to(**target1)
# now we are on target1
print(ssh.send_command("show inventory"))
# lets get back a single jump
ssh.jump_back()
# now we are on jumphost2
ssh.jump_to(**target2)
# now we are on target2
print(ssh.send_command("show inventory"))
ssh.jump_back()

Patch

In some cases network device may have a warning banner following the login banner, and need user input (yes or a simple enter) to continue. This patch pads in an “enter” command in the channel when “continue:” or “#” is detected during jump_to() process.

Contribute

License

This project is licensed under the Apache License Version 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netmiko_mhrt-1.0.4.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

netmiko_mhrt-1.0.4-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file netmiko_mhrt-1.0.4.tar.gz.

File metadata

  • Download URL: netmiko_mhrt-1.0.4.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.2

File hashes

Hashes for netmiko_mhrt-1.0.4.tar.gz
Algorithm Hash digest
SHA256 3ba28d06338761f0feca2b0c32159a27aad7ef50a5b6231b8fa77992f24487c8
MD5 c3cf97440655fe39e061e435ebf9ec39
BLAKE2b-256 3618ab58078d3d64a720ae2d130a501fcff8441929cb3f6d83bfefb587512dd9

See more details on using hashes here.

File details

Details for the file netmiko_mhrt-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: netmiko_mhrt-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.2

File hashes

Hashes for netmiko_mhrt-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8d348bdb5d9fc151d675d0feb6caff12f55e7392d9f4cba50dea95b62c708159
MD5 7f9fb738e24c7f2a863587722337080a
BLAKE2b-256 f815f5ba18050f35df1d8b107c73f50c6a3e15efc17d9ed00e911489649af783

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page