Įvedimo į SecureCRT automatizavimas naudojant scenarijus

Tinklo inžinieriai dažnai susiduria su užduotimi nukopijuoti / įklijuoti tam tikrus fragmentus iš bloknoto į konsolę. Dažniausiai tenka nukopijuoti kelis parametrus: Vartotojo vardas/Slaptažodis ir dar kažkas. Scenarijų naudojimas leidžia pagreitinti šį procesą. BET scenarijaus rašymo ir scenarijaus vykdymo užduotys iš viso turėtų užtrukti mažiau laiko nei rankinis konfigūravimas, kitaip scenarijai yra nenaudingi.

Kam skirtas šis straipsnis? Šis straipsnis yra iš Fast Start serijos ir skirtas sutaupyti tinklo inžinierių laiką, kai nustatote įrangą (viena užduotis) keliuose įrenginiuose. Naudoja SecureCRT programinę įrangą ir įmontuotą scenarijaus vykdymo funkciją.

Turinys

įvedimas

„SecureCRT“ programoje yra įmontuotas scenarijaus vykdymo mechanizmas. Kam skirti terminalo scenarijai?

  • Automatinis I/O ir minimalus I/O patvirtinimas.
  • Paspartinkite įprastų užduočių vykdymą – sumažinkite pauzes tarp įrangos nustatymų. (De facto sumažinamos pauzės, kurias sukelia laikas atlikti kopijavimo / praeities veiksmus toje pačioje aparatinėje įrangoje, aparatinei įrangai pritaikius 3 ar daugiau komandų fragmentų.)

Šis dokumentas apima šias užduotis:

  • Paprastų scenarijų kūrimas.
  • Scenarijų vykdymas SecureCRT.
  • Paprastų ir išplėstinių scenarijų naudojimo pavyzdžiai. (Praktika iš realaus gyvenimo.)

Paprastų scenarijų kūrimas.

Paprasčiausi scenarijai naudoja tik dvi komandas – Send ir WaitForString. Šios funkcijos pakanka 90% (ar daugiau) atliekamų užduočių.

Scenarijai gali veikti Python, JS, VBS (Visual Basic), Perl ir kt.

Pitonas

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

Paprastai failas su plėtiniu "*.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

Paprastai failas su plėtiniu "*.vbs"

Sukurkite scenarijų naudodami scenarijaus įrašą.

Leidžia automatizuoti scenarijaus rašymo procesą. Pradedi rašyti scenarijų. „SecureCRT“ įrašo komandas ir vėlesnį aparatinės įrangos atsaką ir parodo jums užbaigtą scenarijų.

A. Pradėkite rašyti scenarijų:
SecureCRT meniu => Scenarijus => Pradėti įrašyti scenarijų
b. Atlikite veiksmus su konsole (konfigūravimo veiksmus atlikite CLI).
V. Užbaikite rašyti scenarijų:
SecureCRT meniu => Scenarijus => Sustabdyti scenarijaus įrašymą…
Išsaugokite scenarijaus failą.

Vykdomų komandų ir išsaugoto scenarijaus pavyzdys:

Įvedimo į SecureCRT automatizavimas naudojant scenarijus

Scenarijų vykdymas SecureCRT.

Sukūrus/redagavus scenarijų, iškyla logiškas klausimas: Kaip pritaikyti scenarijų?
Yra keletas būdų:

  • Paleidžiama rankiniu būdu iš scenarijaus meniu
  • Automatinis paleidimas po prisijungimo (prisijungimo scenarijus)
  • Automatinis prisijungimas nenaudojant scenarijaus
  • Suaktyvinimas rankiniu būdu naudojant mygtuką SecureCRT (mygtukas dar turi būti sukurtas ir pridėtas prie SecureCRT)

Paleidžiama rankiniu būdu iš scenarijaus meniu

SecureCRT meniu => Scenarijus => Vykdyti…
- Paskutiniai 10 scenarijų įsimenami ir juos galima greitai paleisti:
SecureCRT meniu => Scenarijus => 1 "Scenarijaus failo pavadinimas"
SecureCRT meniu => Scenarijus => 2 "Scenarijaus failo pavadinimas"
SecureCRT meniu => Scenarijus => 3 "Scenarijaus failo pavadinimas"
SecureCRT meniu => Scenarijus => 4 "Scenarijaus failo pavadinimas"
SecureCRT meniu => Scenarijus => 5 "Scenarijaus failo pavadinimas"

Automatinis paleidimas po prisijungimo (prisijungimo scenarijus)

Išsaugotam seansui sukonfigūruoti automatinio registravimo scenarijaus nustatymai: Ryšys => Prisijungimo veiksmai => Prisijungimo scenarijus

Įvedimo į SecureCRT automatizavimas naudojant scenarijus

Automatinis prisijungimas nenaudojant scenarijaus

Galima automatiškai įvesti slaptažodžio vartotojo vardą, neįrašant scenarijaus, naudojant tik integruotą SecureCRT funkcionalumą. Ryšio nustatymuose „Ryšys“ => Prisijungimo veiksmai => Automatizuoti prisijungimą - reikia užpildyti keletą paketų - tai reiškia poras: „Numatomas tekstas“ + „Šiam tekstui išsiųsti simboliai“ tokių porų gali būti daug. (Pavyzdys: 1 pora laukia naudotojo vardo, antroji laukia slaptažodžio, trečioji laukia privilegijuoto režimo raginimo, ketvirtoji pora privilegijuoto režimo slaptažodžio.)

Automatinio prisijungimo prie Cisco ASA pavyzdys:

Įvedimo į SecureCRT automatizavimas naudojant scenarijus

Suaktyvinimas rankiniu būdu naudojant mygtuką SecureCRT (mygtukas dar turi būti sukurtas ir pridėtas prie SecureCRT)

„SecureCRT“ mygtukui galite priskirti scenarijų. Mygtukas pridedamas prie specialiai šiam tikslui sukurto skydelio.

A. Skydelio pridėjimas prie sąsajos: SecureCRT Menu => View => Button Bar
b. Pridėkite mygtuką prie skydelio ir pridėkite scenarijų. – Dešiniuoju pelės mygtuku spustelėkite mygtukų juostą ir kontekstiniame meniu pasirinkite „Naujas mygtukas…“.
V. Dialogo lango „Žemėlapio mygtukas“ lauke „Veiksmas“ pasirinkite veiksmą (funkciją) „Vykdyti scenarijų“.
Nurodykite mygtuko antraštę. Mygtuko piktogramos spalva. Užbaikite nustatymus spustelėdami Gerai.

Įvedimo į SecureCRT automatizavimas naudojant scenarijus

Pastaba:

Skydas su mygtukais yra labai naudingas funkcionalumas.

1. Kai prisijungiate prie konkrečios sesijos, pagal numatytuosius nustatymus galima nurodyti, kurį skydelį atidaryti šiame skirtuke.

2. Standartiniams veiksmams su įranga galima nustatyti iš anksto nustatytus veiksmus: rodyti versiją, rodyti run-config, išsaugoti konfigūraciją.

Įvedimo į SecureCRT automatizavimas naudojant scenarijus
Prie šių mygtukų nepridėtas joks scenarijus. Tik veiksmų linija:

Įvedimo į SecureCRT automatizavimas naudojant scenarijus
Nustatymas – kad perjungiant į seansą seanso nustatymuose atsidarytų reikalingas skydelis su mygtukais:

Įvedimo į SecureCRT automatizavimas naudojant scenarijus
Klientui prasminga nustatyti atskirus prisijungimo scenarijus ir eiti į skydelį su dažnomis tiekėjo komandomis.

Įvedimo į SecureCRT automatizavimas naudojant scenarijus
Paspaudus mygtuką Go Cisco, skydelis persijungia į Cisco mygtukų juostą.

Įvedimo į SecureCRT automatizavimas naudojant scenarijus

Paprastų ir išplėstinių scenarijų naudojimo pavyzdžiai. (Praktika iš realaus gyvenimo.)

Beveik visoms progoms užtenka paprastų scenarijų. Bet kartą reikėjo šiek tiek apsunkinti scenarijų – paspartinti darbą. Dėl šios komplikacijos vartotojas tiesiog paprašė papildomų duomenų dialogo lange.

Duomenų užklausa iš vartotojo naudojant dialogo langą

Duomenų užklausos scenarijuje turėjau 2. Tai pagrindinio kompiuterio pavadinimas ir 4-asis IP adreso oktetas. Norėdami atlikti šį veiksmą – paieškojau google kaip tai padaryti ir radau oficialioje SecureCRT (vandyke) svetainėje. - funkcionalumas vadinamas greitu.

	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") 

Šioje scenarijaus dalyje buvo prašoma pagrindinio kompiuterio pavadinimo ir paskutinio okteto numerių. Kadangi buvo 15 įrangos vienetų. Ir duomenys buvo pateikti lentelėje, tada nukopijavau reikšmes iš lentelės ir įklijavau į dialogo langus. Toliau scenarijus veikė savarankiškai.

FTP kopijavimas į tinklo įrangą.

Šis scenarijus paleido mano komandų langą (apvalkalą) ir nukopijavo duomenis per FTP. Pabaigoje uždarykite sesiją. Neįmanoma tam naudoti užrašų knygelės, nes kopijavimas užtrunka labai ilgai, o duomenys FTP buferyje taip ilgai nebus saugomi:

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

Vartotojo vardo / slaptažodžio įvedimas naudojant scenarijų

Vieno kliento prieiga prie tinklo įrangos tiesiogiai buvo uždaryta. Į įrangą buvo galima patekti iš pradžių prisijungus prie Default Gateway, o iš jo po to prie jo prijungtos įrangos. Prisijungimui buvo naudojamas ssh klientas, integruotas į IOS / aparatinę programinę įrangą. Atitinkamai konsolėje buvo prašoma vartotojo vardo ir slaptažodžio. Naudojant toliau pateiktą scenarijų vartotojo vardas ir slaptažodis buvo įvesti automatiškai:

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

Pastaba: buvo 2 scenarijai. Vienas skirtas administratoriaus paskyrai, antrasis – eSIGHT paskyrai.

Scenarijus su galimybe tiesiogiai pridėti duomenis scenarijaus vykdymo metu.

Užduotis buvo pridėti statinį maršrutą visoje tinklo įrangoje. Tačiau kiekvienos įrangos vartai į internetą buvo skirtingi (ir jie skyrėsi nuo numatytojo šliuzo). Šis scenarijus parodė maršruto lentelę, įjungė konfigūracijos režimą, neparašė komandos iki galo (vartų į internetą IP adresas) - aš pridėjau šią dalį. Kai paspaudžiau Enter, scenarijus toliau vykdė komandą.

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

Šiame scenarijuje eilutėje: crt.Screen.Send("ip maršrutas 10.10.10.8 255.255.255.252 ") šliuzo IP adresas nepridėtas ir nėra vežimo grąžinimo simbolio. Scenarijus laukia kitos eilutės su simboliais „(config) #“ Šie simboliai atsirado įvedus IP adresą ir įvedus.

Išvada:

Rašant scenarijų ir jį vykdant, reikia laikytis taisyklės: Scenarijaus rašymo ir scenarijaus vykdymo laikas niekada neturėtų viršyti laiko, teoriškai sugaišta atliekant tą patį darbą rankiniu būdu (kopijuojant / įklijuojant iš bloknoto, rašant ir derinant). Ansible, Python scenarijaus rašymo ir derinimo žaidimų knyga). Tai reiškia, kad naudojant scenarijų reikėtų sutaupyti laiko, o ne gaišti laiko vienkartiniam procesų automatizavimui (t.y. kai scenarijus yra unikalus ir nebebus kartojimosi). Bet jei scenarijus yra unikalus, o automatizavimas naudojant scenarijų ir scenarijaus rašymas / derinimas užima mažiau laiko nei tai darant bet kokiu kitu būdu (įmanoma, komandų langas), tada scenarijus yra geriausias sprendimas.
Scenarijaus derinimas. Scenarijus auga palaipsniui, derinimas vyksta paleidžiant pirmąjį, antrąjį, trečiąjį įrenginį, o ketvirtajame scenarijus greičiausiai bus visiškai veikiantis.

Paleisti scenarijų (įvesdami vartotojo vardą+slaptažodį) pele paprastai yra greičiau nei nukopijuoti naudotojo vardą ir slaptažodį iš bloknoto. Tačiau saugumo požiūriu nėra saugu.
Kitas (tikras) pavyzdys naudojant scenarijų: Jūs neturite tiesioginės prieigos prie tinklo įrangos. Bet reikia sukonfigūruoti visą tinklo įrangą (įvesti ją į stebėjimo sistemą, sukonfigūruoti papildomą Vartotojo vardą/slaptažodį/snmpv3vartotojo vardą/slaptažodį). Yra prieiga, kai einate į "Core" jungiklį, iš jo atidarote SSH į kitą įrangą. Kodėl negalite naudoti Ansible. - Kadangi susiduriame su leistinų vienalaikių seansų tinklo įrangoje skaičiaus apribojimu (eilutė vty 0 4, vartotojo sąsaja vty 0 4) (kitas klausimas yra, kaip paleisti skirtingą įrangą Ansible su tuo pačiu SSH pirmuoju šuoliu).

Scenarijus sumažina laiką atliekant ilgas operacijas – pavyzdžiui, kopijuojant failus per FTP. Kai kopijavimas baigtas, scenarijus iškart pradeda veikti. Asmuo turės pamatyti kopijavimo pabaigą, tada suvokti kopijavimo pabaigą, tada įvesti atitinkamas komandas. Scenarijus tai daro objektyviai greičiau.

Scenarijai taikomi ten, kur neįmanoma naudoti masinio duomenų perdavimo įrankių: konsolė. Arba kai kurie įrangos duomenys yra unikalūs: pagrindinio kompiuterio pavadinimas, valdymo IP adresas. Arba rašant programą ir derinant tai yra sunkiau nei pridėti duomenis, gautus iš įrangos, kol scenarijus veikia. - Pavyzdys su scenarijumi, skirtu nurašyti maršrutą, kai kiekviena įranga turi savo interneto tiekėjo IP adresą. (Mano kolegos rašė tokius scenarijus – kai DMVPN šnekėjo virš 3. Reikėjo keisti DMVPN nustatymus).

Atvejo analizė: Pradinių nustatymų konfigūravimas naujame jungiklyje naudojant konsolės prievadus:

A. Įjungė konsolės laidą į įrenginį.
B. Vykdykite scenarijų
B. Laukė scenarijaus vykdymo
D. Konsolės laidą įjungė į kitą įrenginį.
E. Jei jungiklis nėra paskutinis, pereikite prie B veiksmo.

Dėl scenarijaus darbo:

  • pradinis slaptažodis nustatomas įrenginyje.
  • Įvestas vartotojo vardas
  • įvedamas unikalus įrenginio IP adresas.

PS operaciją teko kartoti. Kadangi numatytasis ssh nebuvo sukonfigūruotas / išjungtas. (Taip, tai mano klaida.)

Naudoti šaltiniai.

1. Apie scenarijų kūrimą
2. Scenarijaus pavyzdžiai

1 priedas: scenarijų pavyzdžiai.


Ilgo scenarijaus pavyzdys su dviem užklausomis: pagrindinio kompiuterio pavadinimas ir IP adresas. Jis buvo sukurtas įrangai iš anksto nustatyti per konsolę (9600 bodų). Taip pat paruošti įrangos prijungimą prie tinklo.

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

Tokių scenarijų dažniausiai nereikia, tačiau įrangos kiekis – 15 vnt. Leidžiama greitesnė sąranka. Greičiau buvo nustatyti įrangą naudojant SecureCRT Command langą.

Ssh paskyros nustatymas.

Kitas pavyzdys. Konfigūracija taip pat atliekama per konsolę.

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


Apie SecureCRT:Mokama programinė įranga: nuo 99 USD (mažiausia kaina skirta tik SecureCRT vieneriems metams)
Oficiali svetainė
Programinės įrangos licencija perkama vieną kartą su palaikymu (atnaujinimui), tada programinė įranga naudojama su šia licencija neribotą laiką.

Veikia Mac OS X ir Windows operacinėse sistemose.

Yra scenarijaus palaikymas (šis straipsnis)
Yra Komandų langas
Serial/Telnet/SSH1/SSH2/Shell operacinė sistema

Šaltinis: www.habr.com