Automatizazione di l'entrata in SecureCRT Utilizendu Scripts
L'ingegneri di a rete spessu affruntà u compitu di copià / incollà certi frammenti da un bloccu note à a cunsola. Di solitu avete da copià parechji paràmetri: Username/Password è qualcosa di più. L'usu di script permette di accelerà stu prucessu. MA i compiti di scrive u script è esecutà u script duveranu piglià menu tempu in totale da a cunfigurazione manuale, altrimente i script sò inutili.
Chì ghjè stu articulu per ? Questu articulu hè di a serie Fast Start è hè destinatu à salvà u tempu di l'ingegneri di a rete durante a stallazione di l'equipaggiu (single task) in parechje dispositi. Utilizà u software SecureCRT è a funziunalità integrata di esecuzione di script. Cuntenuti
U prugramma SecureCRT hà un mecanismu di esecuzione di script integratu fora di a scatula. Chì sò i script di terminal?
I/O automatizatu, è validazione I/O minima.
Accelerate l'esecuzione di e funzioni di rutina - riducendu e pause trà e paràmetri di l'equipaggiu. (Riduzzione de facto di pause causate da u tempu per fà azzione copia / passata nantu à u stessu hardware, cù 3 o più frammenti di cumanda da esse applicati à u hardware.)
Stu documentu copre i travaglii:
Creazione di script simplici.
Esecuzione di script in SecureCRT.
Esempii di usu di script simplici è avanzati. (Pratica da a vita vera).
Creazione di script simplici.
I scripts più simplici utilizanu solu dui cumandamenti, Send è WaitForString. Sta funziunalità hè abbastanza per u 90% (o più) di i travaglii realizati.
I script ponu travaglià in Python, JS, VBS (Visual Basic), Perl, etc.
# $language = "VBScript"
# $interface = "1.0"
Sub Main
crt.Screen.Synchronous = True
crt.Screen.Send vbcr
crt.Screen.WaitForString "name"
crt.Screen.Send "cisco" & vbcr
crt.Screen.WaitForString "assword"
crt.Screen.Send "cisco" & vbcr
crt.Screen.Synchronous = False
End Sub
Di solitu un schedariu cù l'estensione "*.vbs"
Crea un script cù una entrata di script.
Permette di automatizà u prucessu di scrive un script. Avete cuminciatu à scrive un script. SecureCRT registra i cumandamenti è a risposta hardware successiva è mostra u script finitu per voi.
A. Cumincià à scrive u script:
Menu SecureCRT => Script => Start Recording Script
b. Eseguite l'azzioni cù a cunsola (eseguite i passi di cunfigurazione in a CLI).
V. Finite di scrive u script:
Menu SecureCRT => Script => Stop Recording Script...
Salvà u schedariu di script.
Esempiu di cumandamenti eseguiti è script salvati:
Esecuzione di script in SecureCRT.
Dopu à creà / edità u script, una quistione logica nasce: Cumu applicà u script?
Ci hè parechji modi:
Esecuzione manualmente da u menu Script
Start automaticu dopu a cunnessione (script di login)
Login automaticu senza aduprà un script
Triggering manualmente cù un buttone in SecureCRT (un buttone hà ancu esse creatu è aghjuntu à SecureCRT)
Esecuzione manualmente da u menu Script
Menu SecureCRT => Script => Esegui...
- L'ultimi 10 scripts sò ricurdati è dispunibili per un lanciu rapidu:
Menu SecureCRT => Script => 1 "Nome di u schedariu Script"
Menu SecureCRT => Script => 2 "Nome di u schedariu Script"
Menu SecureCRT => Script => 3 "Nome di u schedariu Script"
Menu SecureCRT => Script => 4 "Nome di u schedariu Script"
Menu SecureCRT => Script => 5 "Nome di u schedariu Script"
Start automaticu dopu a cunnessione (script di login)
I paràmetri di script di logu automaticu sò cunfigurati per a sessione salvata: Connessione => Azioni di login => script di login
Login automaticu senza aduprà un script
Hè pussibule inserisce automaticamente u nome d'utilizatore di a password senza scrive un script, utilizendu solu a funziunalità integrata di SecureCRT. In i paràmetri di cunnessione "Connection" => Logon Actions => Automate login - avete bisognu di riempie parechji bundle - chì significanu e coppie: "Testu previstu" + "Send characters to this text" pò esse parechje parechje tali. (Esempiu: 1a coppia in attesa di u nome d'utilizatore, a seconda coppia in attesa di a password, a terza in attesa di u prompt di u modu privilegiatu, a quarta coppia per a password di u modu privilegiatu.)
Esempiu di login automaticu in Cisco ASA:
Triggering manualmente cù un buttone in SecureCRT (un buttone hà ancu esse creatu è aghjuntu à SecureCRT)
In SecureCRT, pudete assignà un script à un buttone. U buttone hè aghjuntu à un pannellu creatu apposta per questu scopu.
A. Aghjunghjendu un pannellu à l'interfaccia: SecureCRT Menu => View => Button Bar
b. Aghjunghjite un buttone à u pannellu è aghjunghje un script. - Cliccate cù u dirittu nantu à a barra di u buttone è selezziunate "New button..." da u menù di cuntestu.
V. In a finestra di dialogu "Map Button", in u campu "Action", selezziunate l'azzione "Run Script" (funzione).
Specificate una didascalia per u buttone. U culore per l'icona di u buttone. Finite i paràmetri clicchendu Ok.
Nutate bè:
U pannellu cù i buttoni hè una funziunalità assai utile.
1. Hè pussibule, quandu Logon à una sessione specifica, per specificà quale pannellu apre à sta tabulazione per difettu.
2. Hè pussibule di stabilisce azzioni predefinite per l'azzioni standard cù l'equipaggiu: mostra a versione di mostra, mostra running-config, salvà a cunfigurazione.
Nisun script hè attaccatu à sti buttoni. A linea d'azzione solu:
Configurazione - cusì chì quandu si passa à una sessione, u pannellu necessariu cù i buttoni si apre in i paràmetri di a sessione:
Hè sensu per u cliente per stabilisce scripts individuali per u Login è andate à u pannellu cù cumandamenti frequenti per u venditore.
Quandu appughjà u buttone Go Cisco, u pannellu cambia à u Cisco Button Bar.
Esempii di usu di script simplici è avanzati. (Pratica da a vita vera).
I script simplici sò abbastanza per quasi tutte l'occasioni. Ma una volta avia bisognu di cumplicà un pocu u script - per accelerà u travagliu. Sta cumplicazione solu dumandava dati supplementari in una finestra di dialogu da l'utilizatore.
Richiedendu dati da l'utilizatore utilizendu una finestra di dialogu
Aviu avutu 2 in u script di dumanda di dati. Questu hè u Hostname è l'octettu 4 di l'indirizzu IP. Per fà sta azione - aghju googled cumu fà è l'aghju trovu nantu à u situ ufficiale di SecureCRT (vandyke). - a funziunalità hè chjamata prompt.
Questa parte di u script hà dumandatu Hostname è numeri da l'ultimu octet. Dapoi ci era 15 pezzi di equipaggiu. E i dati sò stati presentati in una tavula, dopu aghju copiatu i valori da u tavulu è l'aghju incollatu in i scatuli di dialogu. In più, u script hà travagliatu indipindente.
Copia FTP à l'equipaggiu di rete.
Stu script hà lanciatu a mo finestra di cumanda (shell) è copiò dati via FTP. À a fine, chjude a sessione. Hè impussibile di utilizà un bloccu note per questu, perchè a copia dura assai tempu è i dati in u buffer FTP ùn saranu micca guardati per quellu tempu:
# $language = "Python"
# $interface = "1.0"
# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.
def main():
crt.Screen.Synchronous = True
crt.Screen.Send("ftp 192.168.1.1r")
crt.Screen.WaitForString("Name")
crt.Screen.Send("adminr")
crt.Screen.WaitForString("Password:")
crt.Screen.Send("Passwordr")
crt.Screen.WaitForString("ftp")
crt.Screen.Send("binaryr")
crt.Screen.WaitForString("ftp")
crt.Screen.Send("put S5720LI-V200R011SPH016.patr")
crt.Screen.WaitForString("ftp")
crt.Screen.Send("quitr")
crt.Screen.Synchronous = False
main()
Ingressu nome d'utilizatore / password utilizendu un script
À un accessu di u cliente à l'equipaggiu di rete direttamente hè stata chjusa. Hè pussibule entre in l'equipaggiu prima cunnessu à u Gateway Default, è da quì à l'equipaggiu cunnessu à questu. U cliente ssh integratu in u software IOS / hardware hè stata utilizata per cunnette. Per quessa, u nome d'utilizatore è a password sò stati dumandati in a cunsola. Cù u script sottu, u nome d'utilizatore è a password sò stati inseriti automaticamente:
# $language = "Python"
# $interface = "1.0"
# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.
def main():
crt.Screen.Synchronous = True
crt.Screen.Send("snmpadminr")
crt.Screen.WaitForString("assword:")
crt.Screen.Send("Passwordr")
crt.Screen.Synchronous = False
main()
Nota: Ci era script 2. Unu per u contu amministratore, u sicondu per u contu eSIGHT.
Scrittura cù a capacità di appiccicà direttamente dati durante l'esecuzione di u script.
U compitu era di aghjunghje una strada statica in tutti l'equipaggiu di rete. Ma a porta di l'Internet nantu à ogni equipamentu era diversa (è sferente da a porta predeterminata). U seguente script mostrava a tabella di routing, intrutu in u modu di cunfigurazione, ùn hà micca scrittu u cumandamentu à a fine (l'indirizzu IP di a porta di l'Internet) - aghju aghjustatu sta parte. Dopu avè pressatu Enter, u script hà cuntinuatu à eseguisce u cumandamentu.
# $language = "Python"
# $interface = "1.0"
# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.
def main():
crt.Screen.Synchronous = True
crt.Screen.Send("Zdes-mogla-bit-vasha-reklamar")
crt.Screen.WaitForString("#")
crt.Screen.Send("show run | inc ip router")
crt.Screen.WaitForString("#")
crt.Screen.Send("conf tr")
crt.Screen.WaitForString("(config)#")
crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ")
crt.Screen.WaitForString("(config)#")
crt.Screen.Send("endr")
crt.Screen.WaitForString("#")
crt.Screen.Send("copy run star")
crt.Screen.WaitForString("[startup-config]?")
crt.Screen.Send("r")
crt.Screen.WaitForString("#")
crt.Screen.Send("exitr")
crt.Screen.Synchronous = False
main()
In questu script, in a linea: crt.Screen.Send ("ip route 10.10.10.8 255.255.255.252 ") l'indirizzu IP di a porta ùn hè micca aghjuntu è ùn ci hè micca un caratteru di ritornu di carru. U script hè aspittendu a linea dopu cù i caratteri "(config) #" Questi caratteri apparsu dopu avè intrutu in l'indirizzu ip è entre.
Cunclusione:
Quandu scrivite un script è eseguite, a regula deve esse seguita: U tempu per scrive un script è esecutà un script ùn deve mai esse più di u tempu teoricamente spesu à fà u stessu travagliu manualmente (copia / incolla da un bloccu note, scrive è debugging). un playbook per ansible, scrittura è debugging script python). Questu hè, l'usu di u script deve risparmià u tempu, è ùn perde micca u tempu nantu à l'automatizazione unica di prucessi (vale à dì, quandu u script hè unicu è ùn ci sarà più ripetizione). Ma s'è u script hè unicu è l'automatizazione cù u script è a scrittura / debugging u script piglia menu tempu ch'è fà in ogni altru modu (ansible, finestra di cumanda), allora u script hè a megliu suluzione.
Debugging un script. U script cresce gradualmente, u debugging si faci nantu à u run-in nantu à u primu, secondu, terzu dispositivu, è da u quartu u script serà più prubabilmente operativu.
Eseguisce un script (inserendu u nome d'utilizatore + password) cù u mouse hè di solitu più veloce di copià u nome d'utilizatore è a password da un bloccu note. Ma micca sicuru da un puntu di vista di sicurità.
Un altru esempiu (reale) quandu si usa un script: Ùn avete micca accessu direttu à l'equipaggiu di rete. Ma ci hè bisognu di cunfigurà tutti l'equipaggiu di a rete (purtate in u sistema di surviglianza, cunfigurà un Username / password / snmpv3username / password supplementu). Ci hè accessu quandu andate à l'interruttore Core, da ellu avete apertu SSH à altri equipaghji. Perchè ùn pudete micca aduprà Ansible. - Perchè andemu in un limitu in u numeru di sessioni simultanee permesse nantu à l'equipaggiu di rete (linea vty 0 4, user-interface vty 0 4) (una altra quistione hè di cumu principià un equipamentu diversu in Ansible cù u stessu SSH primu hop).
U script reduce u tempu durante operazioni longu - per esempiu, copià i fugliali via FTP. Dopu chì a copia hè finita, u script principia immediatamente à travaglià. Una persona hà bisognu di vede a fine di a copia, poi rializà a fine di a copia, dopu entre in i cumandamenti appropritati. U script faci ugettu più veloce.
I scripts sò applicabili induve hè impussibile d'utilizà strumenti di consegna di dati di massa: Console. O quandu alcune di e dati per l'equipaggiu sò unichi: hostname, indirizzu ip di gestione. O quandu scrive un prugramma è debugging hè più difficiuli di aghjunghje dati ricevuti da l'equipaggiu mentre u script hè in esecuzione. - Un esempiu cù un script per prescrive una strada, quandu ogni equipamentu hà u so propiu indirizzu IP di u fornitore di Internet. (I mo culleghi anu scrittu tali scripts - quandu u DMVPN parlava era più di 3. Era necessariu di cambià i paràmetri DMVPN).
Studiu di casu: Configurazione di i paràmetri iniziali nantu à un novu Switch Utilizendu i porti di a cunsola:
A. Plugged u cable cunsola in u dispusitivu.
B. Eseguite u script
B. Aspittatu per l'esekzione di u script
D. Plugged u cable cunsola in u prossimu dispusitivu.
E. Se u cambiamentu ùn hè micca l'ultimu, andate à u passu B.
In u risultatu di u travagliu di u script:
a password iniziale hè stallata nantu à l'equipaggiu.
Username intrutu
l'indirizzu IP unicu di u dispusitivu hè inseritu.
PS l'operazione duvia esse ripetuta. Perchè ssh predeterminatu ùn hè micca cunfiguratu / disattivatu. (Iè, questu hè u mo sbagliu.)
Un esempiu di un script longu, cù duie dumande: Hostname è indirizzu IP. Hè stata creata per presetting equipaggiu attraversu a cunsola (9600 baud). È ancu per preparà a cunnessione di l'equipaggiu à a reta.
Tali scripts sò generalmente micca necessariu, ma a quantità di l'equipaggiu hè 15 pcs. Permette una cunfigurazione più rapida. Hè stata più veloce per stallà l'equipaggiu utilizendu a finestra di SecureCRT Command.
Configurazione di un contu per ssh.
Un altru esempiu. A cunfigurazione hè ancu attraversu a cunsola.
# $language = "Python"
# $interface = "1.0"
# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.
def main():
crt.Screen.Synchronous = True
crt.Screen.Send("r")
crt.Screen.WaitForString("name")
crt.Screen.Send("adminr")
crt.Screen.WaitForString("Password:")
crt.Screen.Send("Passwordr")
crt.Screen.WaitForString(">")
crt.Screen.Send("sysr")
crt.Screen.Send("stelnet server enabler")
crt.Screen.Send("aaar")
crt.Screen.Send("local-user admin service-type terminal ftp http sshr")
crt.Screen.Send("quitr")
crt.Screen.Send("user-interface vty 0 4r")
crt.Screen.Send("authentication-mode aaar")
crt.Screen.Send("quitr")
crt.Screen.Send("quitr")
crt.Screen.Synchronous = False
main()
À propositu di SecureCRT:Software pagatu: da $ 99 (u prezzu più chjucu hè solu per SecureCRT per un annu) Situ web ufficiale
Una licenza di software hè acquistata una volta, cù supportu (per l'aghjurnamentu), allora u software hè utilizatu cù sta licenza per un tempu illimitatu.
Funziona nantu à i sistemi operativi Mac OS X è Windows.
Ci hè un supportu di scrittura (stu articulu)
Ci sò Finestra di cumandamentu
Sistema Operativu Serial / Telnet / SSH1 / SSH2 / Shell