0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用python腳本批量登錄網(wǎng)絡(luò)設(shè)備修改配置

jf_HnAzBl9o ? 來源:網(wǎng)絡(luò)工程師筆記 ? 作者:網(wǎng)絡(luò)工程師筆記 ? 2022-10-19 09:12 ? 次閱讀

之前分享過利用python腳本登錄一臺交換機,

有同學(xué)說希望出個批量的。

今天,它來了!

看好喔!好好學(xué)!

說不定,老板就給你加雞腿了!

一、實驗環(huán)境搭建

1、按照下圖,在ensp模擬器上搭建環(huán)境,為了演示批量修改設(shè)備,龍哥這里實驗4臺路由器,當(dāng)然了,如果你電腦性能足夠牛逼,你也可以多用幾臺路由器咯!然后標(biāo)注好IP地址。

f4f4b336-4f43-11ed-a3b6-dac502259ad0.png

2、物理電腦(即我臺式電腦)與ensp做好橋接:

f52e5be0-4f43-11ed-a3b6-dac502259ad0.png

3、給每臺路由器做好初始化配置,即配置修改設(shè)備默認(rèn)名稱、配置管理IP地址、配置SSH及登錄用戶名和密碼。

以R2為例(小白,其他設(shè)備參考R2配置),修改設(shè)備名、配置IP地址:

[Huawei]SYS R2

[R2]

[R2]int g0/0/0

[R2-GigabitEthernet0/0/0]ip add 192.168.56.20 24

[R2-GigabitEthernet0/0/0]

[R2-GigabitEthernet0/0/0]qu

[R2]

以R2為例,配置SSH,其他設(shè)備參考如下即可:

[R2]rsa local-key-pair create

The key name will be: Host

% RSA keys defined for Host already exist.

Confirm to replace them? (y/n)[n]:y

The range of public key size is (512 ~ 2048).

NOTES: If the key modulus is greater than 512,

It will take a few minutes.

Input the bits in the modulus[default = 512]:2048

Generating keys...

.......+++

..............+++

.....++++++++

...............++++++++

[R2]user-interface vty 0 4

[R2-ui-vty0-4]authentication-mode aaa

[R2-ui-vty0-4]protocol inbound ssh

[R2]aaa

[R2-aaa]local-user along password cipher along123

[R2-aaa]local-user along privilege level 15

[R2-aaa]local-user along service-type ssh

[R2-aaa]ssh user along authentication-type password

[R2]

[R2]stelnet server enable

[R2]

上述配置完,建議用secureCRT先登錄一下各個設(shè)備,驗證網(wǎng)絡(luò)連通性、ssh連通性是否ok?

這里以R1為例,驗證一下。測試時,你們可以每臺都驗證一下。

f5721f42-4f43-11ed-a3b6-dac502259ad0.png

f5c911e4-4f43-11ed-a3b6-dac502259ad0.png

這樣驗證的好處,假如待會我們寫的python腳本如果有問題,那跟網(wǎng)絡(luò)、ssh配置就沒關(guān)了,便于后續(xù)排錯就對啦!

二、準(zhǔn)備好批量IP清單

1、這里我先創(chuàng)建4臺路由器管理ip的清單,用txt創(chuàng)建:

f5f5e5ac-4f43-11ed-a3b6-dac502259ad0.png

2、注意!注意!注意!這個ip清單需要放到跟你待會創(chuàng)建的python腳本同一個目錄下,比如我待會創(chuàng)建一個名為router-lab.py的python腳本:

f60d55ca-4f43-11ed-a3b6-dac502259ad0.png

三、編寫python腳本

import paramiko

import time

from getpass import getpass

user = input('Username:')

pw = getpass('password:')

f = open("ip-list.txt","r")

for line in f.readlines():

ip = line.strip()

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(hostname=ip,username=user,password=pw)

print("恭喜您成功登錄ensp的路由器!", ip)

command = ssh.invoke_shell()

command.send("system ")

command.send("vlan 20 ")

command.send("quit ")

command.send("ospf ")

command.send("area 0 ")

command.send("net 192.168.56.0 0.0.0.255 ")

command.send("quit ")

time.sleep(2)

output = command.recv(65535)

print(output.decode("ascii"))

ssh.close()

注意:python寫for循環(huán)時,一定要注意縮進格式。

代碼解釋:

f = open("ip-list.txt","r")

答:定義一個f文件對象,r表示,用只讀形式,打開ip-list.txt文件。這個文件就剛剛我們創(chuàng)建的ip清單,即你要批量管理的ip地址。

for line in f.readlines():

ip = line.strip()

答:利用for循環(huán)語句,f.readlines是逐行讀取f文件對象,賦給line。

line.strip()我理解是移除空格或換行符,然后復(fù)制給ip。

其他代碼這里不再解釋,可以參考往期的:

四、執(zhí)行腳本與驗證

1、執(zhí)行前的確認(rèn)

從上述代碼,我們可以知道,我們的目標(biāo)是為設(shè)備批量創(chuàng)建vlan20和創(chuàng)建ospf協(xié)議,并把管理網(wǎng)段宣告的area 0中。

所以,還沒執(zhí)行前,我們可以登錄設(shè)備看看,確實沒有vlan 20 和 ospf相關(guān)配置:

f6196932-4f43-11ed-a3b6-dac502259ad0.png

f627655a-4f43-11ed-a3b6-dac502259ad0.png

f6397d80-4f43-11ed-a3b6-dac502259ad0.png

f64b7896-4f43-11ed-a3b6-dac502259ad0.png

2、接下來,我們開始執(zhí)行代碼:

用編輯器執(zhí)行也可以或雙擊python腳本也行

f6603fec-4f43-11ed-a3b6-dac502259ad0.png

然后在彈出的窗口輸入用戶名和密碼即可:

f699e6ac-4f43-11ed-a3b6-dac502259ad0.png

然后觀察運行情況:

f6ad6344-4f43-11ed-a3b6-dac502259ad0.png

f6c1d39c-4f43-11ed-a3b6-dac502259ad0.png

可知,python腳本執(zhí)行成功了,我們也可以再通過ensp登錄路由器看看檢查配置,確認(rèn)是否生效了?

f6d9a620-4f43-11ed-a3b6-dac502259ad0.png

f6f63b50-4f43-11ed-a3b6-dac502259ad0.png

f7046496-4f43-11ed-a3b6-dac502259ad0.png

f719f84c-4f43-11ed-a3b6-dac502259ad0.png

上述這些截圖中,我們可以知道,確實生效了。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 路由器
    +關(guān)注

    關(guān)注

    22

    文章

    3640

    瀏覽量

    112798
  • 網(wǎng)絡(luò)設(shè)備

    關(guān)注

    0

    文章

    293

    瀏覽量

    29520
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84068
收藏 人收藏

    評論

    相關(guān)推薦

    各類網(wǎng)絡(luò)設(shè)備

    ` 網(wǎng)絡(luò)設(shè)備,銳捷,艾泰,D-link,華為,H3C,思科,韓電,安普`
    發(fā)表于 11-29 11:15

    Linux常用網(wǎng)絡(luò)設(shè)備

    網(wǎng)絡(luò)設(shè)備是計算機體系結(jié)構(gòu)中必不可少的一部分,處理器如果想與外界通信,通常都會選擇網(wǎng)絡(luò)設(shè)備作為通信接口。眾所周知,在 OSI(Open Systems Interconnection,開放網(wǎng)際互連)中,網(wǎng)絡(luò)被劃分為七個層次,從下到
    發(fā)表于 07-25 07:37

    如何修改嵌入式網(wǎng)絡(luò)設(shè)備驅(qū)動?

    嵌入式剛剛學(xué),沒過入門 ,最近中途加入項目組,負(fù)責(zé)嵌入式內(nèi)核移植,源代碼都有,因為換了芯片,需要修改網(wǎng)絡(luò)設(shè)備驅(qū)動,不會呀,求大神指點,給個思路,這東西一個半月搞完有可能嗎??
    發(fā)表于 06-19 05:37

    嵌入式網(wǎng)絡(luò)設(shè)備地址動態(tài)配置的研究

    本文通過嵌入式結(jié)構(gòu)網(wǎng)絡(luò)設(shè)備̣:一款I(lǐng)PV6 核心路由器,系統(tǒng)地介紹了分布式系統(tǒng)中嵌入式結(jié)構(gòu)網(wǎng)絡(luò)設(shè)備地址的動態(tài)配置方法,該方法結(jié)合了F1ash 和只讀存儲器的靈活應(yīng)用,有效
    發(fā)表于 08-27 10:46 ?11次下載

    Protel DXP批量修改如何使用

    Protel DXP批量修改如何使用 Protel DXP批量修改的某些方面比Protel 99se還要簡單,在弄清楚Protel DXP批量
    發(fā)表于 07-02 10:09 ?3805次閱讀

    Orcad批量修改網(wǎng)絡(luò)標(biāo)號的方法

    怎么對Orcad的網(wǎng)絡(luò)標(biāo)號進行統(tǒng)一批量修改呢?
    的頭像 發(fā)表于 01-19 14:27 ?1.9w次閱讀
    Orcad<b class='flag-5'>批量</b><b class='flag-5'>修改</b><b class='flag-5'>網(wǎng)絡(luò)</b>標(biāo)號的方法

    Python寫SecureCRT批量登錄/巡檢網(wǎng)絡(luò)設(shè)備腳本

    因為有約200臺的網(wǎng)絡(luò)設(shè)備需要每天登錄巡檢、查看配置、保存配置、定期更改密碼(每周改一次),如果都手動去登錄、
    的頭像 發(fā)表于 12-28 09:32 ?4050次閱讀

    python練手小程序

    如果管理網(wǎng)絡(luò)設(shè)備很多,不可能靠人力每天去登錄設(shè)備去查看是否在線。所以,可以利用python腳本
    的頭像 發(fā)表于 01-09 09:49 ?510次閱讀

    如何通過Python腳本批量采集華為交換機配置

    通過學(xué)習(xí)python網(wǎng)絡(luò)運維自動化減少重復(fù)無意義的工作量,本次實驗雖然只是一條命令,通過display current-configuration采集設(shè)備配置,但是在有大量
    的頭像 發(fā)表于 01-09 10:32 ?4393次閱讀

    如何使用Python通過SNMP監(jiān)控網(wǎng)絡(luò)設(shè)備?

    豐富的第三方庫,實現(xiàn)繪圖入庫等,該方式比較繁瑣,我們管理的設(shè)備還有一些網(wǎng)絡(luò)設(shè)備,這些設(shè)備無法通過開發(fā)程序來實現(xiàn)監(jiān)控,為了實現(xiàn)全平臺全設(shè)備監(jiān)控,我決定使用SNMP實現(xiàn)監(jiān)控任務(wù)。
    的頭像 發(fā)表于 01-09 10:38 ?1160次閱讀

    shell實例三(編寫批量修改擴展名腳本)

    實現(xiàn)功能: 編寫批量修改擴展名腳本,如批量將 txt 文件修改為 doc 文件 執(zhí)行腳本時,
    的頭像 發(fā)表于 11-09 09:35 ?573次閱讀
    shell實例三(編寫<b class='flag-5'>批量</b><b class='flag-5'>修改</b>擴展名<b class='flag-5'>腳本</b>)

    分別使用多線程多進程協(xié)程+paramiko在華為交換機批量快速進行配置

    python對于網(wǎng)絡(luò)設(shè)備的操作屬于I/O密集型,在腳本運行時,存在大量的等待時間。我們便可以利用這些空閑的時間,進行其他的操作。
    的頭像 發(fā)表于 01-16 09:13 ?625次閱讀
    分別使用多線程多進程協(xié)程+paramiko在華為交換機<b class='flag-5'>批量</b>快速進行<b class='flag-5'>配置</b>

    使用Python批量連接華為網(wǎng)絡(luò)設(shè)備

    隨著網(wǎng)絡(luò)規(guī)模的擴大和設(shè)備數(shù)量的增加,手動配置和管理每臺網(wǎng)絡(luò)設(shè)備變得越來越不現(xiàn)實。因此,自動化工具和腳本變得尤為重要。
    的頭像 發(fā)表于 08-12 17:48 ?226次閱讀

    使用Python腳本備份華為交換機的配置信息

    在現(xiàn)代網(wǎng)絡(luò)管理中,備份交換機的配置信息是一項至關(guān)重要的任務(wù)。備份可以確保在交換機發(fā)生故障或配置錯誤時,能夠迅速恢復(fù)到之前的工作狀態(tài)。本文將詳細(xì)介紹如何使用Python
    的頭像 發(fā)表于 08-12 17:50 ?303次閱讀
    使用<b class='flag-5'>Python</b><b class='flag-5'>腳本</b>備份華為交換機的<b class='flag-5'>配置</b>信息

    利用Python腳本登錄到交換機并創(chuàng)建VLAN

    本文將詳細(xì)介紹如何利用Python腳本登錄到交換機并創(chuàng)建VLAN。
    的頭像 發(fā)表于 08-12 17:59 ?282次閱讀