最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python如何實(shí)現(xiàn)網(wǎng)絡(luò)自動(dòng)化運(yùn)維華為設(shè)備

 更新時(shí)間:2024年11月27日 14:36:47   作者:qq_2661138306  
本文介紹了如何使用Python實(shí)現(xiàn)華為設(shè)備的網(wǎng)絡(luò)自動(dòng)化運(yùn)維,包括環(huán)境配置、設(shè)備配置、功能模塊實(shí)現(xiàn)和SFTP文件傳輸測(cè)試

Python網(wǎng)絡(luò)自動(dòng)化運(yùn)維華為設(shè)備

本文將講述使用Python實(shí)現(xiàn)華為設(shè)備的網(wǎng)絡(luò)自動(dòng)化運(yùn)維。

本次運(yùn)維是基于Python 3.11環(huán)境,需要提前安裝paramiko和ncclient第三方庫(kù)。

使用eNSP仿真模擬器來(lái)模擬真實(shí)環(huán)境的拓?fù)鋱D

首先需要保證宿主機(jī)與模擬器內(nèi)的網(wǎng)絡(luò)互通

我這里使用了192.168.10.0/24的本地適配器作為橋接網(wǎng)卡

測(cè)試互通性效果如下:

接下來(lái)配置登錄LSW4交換機(jī)設(shè)備的本地賬戶

int vlan 1
ip add 192.168.10.2 24    //配置VLANif 1的地址用來(lái)連接設(shè)備
user-interface vty 0 4
authentication-mode aaa    //將虛擬遠(yuǎn)程登錄的模式設(shè)置為AAA認(rèn)證
protocol inbound ssh        //使能SSH協(xié)議連接功能
user privilege level 15    //用戶權(quán)限為15,這是最高權(quán)限
quit
stelnet server enable        //使能設(shè)備stelnet服務(wù)的功能
ssh user test                //配置SSH用戶test
ssh user test service-type stelnet     //將用戶的服務(wù)類型改為stelnet
ssh user test authentication-type password    //將SSH用戶test的登錄模式改為密碼模式
aaa                                            //進(jìn)入AAA視圖
local-user test password cipher  Huawei@123    //配置test賬戶的密碼
local-user test privilege level 15            //配置test賬號(hào)的權(quán)限為15
local-user test service-type ssh             //配置SSH賬戶的權(quán)限為SSH
//以上是connect和command模塊

sftp server enable                            //使能SFTP服務(wù)
ssh user test service-type  all                 //開(kāi)啟test全部的服務(wù)
ssh user test sftp-directory flash:            //將用戶test的sftp下載目錄指定為flash:下
//以上是download模塊

配置LSW6的聚合鏈路和OSPF協(xié)議用以測(cè)試

int eth-tr 1
mode lacp
trunkport g0/0/1
trunkport g0/0/2
//配置聚合鏈路

int vlan 1
ip add 192.168.10.4 24
//使用該地址登錄設(shè)備

ospf 
area 0
net 0.0.0.0 0.0.0.0
//與LSW4建立OSPF鄰居關(guān)系

LSW4上也要進(jìn)行相應(yīng)OSPF和聚合鏈路的配置

interface Eth-Trunk1
 mode lacp-static
#
interface GigabitEthernet0/0/2
 eth-trunk 1
#
interface GigabitEthernet0/0/3
 eth-trunk 1
//聚合鏈路

ospf 1
 area 0.0.0.0
  network 0.0.0.0 255.255.255.255
//配置OSPF協(xié)議

接下來(lái)進(jìn)行CE2設(shè)備的配置

該設(shè)備主要用來(lái)進(jìn)行netconf的功能測(cè)試

int vlan 1
ip add 192.168.10.3 24
//配置登錄地址

int g1/0/0
undo shut
//開(kāi)啟接口

stelnet server enable    //使能stelnet服務(wù)

user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
//將遠(yuǎn)程登錄模式設(shè)置為AAA模式,開(kāi)啟SSH登錄功能

aaa
 local-user netconf password cipher Huawei@123
 local-user netconf service-type ssh
 local-user netconf level 3
//創(chuàng)建一個(gè)netconf賬戶,密碼為Huawei@123,服務(wù)類型為SSH,權(quán)限為3
#
ssh user netconf
ssh user netconf authentication-type password
ssh user netconf service-type snetconf
//將用戶netconf的認(rèn)證類型改為密碼類型,服務(wù)類型改為snetconf
將
#
netconf
protocol inbound ssh port 830
//netconf的端口號(hào)為830,允許netconf通過(guò)830號(hào)端口連接
q
#
snetconf server enable
//使能snetconf服務(wù)

下載好第三方庫(kù)

ncclient,paramiko

在PyCharm環(huán)境內(nèi)引入對(duì)應(yīng)的庫(kù)

import re,time,paramiko
from datetime import datetime
from config import parameter_dict,netconf1
from ncclient import manager
from ncclient.xml_ import to_ele
from threading import Thread

創(chuàng)建一個(gè)類

里面定義并實(shí)現(xiàn)六個(gè)功能模塊:

class SW:
    def __init__(self):    //初始化,建立起與設(shè)備的SSH連接。
        self.session = paramiko.SSHClient()
        self.session.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        self.session.connect(hostname='192.168.10.2',password='Huawei@123',username='test',port=22,allow_agent=False,look_for_keys=False)
        self.vty = self.session.invoke_shell()
        self.command('sc 0 te')
        print('連接成功')
    def command(self,command):    //向網(wǎng)絡(luò)設(shè)備終端輸入變量并輸出回顯,回顯字符上限為999999,類型為utf-8
        self.vty.send(command+'\n')
        time.sleep(1)
        return self.vty.recv(999999).decode('utf-8')
    def parameter_info(self):    //定義監(jiān)控?cái)?shù)據(jù)參數(shù)方法,每個(gè)5分鐘輸出一次設(shè)備參數(shù)
        parameter_list = []
        while True:
            for i in parameter_dict.keys():
                pat = self.command(parameter_dict[i]['command'])
                print(pat)
                res = re.compile(parameter_dict[i]['re']).findall(pat)
                print(res)
                if i == 'fan': res = res if res else "All are fans faulty"
                parameter_list.append(f'{i}:{res}')
            print('\n'.join(parameter_list))
            time.sleep(60 * 5)
    def download(self):        //通過(guò)SFTP功能下載flash:/vrpcfg.zip文件,并每隔一天保存在本地W:\\TestPython文件夾內(nèi)
        while True:
            with paramiko.Transport(('192.168.10.2',22)) as t:
                t.connect(username='test',password='Huawei@123')
                sftp = paramiko.SFTPClient.from_transport(t)
                sftp.get('/vrpcfg.zip',f'W:\\TestPython\\{datetime.now().strftime("%Y_%m_%d_%H_%M_%S")}.zip')
            print('下載成功')
            time.sleep(60 * 60 * 24)
    def netconf(self,xml):        //最后配置日志文件地址為10.1.60.2
        manager.connect(host='192.168.10.3',port=22,username='netconf',password="Huawei@123",allow_agent=False,hostkey_verify=False,device_params={"name":"huawei"}).rpc(to_ele(xml))
        print("設(shè)置成功")
    def start(self):            //定義多進(jìn)程模塊
        Thread(target=self.download).start()
        Thread(target=self.parameter_info).start()
if __name__ == "__main__":        //滿足條件則運(yùn)行該文件
    for i in netconf1.values():
        SW().start()
        SW().netconf(i)

需要配置一個(gè)名為config的xml文件

內(nèi)容如下所示,運(yùn)行后會(huì)查看該設(shè)備的風(fēng)扇狀態(tài),電源狀態(tài),CPU利用率,內(nèi)存使用率,OSPF鄰居狀態(tài),以及聚合鏈路狀態(tài)。

parameter_dict = {
"fan" : {"command":"display fan","re":"Normal"},
"power" : {"command":"display power","re":"Supply|NotSupply|Sleep|No"},
"cpu" : {"command":"display cpu-usage","re":"CPU Usage            : .+?%"},
"memory" : {"command":"display memory","re":"Memory Using Percentage Is: .+?%"},
"ospf" : {"command":"display ospf peer brief","re":"down|init|2-way|exstart|exchange|loading|Full"},
"lacp" : {"command":"display eth-trunk","re":"Up|Down"}
}

netconf1 = {
    'host_log': '''
            <edit-config>
    <target>
      <running/>
    </target>
    <default-operation>merge</default-operation>
    <error-option>rollback-on-error</error-option>
    <config>
      <syslog xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <syslogServers>
          <syslogServer operation="merge">
            <ipType>ipv4</ipType>
            <serverIp>10.1.60.2</serverIp>
            <isDefaultVpn>false</isDefaultVpn>
            <vrfName>_public_</vrfName>
            <timestamp>UTC</timestamp>
            <transportMode>tcp</transportMode>
          </syslogServer>
        </syslogServers>
      </syslog>
    </config>
  </edit-config>  
'''}

運(yùn)行后就可以輸出網(wǎng)絡(luò)設(shè)備終端的回顯內(nèi)容了

以下是回顯截圖:

SFTP本地下載設(shè)備狀態(tài)到指定路徑測(cè)試

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Python插入SVG到PDF文檔中的方法示例

    使用Python插入SVG到PDF文檔中的方法示例

    將SVG(可縮放矢量圖形)文件插入到PDF(便攜式文檔格式)文件中不僅能夠保留SVG圖像的矢量特性,確保圖像在任何分辨率下都保持清晰,使得技術(shù)文檔、手冊(cè)、報(bào)告等內(nèi)容更加豐富多樣且易于傳播,本文將介紹如何使用Python插入SVG文件到PDF文檔中,需要的朋友可以參考下
    2024-08-08
  • Python?作為小程序后端的三種實(shí)現(xiàn)方法(推薦)

    Python?作為小程序后端的三種實(shí)現(xiàn)方法(推薦)

    這篇文章主要介紹了Python?作為小程序后端的三種方法,在這比較推薦前兩種方法,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • Python簡(jiǎn)易計(jì)算器制作方法代碼詳解

    Python簡(jiǎn)易計(jì)算器制作方法代碼詳解

    這篇文章主要介紹了Python簡(jiǎn)易計(jì)算器制作方法,文中代碼主要用到了python中的tkinter庫(kù),代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • python一秒搭建FTP服務(wù)器

    python一秒搭建FTP服務(wù)器

    今天給大家分享一篇教程關(guān)于python一秒搭建FTP服務(wù)器的教程,在搭建過(guò)程中需要用到pyftpdlib模塊,對(duì)python FTP服務(wù)器搭建過(guò)程感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 使用Python、TensorFlow和Keras來(lái)進(jìn)行垃圾分類的操作方法

    使用Python、TensorFlow和Keras來(lái)進(jìn)行垃圾分類的操作方法

    這篇文章主要介紹了如何使用Python、TensorFlow和Keras來(lái)進(jìn)行垃圾分類,這個(gè)模型在測(cè)試集上可以達(dá)到約80%的準(zhǔn)確率,可以作為一個(gè)基礎(chǔ)模型進(jìn)行后續(xù)的優(yōu)化,需要的朋友可以參考下
    2023-05-05
  • 利用Anaconda簡(jiǎn)單安裝scrapy框架的方法

    利用Anaconda簡(jiǎn)單安裝scrapy框架的方法

    今天小編就為大家分享一篇利用Anaconda簡(jiǎn)單安裝scrapy框架的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Python3中將字符串轉(zhuǎn)換為字節(jié)的三種方法

    Python3中將字符串轉(zhuǎn)換為字節(jié)的三種方法

    在Python 3中,字符串(str)和字節(jié)(bytes)是兩種不同的數(shù)據(jù)類型,在處理文件、網(wǎng)絡(luò)傳輸?shù)葓?chǎng)景時(shí),經(jīng)常需要將字符串轉(zhuǎn)換為字節(jié),Python提供了多種方法來(lái)實(shí)現(xiàn)這一轉(zhuǎn)換,本文將詳細(xì)介紹這些方法及其區(qū)別,需要的朋友可以參考下
    2025-06-06
  • Python字典取值全攻略之高效、簡(jiǎn)潔地獲取字典值的多種技巧

    Python字典取值全攻略之高效、簡(jiǎn)潔地獲取字典值的多種技巧

    這篇文章主要給大家介紹了關(guān)于Python字典取值全攻略之高效、簡(jiǎn)潔地獲取字典值的多種技巧,dictionary(字典)是除列表以外Python之中最靈活的數(shù)據(jù)類型,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Python實(shí)現(xiàn)Word文檔自動(dòng)化排版的完整流程

    Python實(shí)現(xiàn)Word文檔自動(dòng)化排版的完整流程

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)Word文檔自動(dòng)化排版的完整流程,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解下
    2026-01-01
  • Python機(jī)器學(xué)習(xí)庫(kù)sklearn(scikit-learn)的基礎(chǔ)知識(shí)和高級(jí)用法

    Python機(jī)器學(xué)習(xí)庫(kù)sklearn(scikit-learn)的基礎(chǔ)知識(shí)和高級(jí)用法

    Scikit-Learn是 Python 最流行的機(jī)器學(xué)習(xí)庫(kù)之一,它提供了各種工具來(lái)實(shí)現(xiàn)、評(píng)估和探索各種學(xué)習(xí)算法,用于,各種機(jī)器學(xué)習(xí)任務(wù),在本教程中,我們將介紹 Scikit-Learn 的基礎(chǔ)知識(shí)和一些高級(jí)用法,并提供一些實(shí)例代碼來(lái)幫助我們更好地理解
    2023-07-07

最新評(píng)論

大安市| 长宁县| 耿马| 酉阳| 逊克县| 安义县| 温宿县| 咸阳市| 健康| 祁阳县| 黄龙县| 新泰市| 合肥市| 松江区| 榆社县| 大港区| 于田县| 阿图什市| 清丰县| 湟源县| 阿图什市| 新安县| 陕西省| 黄大仙区| 呼图壁县| 微山县| 宁国市| 清远市| 南召县| 鹤峰县| 若尔盖县| 麦盖提县| 什邡市| 兴化市| 双城市| 巨鹿县| 定结县| 青铜峡市| 云浮市| 衡东县| 南靖县|