Python netmiko模块的使用

 更新时间:2020年02月14日 12:01:57   作者:森林326  
这篇文章主要介绍了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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 浅析Flask如何使用日志功能

    浅析Flask如何使用日志功能

    这篇文章主要为大家详细介绍了Flask是如何使用日志功能的,文中的示例代码讲解详细,对我们深入了解Flask有一定的帮助,需要的可以参考一下
    2023-05-05
  • 浅谈python配置与使用OpenCV踩的一些坑

    浅谈python配置与使用OpenCV踩的一些坑

    下面小编就为大家分享一篇浅谈python配置与使用OpenCV踩的一些坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python是否适合网页编程详解

    python是否适合网页编程详解

    在本篇文章里我们给各位整理了一篇关于python是否适合网页编程详解内容,有需要的朋友们可以学习下。
    2019-10-10
  • 详解pandas.DataFrame中删除包涵特定字符串所在的行

    详解pandas.DataFrame中删除包涵特定字符串所在的行

    这篇文章主要介绍了pandas.DataFrame中删除包涵特定字符串所在的行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Python常见库matplotlib学习笔记之画图文字的中文显示

    Python常见库matplotlib学习笔记之画图文字的中文显示

    在Python中使用matplotlib或者plotnine模块绘图时,常常出现图表中无法正常显示中文的问题,下面这篇文章主要给大家介绍了关于Python常见库matplotlib学习笔记之画图文字的中文显示的相关资料,需要的朋友可以参考下
    2023-05-05
  • python处理PHP数组文本文件实例

    python处理PHP数组文本文件实例

    这篇文章主要介绍了python处理PHP数组文本文件实例,本文的PHP数组文本是多个redis数据库的配置文件,需求是提取相关参数组合成Shell命令,需要的朋友可以参考下
    2014-09-09
  • Python 文件处理注意事项总结

    Python 文件处理注意事项总结

    这篇文章主要介绍了Python 文件处理注意事项总结的相关资料,需要的朋友可以参考下
    2017-04-04
  • python中input()的用法及扩展

    python中input()的用法及扩展

    这篇文章主要介绍了python中input()的用法及扩展,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python利用公共键如何对字典列表进行排序详解

    Python利用公共键如何对字典列表进行排序详解

    这篇文章主要给大家介绍了关于Python利用公共键如何对字典列表进行排序的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们随着小编来一起学习学习吧
    2018-05-05
  • Windows下Anaconda安装、换源与更新的方法

    Windows下Anaconda安装、换源与更新的方法

    这篇文章主要介绍了Windows下Anaconda安装、换源与更新的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04

最新评论