Automatizimi i hyrjes në SecureCRT duke përdorur skriptet

Inxhinierët e rrjetit shpesh përballen me detyrën e kopjimit/ngjitjes së disa fragmenteve nga një bllok shënimesh në tastierë. Zakonisht duhet të kopjoni disa parametra: Emri i përdoruesit/Fjalëkalimi dhe diçka tjetër. Përdorimi i skripteve ju lejon të shpejtoni këtë proces. POR detyrat e shkrimit të skenarit dhe ekzekutimit të skenarit duhet të marrin më pak kohë në total sesa konfigurimi manual, përndryshe skriptet janë të padobishme.

Për çfarë është ky artikull? Ky artikull është nga seria Fast Start dhe synon të kursejë kohën e inxhinierëve të rrjetit kur konfigurojnë pajisjet (detyrë e vetme) në pajisje të shumta. Përdor softuerin SecureCRT dhe funksionalitetin e integruar të ekzekutimit të skriptit.

Përmbajtje

Paraqitje

Programi SecureCRT ka një mekanizëm të integruar të ekzekutimit të skriptit jashtë kutisë. Për çfarë janë skriptet terminale?

  • I/O i automatizuar dhe vërtetim minimal I/O.
  • Përshpejtoni ekzekutimin e detyrave rutinë - duke reduktuar pauzat midis cilësimeve të pajisjeve. (Reduktimi de fakto i pauzave të shkaktuara nga koha për të kryer veprimet e kopjimit/të kaluara në të njëjtin harduer, me 3 ose më shumë fragmente komande që do të aplikohen në harduer.)

Ky dokument mbulon detyrat:

  • Krijimi i skripteve të thjeshta.
  • Ekzekutimi i skripteve në SecureCRT.
  • Shembuj të përdorimit të skripteve të thjeshta dhe të avancuara. (Praktikoni nga jeta reale.)

Krijimi i skripteve të thjeshta.

Skriptet më të thjeshta përdorin vetëm dy komanda, Send dhe WaitForString. Ky funksionalitet është i mjaftueshëm për 90% (ose më shumë) të detyrave të kryera.

Skriptet mund të funksionojnë në Python, JS, VBS (Visual Basic), Perl, etj.

Piton

# $language = "Python"
# $interface = "1.0"
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("Password")
  crt.Screen.Synchronous = False
main()

Zakonisht një skedar me shtesën "*.py"

VBS

# $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

Zakonisht një skedar me shtesën "*.vbs"

Krijo një skript duke përdorur një hyrje skripti.

Ju lejon të automatizoni procesin e shkrimit të një skenari. Ju filloni të shkruani një skenar. SecureCRT regjistron komandat dhe përgjigjen pasuese të harduerit dhe shfaq skriptin e përfunduar për ju.

A. Filloni të shkruani skenar:
Menyja SecureCRT => Skript => Fillimi i skriptit të regjistrimit
b. Kryeni veprime me konsolën (kryeni hapat e konfigurimit në CLI).
V. Mbaro shkrimin e skenarit:
Menyja SecureCRT => Skript => Ndalo skriptin e regjistrimit…
Ruani skedarin e skriptit.

Shembull i komandave të ekzekutuara dhe skriptit të ruajtur:

Automatizimi i hyrjes në SecureCRT duke përdorur skriptet

Ekzekutimi i skripteve në SecureCRT.

Pas krijimit/redaktimit të skenarit, lind një pyetje e natyrshme: Si të zbatohet skenari?
Ka disa mënyra:

  • Ekzekutohet manualisht nga menyja Script
  • Fillimi automatik pas lidhjes (skript i hyrjes)
  • Hyrja automatike pa përdorur një skript
  • Aktivizimi manual me një buton në SecureCRT (një buton ende nuk është krijuar dhe shtuar në SecureCRT)

Ekzekutohet manualisht nga menyja Script

Menyja SecureCRT => Skript => Ekzekuto…
- 10 skriptet e fundit mbahen mend dhe disponohen për nisje të shpejtë:
Menyja SecureCRT => Skript => 1 "Emri i skedarit të skriptit"
Menyja SecureCRT => Skript => 2 "Emri i skedarit të skriptit"
Menyja SecureCRT => Skript => 3 "Emri i skedarit të skriptit"
Menyja SecureCRT => Skript => 4 "Emri i skedarit të skriptit"
Menyja SecureCRT => Skript => 5 "Emri i skedarit të skriptit"

Fillimi automatik pas lidhjes (skript i hyrjes)

Cilësimet e skriptit të regjistrimit automatik janë konfiguruar për seancën e ruajtur: Lidhja => Veprimet e hyrjes => Skripti i hyrjes

Automatizimi i hyrjes në SecureCRT duke përdorur skriptet

Hyrja automatike pa përdorur një skript

Është e mundur të futni automatikisht emrin e përdoruesit të fjalëkalimit pa shkruar një skript, duke përdorur vetëm funksionalitetin e integruar të SecureCRT. Në cilësimet e lidhjes "Lidhja" => Veprimet e hyrjes => Automatizimi i hyrjes - duhet të plotësoni disa paketa - që nënkuptojnë çiftet: "Teksti i pritshëm" + "Karakteret e dërguara në këtë tekst" mund të ketë shumë çifte të tilla. (Shembull: çifti i parë në pritje të emrit të përdoruesit, i dyti në pritje të fjalëkalimit, i treti në pritje të kërkesës së modalitetit të privilegjuar, çifti i katërt për fjalëkalimin e modalitetit të privilegjuar.)

Shembull i hyrjes automatike në Cisco ASA:

Automatizimi i hyrjes në SecureCRT duke përdorur skriptet

Aktivizimi manual me një buton në SecureCRT (një buton ende nuk është krijuar dhe shtuar në SecureCRT)

Në SecureCRT, mund t'i caktoni një skript një butoni. Butoni shtohet në një panel të krijuar posaçërisht për këtë qëllim.

A. Shtimi i një paneli në ndërfaqe: Menyja SecureCRT => Shiko => Shiriti i butonave
b. Shtoni një buton në panel dhe shtoni një skenar. – Klikoni me të djathtën në shiritin e butonave dhe zgjidhni “Butoni i ri…” nga menyja e kontekstit.
V. Në kutinë e dialogut "Map Button", në fushën "Veprim", zgjidhni veprimin (funksionin "Run Script".
Specifikoni një titull për butonin. Ngjyra për ikonën e butonit. Përfundoni cilësimet duke klikuar Ok.

Automatizimi i hyrjes në SecureCRT duke përdorur skriptet

Shenim:

Paneli me butona është funksionalitet shumë i dobishëm.

1. Është e mundur, kur identifikoheni në një sesion specifik, të specifikoni se cilin panel të hapet në këtë skedë si parazgjedhje.

2. Është e mundur të vendosni veprime të paracaktuara për veprimet standarde me pajisje: shfaq versionin e shfaqjes, shfaqjen e konfigurimit të ekzekutimit, ruajtjen e konfigurimit.

Automatizimi i hyrjes në SecureCRT duke përdorur skriptet
Asnjë skrip nuk është i bashkangjitur me këta butona. Vetëm linja e veprimit:

Automatizimi i hyrjes në SecureCRT duke përdorur skriptet
Cilësimi - në mënyrë që kur kaloni në një seancë, paneli i nevojshëm me butona të hapet në cilësimet e sesionit:

Automatizimi i hyrjes në SecureCRT duke përdorur skriptet
Ka kuptim që klienti të konfigurojë skriptet individuale për Login dhe të shkojë në panel me komanda të shpeshta për shitësin.

Automatizimi i hyrjes në SecureCRT duke përdorur skriptet
Kur shtypni butonin Go Cisco, paneli kalon në shiritin e butonave Cisco.

Automatizimi i hyrjes në SecureCRT duke përdorur skriptet

Shembuj të përdorimit të skripteve të thjeshta dhe të avancuara. (Praktikoni nga jeta reale.)

Skriptet e thjeshta janë të mjaftueshme për pothuajse të gjitha rastet. Por një herë më duhej ta ndërlikoja pak skenarin - për të shpejtuar punën. Ky ndërlikim thjesht kërkoi të dhëna shtesë në një kuti dialogu nga përdoruesi.

Kërkimi i të dhënave nga përdoruesi duke përdorur një kuti dialogu

Në skriptin e kërkesës për të dhëna kisha 2. Ky është emri i hostit dhe okteti i katërt i adresës IP. Për të kryer këtë veprim - kërkova në google se si ta bëj dhe e gjeta në faqen zyrtare të SecureCRT (vandyke). - funksionaliteti quhet prompt.

	crt.Screen.WaitForString("-Vlanif200]")
	hostnamestr = crt.Dialog.Prompt("Enter hostname:", "hostname", "", False)
	ipaddressstr = crt.Dialog.Prompt("Enter ip address:", "ip", "", False)
	crt.Screen.Send("ip address 10.10.10.")
	crt.Screen.Send(ipaddressstr)
	crt.Screen.Send(" 23r")
	crt.Screen.Send("quitr")
	crt.Screen.Send("sysname ")
	crt.Screen.Send(hostnamestr)
	crt.Screen.Send("r") 

Kjo pjesë e skriptit kërkoi emrin e hostit dhe numrat nga okteti i fundit. Meqenëse kishte 15 pajisje. Dhe të dhënat u prezantuan në një tabelë, pastaj kopjova vlerat nga tabela dhe i ngjita në kutitë e dialogut. Më tej, skenari funksionoi në mënyrë të pavarur.

Kopjimi i FTP në pajisjet e rrjetit.

Ky skript hapi dritaren time të komandës (predhë) dhe kopjoi të dhënat përmes FTP. Në fund mbyllni seancën. Është e pamundur të përdoret notepad për këtë, sepse kopjimi kërkon një kohë shumë të gjatë dhe të dhënat në buferin FTP nuk do të ruhen për aq kohë:

# $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()

Futja e emrit të përdoruesit/fjalëkalimit duke përdorur një skript

Në një klient, qasja direkt në pajisjet e rrjetit u mbyll. U bë e mundur futja në pajisje duke u lidhur fillimisht me Default Gateway, dhe prej saj më pas me pajisjet e lidhura me të. Klienti ssh i integruar në softuerin IOS/hardware është përdorur për t'u lidhur. Prandaj, emri i përdoruesit dhe fjalëkalimi u kërkuan në tastierë. Me skriptin më poshtë, emri i përdoruesit dhe fjalëkalimi u futën automatikisht:

# $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()

Shënim: Kishte 2 skripta, një për llogarinë e administratorit, tjetri për llogarinë eSIGHT.

Skript me aftësinë për të shtuar drejtpërdrejt të dhëna gjatë ekzekutimit të skriptit.

Detyra ishte të shtohej një rrugë statike në të gjitha pajisjet e rrjetit. Por porta në internet në secilën pajisje ishte e ndryshme (dhe ndryshonte nga porta e paracaktuar). Skripti i mëposhtëm shfaqi tabelën e kursit, hyri në modalitetin e konfigurimit, nuk e shkruajti komandën deri në fund (adresa IP e portës në internet) - Unë shtova këtë pjesë. Pasi shtypa Enter, skripti vazhdoi të ekzekutonte komandën.

# $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()

Në këtë skript, në rreshtin: crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ") adresa IP e portës nuk shtohet dhe nuk ka karakter kthimi të transportit. Skripti është duke pritur për rreshtin tjetër me karakteret "(config) #" Këto karaktere u shfaqën pasi futa adresën ip dhe hyra.

Përfundim:

Kur shkruani një skript dhe e ekzekutoni atë, duhet të respektohet rregulli: Koha për të shkruar një skript dhe për të ekzekutuar një skenar nuk duhet të jetë kurrë më shumë se koha e shpenzuar teorikisht për të bërë të njëjtën punë me dorë (kopjoni / ngjitni nga një bllok shënimesh, shkrim dhe korrigjimi një libër lojërash për shkrimin ansible, shkrimin dhe korrigjimin e python-it). Kjo do të thotë, përdorimi i skriptit duhet të kursejë kohë dhe të mos humbasë kohë në automatizimin një herë të proceseve (d.m.th., kur skenari është unik dhe nuk do të ketë më përsëritje). Por nëse skripti është unik dhe automatizimi me skriptin dhe shkrimi/debugimi i skriptit kërkon më pak kohë sesa ta bësh atë në ndonjë mënyrë tjetër (ansible, dritare komanduese), atëherë skripti është zgjidhja më e mirë.
Korrigjimi i një skripti. Skripti rritet gradualisht, korrigjimi i gabimeve ndodh në fillim në pajisjen e parë, të dytë, të tretë dhe nga e katërta skenari ka shumë të ngjarë të jetë plotësisht funksional.

Drejtimi i një skripti (duke futur emrin e përdoruesit+fjalëkalimin) me miun është zakonisht më i shpejtë se kopjimi i emrit të përdoruesit dhe fjalëkalimit nga një bllok shënimesh. Por jo i sigurt nga pikëpamja e sigurisë.
Një shembull tjetër (i vërtetë) kur përdorni një skript: Nuk keni akses të drejtpërdrejtë në pajisjet e rrjetit. Por ekziston nevoja për të konfiguruar të gjitha pajisjet e rrjetit (futeni në sistemin e monitorimit, konfiguroni një emër përdoruesi/fjalëkalim/snmpv3 emër/fjalëkalim shtesë). Ka akses kur shkoni te çelësi Core, prej tij hapni SSH në pajisje të tjera. Pse nuk mund të përdorni Ansible. - Sepse kemi një kufi në numrin e seancave të lejuara të njëkohshme në pajisjet e rrjetit (linja vty 0 4, ndërfaqja e përdoruesit vty 0 4) (një pyetje tjetër është se si të nisim pajisje të ndryshme në Ansible me të njëjtin hop të parë SSH).

Skripti zvogëlon kohën gjatë operacioneve të gjata - për shembull, kopjimi i skedarëve përmes FTP. Pas përfundimit të kopjimit, skenari fillon të funksionojë menjëherë. Një person do të duhet të shohë fundin e kopjimit, më pas të kuptojë fundin e kopjimit, pastaj të futë komandat e duhura. Skenari e bën atë objektivisht më shpejt.

Skriptet janë të zbatueshme aty ku është e pamundur të përdoren mjete të shpërndarjes masive të të dhënave: Konsola. Ose kur disa nga të dhënat për pajisjen janë unike: emri i hostit, adresa ip e menaxhimit. Ose kur shkruani një program dhe korrigjoni gabimet, është më e vështirë sesa të shtoni të dhëna të marra nga pajisja gjatë ekzekutimit të skriptit. - Një shembull me një skript për përshkrimin e një rruge, kur secila pajisje ka adresën e vet IP të ofruesit të Internetit. (Kolegët e mi shkruan skripta të tillë - kur foli DMVPN ishte mbi 3. Ishte e nevojshme të ndryshoheshin cilësimet DMVPN).

Studim rasti: Konfigurimi i cilësimeve fillestare në një ndërprerës të ri duke përdorur portat e konsolës:

A. Futi kabllon e konsolës në pajisje.
B. Ekzekutoni skenarin
B. Prisja për ekzekutimin e skenarit
D. Fudhi kabllon e konsolës në pajisjen tjetër.
E. Nëse çelësi nuk është i fundit, shkoni në hapin B.

Si rezultat i punës së skenarit:

  • fjalëkalimi fillestar vendoset në pajisje.
  • Emri i përdoruesit u fut
  • futet adresa IP unike e pajisjes.

PS operacioni duhej të përsëritej. Sepse ssh e paracaktuar nuk ishte konfiguruar/çaktivizuar. (Po, ky është gabimi im.)

Burimet e përdorura.

1. Rreth krijimit të skripteve
2. Shembuj të skenarit

Shtojca 1: Shembuj të skripteve.


Një shembull i një skripti të gjatë, me dy pyetje: Emri i hostit dhe adresa IP. Ai u krijua për paracaktimin e pajisjeve përmes konsolës (9600 baud). Dhe gjithashtu për të përgatitur lidhjen e pajisjeve me rrjetin.

# $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.Send("sysr")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("interface Vlanif 1r")
	crt.Screen.WaitForString("Vlanif1]")
	crt.Screen.Send("undo ip addressr")
	crt.Screen.Send("shutdownr")
	crt.Screen.Send("vlan 100r")
	crt.Screen.Send(" description description1r")
	crt.Screen.Send(" name description1r")
	crt.Screen.Send("vlan 110r")
	crt.Screen.Send(" description description2r")
	crt.Screen.Send(" name description2r")
	crt.Screen.Send("vlan 120r")
	crt.Screen.Send(" description description3r")
	crt.Screen.Send(" name description3r")
	crt.Screen.Send("vlan 130r")
	crt.Screen.Send(" description description4r")
	crt.Screen.Send(" name description4r")
	crt.Screen.Send("vlan 140r")
	crt.Screen.Send(" description description5r")
	crt.Screen.Send(" name description5r")
	crt.Screen.Send("vlan 150r")
	crt.Screen.Send(" description description6r")
	crt.Screen.Send(" name description6r")
	crt.Screen.Send("vlan 160r")
	crt.Screen.Send(" description description7r")
	crt.Screen.Send(" name description7r")
	crt.Screen.Send("vlan 170r")
	crt.Screen.Send(" description description8r")
	crt.Screen.Send(" name description8r")               
	crt.Screen.Send("vlan 180r")
	crt.Screen.Send(" description description9r")
	crt.Screen.Send(" name description9r")
	crt.Screen.Send("vlan 200r")
	crt.Screen.Send(" description description10r")
	crt.Screen.Send(" name description10r")
	crt.Screen.Send("vlan 300r")
	crt.Screen.Send(" description description11r")
	crt.Screen.Send(" name description11r")
	crt.Screen.Send("quitr")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("stp region-configurationr")
	crt.Screen.Send("region-name descr")
	crt.Screen.Send("active region-configurationr")
	crt.Screen.WaitForString("mst-region]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("stp instance 0 priority 57344r")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("interface range GigabitEthernet 0/0/1 to GigabitEthernet 0/0/42r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description Usersr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type hybridr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("voice-vlan 100 enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("voice-vlan legacy enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid pvid vlan 120r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid tagged vlan 100r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid untagged vlan 120r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("stp edged-port enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("trust 8021pr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("interface range GigabitEthernet 0/0/43 to GigabitEthernet 0/0/48r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description Printersr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type accessr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port default vlan 130r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("stp edged-port enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("trust 8021pr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("interface range XGigabitEthernet 0/0/1 to XGigabitEthernet 0/0/2r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description uplinkr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type trunkr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port trunk allow-pass vlan 100 110 120 130 140 150 160 170 180 200r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port trunk allow-pass vlan 300r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.4r")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.2r")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.134r")
	crt.Screen.Send("ip route-static 0.0.0.0 0.0.0.0 10.10.10.254r")
	crt.Screen.Send("interface Vlanif 200r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
        hostnamestr = crt.Dialog.Prompt("Enter hostname:", "hostname", "", False)
        ipaddressstr = crt.Dialog.Prompt("Enter ip address:", "ip", "", False)
	crt.Screen.Send("ip address 10.10.10.")
	crt.Screen.Send(ipaddressstr)
	crt.Screen.Send(" 24r")
	crt.Screen.Send("quitr")
	crt.Screen.Send("sysname ")
	crt.Screen.Send(hostnamestr)
	crt.Screen.Send("r")
	crt.Screen.WaitForString("]")
	crt.Screen.Synchronous = False
main()

Skriptet e tilla zakonisht nuk nevojiten, por sasia e pajisjeve është 15 copë. Lejohet konfigurimi më i shpejtë. Ishte më e shpejtë për të konfiguruar pajisjet duke përdorur dritaren e komandës SecureCRT.

Krijimi i një llogarie për ssh.

Një shembull tjetër. Konfigurimi bëhet gjithashtu nëpërmjet konsolës.

# $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()


Rreth SecureCRT:Softuer me pagesë: nga 99 dollarë (çmimi më i vogël është vetëm për SecureCRT për një vit)
Faqja zyrtare
Një licencë softueri blihet një herë, me mbështetje (për përditësim), pastaj softueri përdoret me këtë licencë për një kohë të pakufizuar.

Punon në sistemet operative Mac OS X dhe Windows.

Ekziston mbështetje për skriptin (ky artikull)
Ka Dritarja e komandës
Sistemi Operativ Serial/Telnet/SSH1/SSH2/Shell

Burimi: www.habr.com