美文网首页银狐NetDevOps
银狐NetDevOps-网络运维Python初篇(二)Netmi

银狐NetDevOps-网络运维Python初篇(二)Netmi

作者: 科技银狐 | 来源:发表于2021-05-17 00:44 被阅读0次
    科技银狐

    1、训练场景:通过Netmiko抓取多台思科or华为设备配置

    上一个章节我们举了一个简单的案例,利用netmiko抓取单台思科设备的配置,接下来我们来慢慢晋级。分享下如何靠netmiko抓取多台设备的配置,这里也分几种情况。

    1、同时抓取多台同厂商设备的配置,这样device_type就是一致的,比较容易操作;

    2、同时抓取多台不同厂商设备的配置,这里device_type会不同,难度会提升。(下节课)

    2、实验环境:

    操作系统:windows 10 PC机

    python版本:python 3.8

    网络设备:EVE-NG模拟器(3700 Software (C3725-ADVENTERPRISEK9-M), Version 12.4(15)T14)

    编辑器:vscode(pycharm、sublime均可,推荐vscode)

    实验拓扑:(eve-ng模拟器,笔记本和2台路由器fa0/0桥接成一个物理网段)

    image

    IP地址:R1 = 192.168.147.148,

    R2 = 192.168.147.149。

    注意:EVE-NG模拟器内容可百度搜索,有很多介绍的文章。

    3、思路分析

    场景:同时抓取多台同厂商设备的配置

    首先我们应该有一个IP地址列表,分别代表不同的设备,这样才能让PC通过SSH连接到不同的网络设备。我们可以定义一个list,然后把IP地址加入到list中,通过for循环逐一的把第一台设备IP地址,第二台设备IP地址取出来,然后通过Netmiko按顺序进行SSH连接,在通过上个章节内容进行命令操作。

    4、整体代码分析(可直接复制粘贴运行)

    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    
    from netmiko import ConnectHandler
    
    #新增加一个list,包含设备IP
    device_list = ["192.168.147.148","192.168.147.149"]               
    
    #进行for循环,把每台设备IP地址按顺序提取出来
    for device in device_list:                                        
        session = ConnectHandler(device_type = "cisco_ios",           
                                ip = device,                          #IP地址引用device提取出来的地址
                                username = "root",
                                password = "root@123",
                                )
    
    #打印提示已连接,因为实验是2台设备,所以IP地址不能写死,需要写成变量的形式,后面跟上所登录设备device的IP地址
        print("connected to {}".format(device))                       
    
    #show run回显内容太长,不方便下面截图,所以改成看接口IP地址
        config= session.send_command("show ip int brief | include FastEthernet0/0")
    
        print(config)
    
        session.disconnect() 
    

    以下为编辑器回显内容:以后代码少的情况下就把代码和执行结果一起截图,因为有高亮内容,感觉更容易让大家查看。

    image

    此次就不做单独的代码分析了,因为都是基于上节课的代码进行小范围改造,整体代码中加入的注释应该比较详细了。如果大家觉得这样的分享形式有什么不好的,也可以多提提意见。

    相关文章

      网友评论

        本文标题:银狐NetDevOps-网络运维Python初篇(二)Netmi

        本文链接:https://www.haomeiwen.com/subject/cwydjltx.html