Si necesita configurar la misma configuración para una gran cantidad de dispositivos, es una pérdida de tiempo iniciar sesión y configurar el dispositivo uno por uno y es más propenso a errores. Si el dispositivo es compatible con ZTP, será muy conveniente. Pero un enfoque más común es usar VBSCRIPT, la ejecución del script puede automatizar el proceso de inicio de sesión, lo que mejora enormemente la eficiencia. Además, el diseño cuidadoso antes de la ejecución puede garantizar que no ocurra ningún problema.
Software de terminal como SecureCRT que admite VBSCRIPT. Se puede esperar la solicitud de inicio de sesión del dispositivo, la solicitud después del inicio de sesión y la respuesta a cada línea de comando. De esta manera, el diseño automático se puede realizar de acuerdo con estas indicaciones y respuestas.
Por motivos de seguridad y auditoría, básicamente el inicio de sesión de los dispositivos ahora se basa en un servidor como trampolín. Esto es conveniente para procesar el script correspondiente después de iniciar sesión en un servidor.
Para el procesamiento automático, el nombre, la dirección IP y el nombre de usuario y contraseña del enrutador al que se va a acceder se almacenan en el archivo .csv. La ventaja es que el programa se puede procesar de manera eficiente y la lista de dispositivos se puede copiar fácilmente desde otros archivos de datos en formato Excel.
Después de iniciar sesión en el servidor, ejecute el script. Cada vez que se lee una línea del archivo de datos y se almacena en la matriz. Los campos en los datos indican el nombre del dispositivo, el tipo de dispositivo, la dirección IP, el nombre de usuario de inicio de sesión y la contraseña. Según esta información, combínelos en la línea de comando de inicio de sesión, luego ingrese el comando para realizar la operación correspondiente.
Proceso del Script
Ejemplo de Script
#$language = "VBScript"
#$interface = "1.0"
crt.Screen.Synchronous = True
Sub Main
'Para definir el modo de acceso a archivos
Const ForReading = 1, ForWriting =2, ForAppending = 8
'Para definir qué línea comenzar
Const StartLine = 1
'Para definir el objeto del sistema de archivos y los parámetros relacionados
'fso, file1 is to define the file system
'line store the information of one NE in one line
'neinfo stores the line into array
'LineIndex store the number of the lines
Dim fso, file1, line, neinfo, LineIndex
'Definir el modo de acceso a los enrutadores
Dim to_save, to_conf, to_check
to_check = 1
to_save = 0
to_conf = 0
'abra el archivo all.csv, para leer línea por línea más tarde
set fso = CreateObject("Scripting.FileSystemObject")
set file1 = fso.openTextFile("d:\all.csv", ForReading, False)
' de acuerdo con la línea de inicio constante, lea el archivo hasta la línea de inicio
if Startline > 1 then
for LineIndex = 1 to StartLine-1
line = file1.readline
next
end if
'Lea línea por línea en el documento, y por cada línea, inicie sesión en el NE representado y realice la actividad relacionada
do while file1.AtEndofStream <> True
' lee una línea
line = file1.readline
LineIndex = LineIndex +1
' Separe la información y colóquela en una matriz NeInfo
NeInfo = split (line, ",")
crt.Screen.WaitForString "#"
' inicie sesión en el dispositivo usando ssh o telnet, la línea de comando es diferente
if NEInfo(3) = "ssh" then
crt.Screen.Send NeInfo(3) & " " & NeInfo(4) & "@" & NeInfo(2) & vbCr
else
crt.Screen.Send NeInfo(3) & " " & NeInfo(2) & vbCr
crt.Screen.WaitForString "sername:"
crt.Screen.Send NeInfo(4) & vbCr
end if
' Si el enrutador inicia sesión por primera vez, el sistema solaris debe confirmar para guardar la información de la contraseña.
Dim SwitchKey
SwitchKey=crt.Screen.WaitForStrings("(yes/no)?","assword:",60)
Select case SwitchKey
case 1
crt.Screen.Send "yes" & vbCr
crt.Screen.WaitForString "assword:"
crt.Screen.Send NEinfo(5) & vbCr
case 2
crt.Screen.Send NEinfo(5) & vbCr
End Select
'Para averiguar el nombre del enrutador para uso futuro
dim strResult, strline
strResult = crt.Screen.ReadString (">")
strline = split (strResult, "<")
' Temporalmente no pausa la pantalla
crt.screen.send "screen 0 temp" & vbCr
if to_check = 1 then
'crt.Screen.WaitForStrING ">"
crt.Screen.WaitForStrING Strline(1) & ">"
crt.Screen.Send "display clock" & vbCr
end if
if to_conf = 1 then
'crt.Screen.WaitForStrING ">"
crt.Screen.WaitForStrING Strline(1) & ">"
crt.screen.send "" & vbCr
crt.Screen.WaitForStrING Strline(1) & ">"
crt.screen.send "system-view" & vbCr
crt.Screen.WaitForStrING "]"
crt.Screen.Send "display this" & vbCr
crt.Screen.WaitForStrING "]"
crt.Screen.Send "return" & vbCr
end if
if to_save = 1 then
crt.Screen.WaitForStrING ">"
crt.Screen.Send "save" & vbCr
crt.Screen.WaitForStrING "[Y/N]"
crt.Screen.Send "y" & vbCr
end if
crt.Screen.WaitForStrING Strline(1) & ">"
crt.Screen.Send "quit" & vbCr
' un enrutador completado, continúe con el siguiente enrutador hasta que el archivo esté vacío
loop
end sub