Netzwierkingenieuren hunn dacks d'Aufgab fir verschidde Fragmenter vun engem Notizblock op d'Konsol ze kopéieren / pechen. Dir musst normalerweis e puer Parameteren kopéieren: Benotzernumm / Passwuert an eppes anescht. D'Benotzung vu Scripten erlaabt Iech dëse Prozess ze beschleunegen. MEE d'Aufgaben fir de Skript ze schreiwen an de Skript auszeféieren sollten am Ganzen manner Zäit daueren wéi manuell Konfiguratioun, soss sinn d'Skripte nëtzlos.
Fir wat ass dësen Artikel? Dësen Artikel ass aus der Fast Start Serie a zielt fir Netzwierkingenieuren Zäit ze spueren wann Dir Ausrüstung (eenzel Aufgab) op verschidden Apparater opstellt. Benotzt SecureCRT Software a gebaut-an Skript Ausféierung Funktionalitéit. Inhalt
De SecureCRT Programm huet en agebaute Skript Ausféierungsmechanismus aus der Këscht. Wat sinn Terminal Scripte fir?
Automatiséiert I/O, a minimal I/O Validatioun.
Beschleunegt d'Ausféierung vun Routine Aufgaben - reduzéiert Pausen tëscht Ausrüstungsastellungen. (De facto Reduktioun vun Pausen verursaacht duerch Zäit fir Kopie / Vergaangenheet Aktiounen op der selwechter Hardware auszeféieren, mat 3 oder méi Kommandofragmenter fir op Hardware applizéiert ze ginn.)
Dëst Dokument deckt d'Aufgaben:
Kreatioun vun einfache Scripten.
Lafen Scripten op SecureCRT.
Beispiller fir einfach a fortgeschratt Scripten ze benotzen. (Praxis aus dem richtege Liewen.)
Kreatioun vun einfache Scripten.
Déi einfachst Skripte benotzen nëmmen zwee Kommandoen, Send a WaitForString. Dës Funktionalitéit ass genuch fir 90% (oder méi) vun den ausgefouerten Aufgaben.
Scripte kënnen a 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
Normalerweis eng Datei mat der Extensioun "*.vbs"
Erstellt e Skript mat engem Skript-Entrée.
Erlaabt Iech de Prozess ze automatiséieren fir e Skript ze schreiwen. Dir fänkt un engem Skript ze schreiwen. SecureCRT registréiert d'Befehle an déi spéider Hardware-Äntwert a weist de fäerdege Skript fir Iech.
A. Fänkt un de Skript ze schreiwen:
SecureCRT Menu => Skript => Start Recording Script
b. Maacht Aktiounen mat der Konsole (Konfiguratiounsschrëtt am CLI ausféieren).
V. Schreift de Skript fäerdeg:
SecureCRT Menu => Skript => Stop Recording Skript ...
Späichert d'Skriptdatei.
Beispill vun ausgefouert Kommandoen a gespäichert Skript:
Lafen Scripten op SecureCRT.
Nodeems Dir de Skript erstallt / geännert huet, stellt sech eng natierlech Fro: Wéi de Skript anzesetzen?
Et ginn e puer Weeër:
Lafen manuell aus dem Script Menü
Automatesch Start no Verbindung (Login Skript)
Automatesch Login ouni e Skript ze benotzen
Ausléiser manuell mat engem Knäppchen am SecureCRT (e Knäppchen muss nach erstallt ginn an op SecureCRT bäigefüügt)
Lafen manuell aus dem Script Menü
SecureCRT Menu => Skript => Run...
- Déi lescht 10 Scripte ginn erënnert a verfügbar fir séier ze starten:
SecureCRT Menu => Skript => 1 "Skript Dateinumm"
SecureCRT Menu => Skript => 2 "Skript Dateinumm"
SecureCRT Menu => Skript => 3 "Skript Dateinumm"
SecureCRT Menu => Skript => 4 "Skript Dateinumm"
SecureCRT Menu => Skript => 5 "Skript Dateinumm"
Automatesch Start no Verbindung (Login Skript)
Automatesch Logging Skriptastellunge gi fir déi gespäichert Sessioun konfiguréiert: Connection => Logon Actions => Logon Script
Automatesch Login ouni e Skript ze benotzen
Et ass méiglech automatesch de Benotzernumm vum Passwuert anzeginn ouni e Skript ze schreiwen, andeems Dir nëmmen déi agebaute Funktionalitéit vu SecureCRT benotzt. An de Verbindungsastellungen "Connection" => Logon Actions => Login automatiséieren - Dir musst e puer Bündel ausfëllen - dat heescht datt d'Paaren: "Erwaart Text" + "Zeechen an dësen Text geschéckt" kënne vill esou Pairen sinn. (Beispill: 1. Pair waart op Benotzernumm, zweet Waart op Passwuert, Drëtt waart op privilegiéierten Modus Ufro, véiert Paar fir privilegéiert Modus Passwuert.)
Beispill vun automateschen Login op Cisco ASA:
Ausléiser manuell mat engem Knäppchen am SecureCRT (e Knäppchen muss nach erstallt ginn an op SecureCRT bäigefüügt)
Am SecureCRT kënnt Dir e Skript un e Knäppchen zouginn. De Knäppchen gëtt op eng Panel bäigefüügt, déi speziell fir dësen Zweck erstallt gouf.
A. E Panel op d'Interface addéieren: SecureCRT Menu => View => Button Bar
b. Füügt e Knäppchen op de Panel a füügt e Skript derbäi. - Riets-klickt op de Knäppchen Bar a wielt "Neie Knäppchen ..." aus dem Kontextmenü.
V. Am Dialog "Kaart Button" am Feld "Action" wielt d'Aktioun "Run Script" (Funktioun).
Gitt eng Iwwerschrëft fir de Knäppchen un. D'Faarf fir de Knäppchen Ikon. Fëllt d'Astellungen of andeems Dir op Ok klickt.
Opgepasst:
De Panel mat Knäppercher ass ganz nëtzlech Funktionalitéit.
1. Et ass méiglech, wann Login op eng spezifesch Sessioun, ze spezifizéieren, wéi eng Panel fir dës Tab als Standard opzemaachen.
2. Et ass méiglech virdefinéiert Aktiounen fir Standardaktiounen mat Ausrüstung ze setzen: Show Show Versioun, Show Running-Config, späichert Konfiguratioun.
Kee Skript ass un dëse Knäpper verbonnen. Nëmmen Aktiounslinn:
Astellung - sou datt wann Dir op eng Sessioun wiesselt, déi néideg Panel mat Knäppercher an de Sessiounsastellungen opmaacht:
Et mécht Sënn fir de Client individuell Scripte fir Login opzestellen an op d'Panel ze goen mat heefege Befehle fir de Verkeefer.
Wann Dir op de Go Cisco Knäppchen dréckt, wiesselt de Panel op d'Cisco Button Bar.
Beispiller fir einfach a fortgeschratt Scripten ze benotzen. (Praxis aus dem richtege Liewen.)
Einfach Scripte si genuch fir bal all Occasiounen. Awer eemol brauch ech de Skript e bëssen ze komplizéieren - d'Aarbecht ze beschleunegen. Dës Komplikatioun huet einfach zousätzlech Donnéeën an enger Dialogbox vum Benotzer gefrot.
Ufro Daten vum Benotzer mat enger Dialogbox
Ech hat 2 am Datefuerderungsskript. Dëst ass den Hostnumm an de 4. Oktett vun der IP Adress. Fir dës Aktioun auszeféieren - ech hunn googled wéi ech et maachen an et op der offizieller Websäit vu SecureCRT (vandyke) fonnt. - d'Funktionalitéit gëtt prompt genannt.
Dësen Deel vum Skript huet gefrot fir Hostnumm an Zuelen aus dem leschten Oktett. Zënter datt et 15 Ausrüstung waren. An d'Donnéeën goufen an enger Tabell presentéiert, dunn hunn ech d'Wäerter aus der Tabell kopéiert an an d'Dialogboxen gepecht. Weider huet de Skript onofhängeg geschafft.
FTP Kopie op Netzwierkausrüstung.
Dëse Skript huet meng Kommandofenster (Shell) gestart an Daten iwwer FTP kopéiert. Um Enn schléisst d'Sessioun zou. Et ass onméiglech Notizblock dofir ze benotzen, well d'Kopie dauert ganz laang an d'Donnéeën am FTP-Puffer ginn net sou laang gespäichert:
# $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()
Benotzernumm / Passwuert mat engem Skript aginn
Op ee Client Zougang zu Reseau Equipement direkt zougemaach. Et war méiglech d'Ausrüstung anzeginn andeems Dir fir d'éischt mat der Default Gateway verbënnt, a vun deem dann un d'Ausrüstung verbonnen. Den ssh Client, deen an der IOS / Hardware Software gebaut gouf, gouf benotzt fir ze verbannen. Deementspriechend goufen de Benotzernumm a Passwuert an der Konsole gefrot. Mat dem Skript hei drënner goufen de Benotzernumm a Passwuert automatesch aginn:
# $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()
Opgepasst: Et waren 2 Skripte: Ee fir den Administratorkonto, dat zweet fir den eSIGHT Kont.
Skript mat der Fäegkeet fir direkt Daten wärend der Skriptausféierung ze addéieren.
D'Aufgab war eng statesch Streck op all Netzwierkausrüstung ze addéieren. Awer de Paart zum Internet op all Ausrüstung war anescht (an et ënnerscheet sech vum Standardpaart). Déi folgend Skript huet d'Routing-Tabelle ugewisen, an de Konfiguratiounsmodus aginn, de Kommando net bis zum Schluss geschriwwen (d'IP Adress vum Paart zum Internet) - ech hunn dësen Deel bäigefüügt. Nodeems ech op Enter gedréckt hunn, huet de Skript weider de Kommando ausgefouert.
# $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()
An dësem Skript, an der Linn: crt.Screen.Send ("ip route 10.10.10.8 255.255.255.252 ") gëtt d'IP Adress vum Paart net derbäigesat an et gëtt kee Carriage Return Charakter. D'Skript waart op déi nächst Zeil mat den Zeeche "(config) #" Dës Zeechen erschéngen nodeems ech d'IP Adress aginn hunn an aginn.
Fazit:
Wann Dir e Skript schreift an ausféiert, muss d'Regel gefollegt ginn: D'Zäit fir e Skript ze schreiwen an e Skript auszeféieren däerf ni méi sinn wéi d'Zäit déi theoretesch verbruecht gëtt fir déi selwecht Aarbecht manuell ze maachen (Kopie / Paste vun engem Notizblock, Schreiwen an Debugging e Spillbuch fir ansible, Schreiwen an Debugging Python Skript). Dat ass, d'Benotzung vum Skript soll Zäit spueren, an net Zäit op eemoleg Automatisatioun vu Prozesser verschwenden (dh wann de Skript eenzegaarteg ass an et gëtt keng Widderhuelung méi). Awer wann d'Skript eenzegaarteg ass an d'Automatiséierung mam Skript a Schreiwen / Debugging vum Skript dauert manner Zäit wéi et op all aner Manéier ze maachen (ansibel, Kommandofenster), dann ass de Skript déi bescht Léisung.
Debugging engem Skript. D'Skript wiisst graduell, Debugging fënnt um Run-in um éischten, zweeten, drëtten Apparat statt, a bis de véierte wäert de Skript héchstwahrscheinlech voll operationell sinn.
E Skript auszeféieren (duerch Benotzernumm + Passwuert aginn) mat der Maus ass normalerweis méi séier wéi d'Kopie vum Benotzernumm a Passwuert vun engem Notizblock. Awer net sécher aus Sécherheetssiicht.
En anert (richtegt) Beispill wann Dir e Skript benotzt: Dir hutt keen direkten Zougang zu Netzwierkausrüstung. Awer et ass néideg fir all Netzwierkausrüstung ze konfiguréieren (bréngt et an den Iwwerwaachungssystem, konfiguréiert en zousätzleche Benotzernumm / Passwuert / snmpv3username / Passwuert). Et gëtt Zougang wann Dir op de Core Schalter gitt, vun deem Dir SSH op aner Ausrüstung opmaacht. Firwat kënnt Dir Ansible net benotzen. - Well mir lafen an eng Limite op d'Zuel vun erlaabt simultan Sessiounen op Reseau Equipement (Linn vty 0 4, User-Interface vty 0 4) (aner Fro ass wéi verschidden Ausrüstung an Ansible mat der selwechter SSH éischt Hop ufänken).
De Skript reduzéiert d'Zäit während laangen Operatiounen - zum Beispill Kopie vun Dateien iwwer FTP. Nodeems d'Kopie fäerdeg ass, fänkt de Skript direkt un. Eng Persoun muss d'Enn vun der Kopie gesinn, dann d'Enn vun der Kopie realiséieren, da gitt déi entspriechend Kommandoen. De Skript mécht et objektiv méi séier.
Scripte sinn applicabel wou et onméiglech ass Mass Daten Liwwerung Tools ze benotzen: Konsol. Oder wann e puer vun den Donnéeën fir d'Ausrüstung eenzegaarteg sinn: Hostnumm, Management IP Adress. Oder wann Dir e Programm schreift an Debugging ass et méi schwéier wéi d'Donnéeën ze addéieren, déi vun der Ausrüstung kritt goufen, während de Skript leeft. - E Beispill mat engem Skript fir eng Streck virzeschreiwen, wann all Ausrüstung seng eege IP Adress vum Internet Provider huet. (Meng Kollegen hunn esou Scripte geschriwwen - wann den DMVPN geschwat huet iwwer 3. Et war néideg fir d'DMVPN Astellungen z'änneren).
Fallstudie: Konfiguratioun vun initialen Astellungen op engem neie Schalter mat de Konsol Ports:
A. Steckd der Konsol Kabel an den Apparat.
B. Run de Skript
B. Op d'Ausféierung vum Skript gewaart
D. Steckd de Konsolkabel an den nächsten Apparat.
E. Wann de Schalter net dee leschten ass, gitt op Schrëtt B.
Als Resultat vun der Aarbecht vum Skript:
den initialen Passwuert ass op der Ausrüstung gesat.
Benotzernumm aginn
déi eenzegaarteg IP Adress vum Apparat gëtt aginn.
PS d'Operatioun huet misse widderholl ginn. Well Default ssh war net konfiguréiert / behënnert. (Jo, dëst ass mäi Feeler.)
E Beispill vun engem laange Skript, mat zwou Ufroen: Hostnumm an IP Adress. Et gouf erstallt fir Ausrüstung duerch d'Konsole virzestellen (9600 Baud). An och fir d'Verbindung vun Ausrüstung zum Netz ze preparéieren.
Esou Scripten sinn normalerweis net néideg, mä de Montant vun Equipement ass 15 Stéck. Méi séier Setup erlaabt. Et war méi séier d'Ausrüstung mat der SecureCRT Command Fënster opzestellen.
E Kont opzemaachen fir ssh.
En anert Beispill. D'Konfiguratioun ass och iwwer d'Konsole.
# $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()
Iwwer SecureCRT:Bezuelt Software: vun $ 99 (de klengste Präis ass nëmme fir SecureCRT fir ee Joer) Offiziell Websäit
Eng Software Lizenz gëtt eemol kaaft, mat Ënnerstëtzung (fir d'Aktualiséierung), da gëtt d'Software mat dëser Lizenz fir eng onlimitéiert Zäit benotzt.
Schafft op Mac OS X a Windows Betribssystemer.
Et gëtt Skript Ënnerstëtzung (dësen Artikel)
et ginn Kommando Fënster
Serial / Telnet / SSH1 / SSH2 / Shell Betribssystem