您的位置 首页 kreess

技術No.3 | 使用VBS制作CRT腳本

| 最近接觸到瞭VB,剛好CRT可以支持VB腳本,就想著試試看能不能寫個幫助自己增加工作效率的腳本。又剛好項目裡遇上個問題,需要大批量處理網絡設備端口配置,如果靠手工操作,

| 最近接觸到瞭VB,剛好CRT可以支持VB腳本,就想著試試看能不能寫個幫助自己增加工作效率的腳本。又剛好項目裡遇上個問題,需要大批量處理網絡設備端口配置,如果靠手工操作,一臺臺遠程到設備上再一個個口操作,費時費力。基於此背景,開始構想一個腳本來解決問題。

重要:默認讀者具有基本的編程基礎,知道變量、函數等基本概念。前面廢話較多,大佬請直接到三、四、五查看結果即可。

目錄:

  • 一、需求分析
  • 二、概要設計
  • 三、編碼
  • 四、測試&實際運行&迭代
  • 五、VBS在CRT中常用語法整理

圖1,某公司網絡帶外組網簡圖

一、需求分析

首先介紹操作背景,本次操作由於安全性要求,從公網登錄設備隻能從某公司的VPN登錄到其雲平臺下的某虛機中,操作雲端CRT應用進行配置。由於此次操作數量較大,而該平臺隻支持一個用戶一次登錄一臺設備,而且斷開連接後需要回到web的GUI界面重新登錄雲虛機操作

基於此背景,可以確認以下兩點:

1、珍愛生命和眼睛,拒絕一臺一臺手工配置

2、前東傢的Ex巡檢軟件會斷開會話再新建會話,不適用於此場景

進一步分析組網,如圖1,大量需要操作的設備,在帶外網絡中通過帶外接入交換機,走二層接入,匯聚到帶外匯聚交換機上,其三層網關設置在帶外匯聚交換機上。帶外匯聚交換機再上行接入其他核心層設備,將整個資源池納入管理網絡。

基於組網,我們可以考慮如下操作方式:

1、遠程登錄帶外匯聚交換機,通過三層訪問接入側的網絡設備。

2、到機房接入帶外匯聚交換機,通過三層訪問接入側的網絡設備。

那當然能不去機房就不去啦,能去機房直接大量會話文件一個巡檢工具搞定。所以,接入方式選擇1。

至此,確認瞭通過遠程接入方式,走帶外匯聚跳轉其他設備進行配置。

二、概要設計

確認操作方式,通過模擬單臺設備的登錄、操作過程,得到如下簡易邏輯圖(圖2):

圖2,簡易邏輯圖

進一步細化登錄事件,增加可能出現的流程判定、需操作端口類別判定(圖3)。

圖3,細化的流程圖

三、編碼

對於熟悉編程的讀者,應該已經發現,這個流程實現起來都是一些簡單函數的堆疊,由於操作的端口數量為40+個,我們通過一個for循環來遞增端口。由於以上流程需要重復操作,主函數下需要一個外層的循環體,使用do loop until循環,判斷條件使用if else判斷,對於可能出現的“–more–”使用while循環跳過,大致的框架如下:

Sub Main
Do
登錄語句
if 登錄條件 Then 執行語句
end if
登錄成功開啟日志記錄
while crt.Screen.WaitForString ("- More -",2) '執行記錄判定more
crt.Screen.Send " " & chr(13)
WEnd
Dim i
for i=1 to 44
執行遞增語句
if 端口為up Then
操作up down
end if
next
采集操作後日志
while crt.Screen.WaitForString ("- More -",2)
crt.Screen.Send " " & chr(13)
WEnd
判斷是否回到起點
if 當前是否為已操作設備 Then
退出視圖
end if
Loop until 退出條件
End Sub

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部