netmiko可以连接的设备有哪些_netmiko -- 网络设备运维库

Netmiko是一个Python库,用于简化通过SSH连接到多种网络设备并执行配置和显示命令的过程。它支持Cisco、Juniper等多家厂商的设备。主要功能包括建立SSH连接、发送命令和配置更新,并能自动识别设备提示符。示例代码展示了如何连接到Cisco设备,执行show命令和配置更改,并保存配置。
摘要由CSDN通过智能技术生成

简介

https://github.com/ktbyers/netmiko

Multi-vendor library to simplify Paramiko SSH connections to network devices

支持多设备厂商的库,简化SSH连接工作。

https://pynet.twb-tech.com/blog/automation/netmiko.html

The purposes of this library are the following:

Successfully establish an SSH connection to the device

Simplify the execution of show commands and the retrieval of output data

Simplify execution of configuration commands including possibly commit actions

Do the above across a broad set of networking vendors and platforms

目的:

成功建立SSH连接

简化执行的show命令,和获取结果

简化执行配置命令,包括可能的commit动作

跨网络设备厂商和平台

API

https://ktbyers.github.io/netmiko/docs/netmiko/index.html#netmiko.ConnectHandler

def send_command(self, command_string, expect_string=None, delay_factor=1, max_loops=500, auto_find_prompt=True, strip_prompt=True, strip_command=True, normalize=True, use_textfsm=False, textfsm_template=None, use_genie=False, cmd_verify=True)Execute command_string on the SSH channel using a pattern-based mechanism. Generally used for show commands. By default this method will keep waiting to receive data until the network device prompt is detected. The current network device prompt will be determined automatically.

def send_config_set(self, config_commands=None, exit_config_mode=True, delay_factor=1, max_loops=150, strip_prompt=False, strip_command=False, config_mode_command=None, cmd_verify=True, enter_config_mode=True)Send configuration commands down the SSH channel.

config_commands is an iterable containing all of the configuration commands. The commands will be executed one after the other.

Automatically exits/enters configuration mode.

Demo

https://github.com/ktbyers/netmiko/blob/develop/EXAMPLES.md#connecting-to-multiple-devices

show

from netmiko importConnectHandlerfrom getpass importgetpass

cisco1={"device_type": "cisco_ios","host": "cisco1.lasthop.io","username": "pyclass","password": getpass(),

}#Show command that we execute.

command = "show ip int brief"with ConnectHandler(**cisco1) as net_connect:

output=net_connect.send_command(command)#Automatically cleans-up the output so that only the show output is returned

print()print(output)print()

https://github.com/ktbyers/netmiko/blob/develop/EXAMPLES.md#configuration-changes

#!/usr/bin/env python

from netmiko importConnectHandlerfrom getpass importgetpass

device={"device_type": "cisco_ios","host": "cisco1.lasthop.io","username": "pyclass","password": getpass(),

}

commands= ["logging buffered 100000"]

with ConnectHandler(**device) as net_connect:

output=net_connect.send_config_set(commands)

output+=net_connect.save_config()print()print(output)print()

Juniper设备的config模式需要特殊处理

https://ultraconfig.com.au/blog/netmiko-automation-on-juniper-routers-full-tutorial-for-beginners/

需要调用commit

调用send_config_set需要添加exit_config_mode参数

# Edit the candidate configuration

config_commands = [ 'set interfaces ge-0/0/1 unit 0 family inet address 10.10.10.10/24',

'set interfaces ge-0/0/1 unit 0 description "Test Config"']

output = net_connect.send_config_set(config_commands, exit_config_mode=False)

print(output)

# Commit the config changes

output = net_connect.commit()

print(output)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值