zoukankan      html  css  js  c++  java
  • 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
    View Code

    三、实验环境

      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里如果 不能显示回车,则进行如下语句格式化 # o_list = output.split(" ") # 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里如果
    不能显示回车,则进行如下语句格式化
    # o_list = output.split("
    ")
    # 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
  • 相关阅读:
    IronPython初体验
    HOWTO: 部署时附带安装MSDE
    翻译:FileSystemWatcher Tips
    再见了 母校!
    招聘.net开发工程师(2名)和ASP开发工程师(1名)工作地点:北京
    年终感言提纲
    可以不讲,但不可以不懂:英语实用脏话精选
    一个混乱的时期
    异步消息的传递-回调机制
    搞c++的 大家看看
  • 原文地址:https://www.cnblogs.com/lisenlin/p/10489494.html
Copyright © 2011-2022 走看看