Python netmiko 管理 ne

发布时间:2019-09-17 07:48:15编辑:auto阅读(1787)

    netmiko是python中可用于network device 备份的库,目前支持的设备如下:
    As of June 2015, Netmiko has support for the following platforms:
    Cisco IOS
    Cisco IOS-XE
    Cisco ASA
    Cisco NX-OS
    Cisco IOS-XR
    Cisco WLC (limited testing)
    Arista EOS
    HP ProCurve
    HP Comware (limited testing)
    Juniper Junos
    Brocade VDX (limited testing)
    F5 LTM (experimental)
    Huawei (limited testing)

    下面是一段使用netmiko库登陆ciscorouter 3360 的python代码

    from netmiko import ConnectHandler

    #要连接设备的信息,顺序不重要

    cisco = {
        'device_type':'cisco_ios',
        'ip':'192.168.60.222',
        'username':'admin',
        'password': 'password',
        'secret':'google',   #enable password
    }

    #进行ssh连接

    connect=ConnectHandler(**cisco)     #对于两个*号,我的理解是:ConnectHandler()函数需要在cisco字典里面找"两"个东西,key和对应的value,所以用两个*星号

    #如果enable有密码需要在配置连接的时候配置,例如 'secret':'google' ,输入connect.send_command('enable') 是无效的

    connect.enable()   #相当于进入特权模式
    output_1 = connect.send_command('show run')
    print("show run 的输出如下:\n"+output_1)
    print("----------------------")

    #输入connect.send_command('config ter')是进不了配置模式的,需要配置直接输入connect.send_config_set('cli')

    out_put_2 = connect.send_config_set('ip route 0.0.0.0 0.0.0.0 192.168.60.129')  #相当于输入特权模式 + 输入配置命令
    print("配置默认路由后的输出:\n\n"+out_put_2+"\n\n")          #输出配置过程

    #查看上述的配置是否生效

    show_route = connect.send_command('show ip route') #send_command('cli')命令执行的结果只能在本级,不能exit或者 enable、configure terminal
    print("查看路由条目:\n"+show_route)
    ——————————————————————————————————————————————————————————————————————————
    上述文件的输出如下(因篇幅问题,有部分会有删除):
    1、show run 的输出如下:
    Building configuration...
    
    Current configuration : 874 bytes
    !
    version 12.4
    service timestamps debug datetime msec
    service timestamps log datetime msec
    
     logging synchronous
    line aux 0
     exec-timeout 0 0
     privilege level 15
     logging synchronous
    line vty 0 4
     login local
    !
    !
    end
    
    ----------------------
    
    2、配置默认路由后的输出:
    
    config term
    Enter configuration commands, one per line.  End with CNTL/Z.
    R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.60.129
    R1(config)#end
    R1#
    
    3、查看路由条目:
    Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
           D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
           N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
           E1 - OSPF external type 1, E2 - OSPF external type 2
           i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
           ia - IS-IS inter area, * - candidate default, U - per-user static route
           o - ODR, P - periodic downloaded static route
    
    Gateway of last resort is 192.168.60.129 to network 0.0.0.0
    
    C    192.168.60.0/24 is directly connected, FastEthernet0/0
    S*   0.0.0.0/0 [1/0] via 192.168.60.129
    
    Process finished with exit code 0
    

    参考链接:
    ①https://pypi.python.org/pypi/netmiko/1.4.1
    ②https://pynet.twb-tech.com/blog/automation/netmiko.html

关键字