网络编程
位置:首页>> 网络编程>> Python编程>> Python netmiko模块的使用

Python netmiko模块的使用

作者:森林326  发布时间:2021-07-04 06:42:51 

标签:Python,netmiko

一、简介

此模块用于简化paramiko与网络设备之间的ssh连接,可在windows与Unix平台使用 

二、目前支持的设备

(2019.03.07)


Regularly tested
 Arista vEOS
 Cisco ASA
 Cisco IOS
 Cisco IOS-XE
 Cisco IOS-XR
 Cisco NX-OS
 Cisco SG300
 HP Comware7
 HP ProCurve
 Juniper Junos
 Linux

Limited testing
 Alcatel AOS6/AOS8
 Apresia Systems AEOS
 Calix B6
 Cisco AireOS (Wireless LAN Controllers)
 Dell OS9 (Force10)
 Dell OS10
 Dell PowerConnect
 Extreme ERS (Avaya)
 Extreme VSP (Avaya)
 Extreme VDX (Brocade)
 Extreme MLX/NetIron (Brocade/Foundry)
 Huawei
 IP Infusion OcNOS
 Mellanox
 NetApp cDOT
 OneAccess
 Palo Alto PAN-OS
 Pluribus
 Ruckus ICX/FastIron
 Ubiquiti EdgeSwitch
 Vyatta VyOS

Experimental
 A10
 Accedian
 Aruba
 Ciena SAOS
 Citrix Netscaler
 Cisco Telepresence
 Check Point GAiA
 Coriant
 Dell OS6
 Dell EMC Isilon
 Eltex
 Enterasys
 Extreme EXOS
 Extreme Wing
 Extreme SLX (Brocade)
 F5 TMSH
 F5 Linux
 Fortinet
 MRV Communications OptiSwitch
 Nokia/Alcatel SR-OS
 QuantaMesh
 Rad ETX

三、实验环境

1.操作系统:win10

2.python版本: python3.6.6

3.netmiko模块版本:2.3.0

四、安装netmiko模块


#前提准备模块(安装netmiko可自动下载依赖项):
Paramiko >= 2.4.1
scp >= 0.10.0
pyyaml
pyserial
textfsm

#安装netmiko
pip install netmiko

ps:没有全部安装前提模块,在使用netmiko没有报错,说明运行代码里没有调用到而已,而不是不需要

五、简单实例

5.1 执行查看命令:show ip int brief


from netmiko import ConnectHandler

cisco = {
 'device_type':'cisco_ios',
 'host':'ip地址',
 'username':'用户名',
 'password':'密码'
}
net_connect = ConnectHandler(**cisco)
##或者
# net_connect = ConnectHandler(device_type='cisco_ios',host='IP地址',username='用户名',password='密码')

#找到目前所在视图
current_view = net_connect.find_prompt()
print(current_view)

#执行命令,返回结果为字符串,赋值给output
output = net_connect.send_command('show ip int brief')
print(output)

# #此为在windows里如果\n不能显示回车,则进行如下语句格式化
# o_list = output.split("\n")
# for line in o_list:
#   print(line)

5.2 执行配置命令:手动关闭接口G1/0/29


from netmiko import ConnectHandler

cisco = {
 'device_type':'cisco_ios',
 'host':'ip地址',
 'username':'用户名',
 'password':'密码'
}
net_connect = ConnectHandler(**cisco)
##或者
# net_connect = ConnectHandler(device_type='cisco_ios',host='IP地址',username='用户名',password='密码')

#要配置的命令
config_commands = ['interface GigabitEthernet1/0/29','shutdown']
#提交要配置的命令,input为提交的真实内容
input = net_connect.send_config_set(config_commands)

#验证shutdown是否执行成功
output = net_connect.send_command('show run inter gi1/0/29')
print(output)

# #此为在windows里如果\n不能显示回车,则进行如下语句格式化
# o_list = output.split("\n")
# for line in o_list:
#   print(line)

六、常用方法

  • net_connect.send_command()        # 向下发送命令,返回输出(基于模式)

  • net_connect.send_command_timing() # 沿通道发送命令,返回输出(基于时序)

  • net_connect.send_config_set() # 将配置命令发送到远程设备

  • net_connect.send_config_from_file() # 发送从文件加载的配置命令

  • net_connect.save_config() # 将running#config保存到startup#config

  • net_connect.enable() # 输入启用模式

  • net_connect.find_prompt() # 返回当前路由器提示符

  • net_connect.commit() # 在Juniper和IOS#XR上执行提交操作

  • net_connect.disconnect() # 关闭连接

  • net_connect.write_channel() # 通道的低级写入

  • net_connect.read_channel() # 通道的低级写入

 七、参考文献

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

2.https://github.com/ktbyers/netmiko

来源:https://www.cnblogs.com/lisenlin/p/10489494.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com