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

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

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

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

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

之前分享過(guò)利用python腳本登錄一臺(tái)交換機(jī),

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

今天,它來(lái)了!

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

說(shuō)不定,老板就給你加雞腿了!

一、實(shí)驗(yàn)環(huán)境搭建

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

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

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

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

3、給每臺(tái)路由器做好初始化配置,即配置修改設(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先登錄一下各個(gè)設(shè)備,驗(yàn)證網(wǎng)絡(luò)連通性、ssh連通性是否ok?

這里以R1為例,驗(yàn)證一下。測(cè)試時(shí),你們可以每臺(tái)都驗(yàn)證一下。

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

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

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

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

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

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

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

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

三、編寫(xiě)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寫(xiě)for循環(huán)時(shí),一定要注意縮進(jìn)格式。

代碼解釋:

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

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

for line in f.readlines():

ip = line.strip()

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

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

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

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

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

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

所以,還沒(méi)執(zhí)行前,我們可以登錄設(shè)備看看,確實(shí)沒(méi)有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、接下來(lái),我們開(kāi)始執(zhí)行代碼:

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

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

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

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

然后觀察運(yùn)行情況:

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

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

可知,python腳本執(zhí)行成功了,我們也可以再通過(guò)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

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

審核編輯:湯梓紅

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

    關(guān)注

    22

    文章

    3681

    瀏覽量

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

    關(guān)注

    0

    文章

    304

    瀏覽量

    29554
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4758

    瀏覽量

    84289
收藏 人收藏

    評(píng)論

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

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

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

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

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

    Protel DXP批量修改如何使用

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

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

    怎么對(duì)Orcad的網(wǎng)絡(luò)標(biāo)號(hào)進(jìn)行統(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)號(hào)的方法

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

    因?yàn)橛屑s200臺(tái)的網(wǎng)絡(luò)設(shè)備需要每天登錄巡檢、查看配置、保存配置、定期更改密碼(每周改一次),如果都手動(dòng)去登錄、
    的頭像 發(fā)表于 12-28 09:32 ?4209次閱讀

    python練手小程序

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

    如何通過(guò)Python腳本批量采集華為交換機(jī)配置

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

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

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

    shell實(shí)例三(編寫(xiě)批量修改擴(kuò)展名腳本)

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

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

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

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

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

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

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

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

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