銀狐NetDevOps-網絡運維Python初篇(二)Netmiko抓取多臺網絡設備配置

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橋接成一個物理網段)

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() 

以下爲編輯器回顯內容:以後代碼少的情況下就把代碼和執行結果一起截圖,因爲有高亮內容,感覺更容易讓大家查看。

此次就不做單獨的代碼分析了,因爲都是基於上節課的代碼進行小範圍改造,整體代碼中加入的註釋應該比較詳細了。如果大家覺得這樣的分享形式有什麼不好的,也可以多提提意見。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章