Sarrera automatizatzea SecureCRT-n scriptak erabiliz

Sareko ingeniariek sarritan koaderno batetik kontsolara zati batzuk kopiatu/itsatsi egin behar dituzte. Normalean hainbat parametro kopiatu behar dituzu: Erabiltzaile izena/Pasahitza eta beste zerbait. Scripten erabilerak prozesu hau azkartzeko aukera ematen du. BAINA scripta idazteko eta gidoia exekutatzeko zereginek eskuzko konfigurazioa baino denbora gutxiago behar dute guztira, bestela scriptek ez dute ezertarako balio.

Zertarako da artikulu hau? Artikulu hau Fast Start seriekoa da eta sareko ingeniariei denbora aurreztea du helburu ekipoak (zeregin bakarra) hainbat gailutan konfiguratzean. SecureCRT softwarea eta script-a exekutatzeko funtzio integratua erabiltzen ditu.

Edukia

Sarrera

SecureCRT programak script-a exekutatzeko mekanismo bat dauka. Zertarako dira terminaleko script-ak?

  • I/O automatizatua eta gutxieneko I/O baliozkotzea.
  • Bizkortu ohiko zereginen exekuzioa - ekipoen ezarpenen arteko etenaldiak murriztuz. (Hardware berean kopiatzeko/iraganeko ekintzak egiteko denborak eragindako etenen de facto murriztea, hardwareari 3 komando zati edo gehiago aplikatu behar zaizkiola).

Dokumentu honek zereginak biltzen ditu:

  • Script sinpleak sortzea.
  • SecureCRT-n scriptak exekutatzen.
  • Script sinple eta aurreratuak erabiltzeko adibideak. (Landu bizitza errealetik.)

Script sinpleak sortzea.

Script errazenek bi komando baino ez dituzte erabiltzen, Send eta WaitForString. Funtzionalitate hau nahikoa da egindako zereginen %90erako (edo gehiago).

Scriptek Python, JS, VBS (Visual Basic), Perl, etab.

Python

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

Normalean "*.py" luzapena duen fitxategia

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

Normalean "*.vbs" luzapena duen fitxategia

Sortu script bat script sarrera bat erabiliz.

Script bat idazteko prozesua automatizatzeko aukera ematen du. Gidoia idazten hasten zara. SecureCRT-k komandoak eta ondorengo hardware-erantzuna erregistratzen ditu eta amaitutako script-a erakusten dizu.

A. Hasi gidoia idazten:
SecureCRT Menu => Script => Hasi Grabatzen Script
b. Egin ekintzak kontsolarekin (egin konfigurazio-urratsak CLIan).
V. Amaitu gidoia idazten:
SecureCRT Menu => Script => Gelditu Script-a grabatzea...
Gorde script fitxategia.

Exekutaturiko komandoen eta gordetako scripten adibidea:

Sarrera automatizatzea SecureCRT-n scriptak erabiliz

SecureCRT-n scriptak exekutatzen.

Gidoia sortu/editatu ondoren, galdera logiko bat sortzen da: Nola aplikatu gidoia?
Hainbat modu daude:

  • Eskuz exekutatzen Script menutik
  • Konexioaren ondoren abiarazte automatikoa (saioa hasteko script-a)
  • Saioa automatikoki scriptik erabili gabe
  • SecureCRT-ko botoi batekin eskuz abiarazten (botoi bat sortu eta gehitu behar da SecureCRT-n)

Eskuz exekutatzen Script menutik

SecureCRT Menu => Script => Exekutatu...
- Azken 10 scriptak gogoratzen dira eta abiarazteko eskuragarri daude:
SecureCRT menu => Script => 1 "Script fitxategiaren izena"
SecureCRT menu => Script => 2 "Script fitxategiaren izena"
SecureCRT menu => Script => 3 "Script fitxategiaren izena"
SecureCRT menu => Script => 4 "Script fitxategiaren izena"
SecureCRT menu => Script => 5 "Script fitxategiaren izena"

Konexioaren ondoren abiarazte automatikoa (saioa hasteko script-a)

Erregistro automatikoko script-en ezarpenak gordetako saiorako konfiguratuta daude: Konexioa => Saioa hasteko ekintzak => Saioa hasteko gidoia

Sarrera automatizatzea SecureCRT-n scriptak erabiliz

Saioa automatikoki scriptik erabili gabe

Posible da pasahitzaren erabiltzaile-izena automatikoki sartzea scriptik idatzi gabe, SecureCRT-en integratutako funtzionaltasuna soilik erabiliz. Konexio-ezarpenetan "Konexioa" => Saioa hasteko ekintzak => Saio-hasiera automatizatu - hainbat sorta bete behar dituzu - hau da, bikoteak esan nahi du: "Esperotako testua" + "Caraktereak bidalitako testu honetara" bikote asko egon daitezke. (Adibidea: 1. bikotea erabiltzaile-izenaren zain, bigarrena pasahitzaren zain, hirugarrena modu pribilegiatuaren gonbitaren zain, laugarren bikotea modu pribilegiatuaren pasahitza).

Saio-hasiera automatikoaren adibidea Cisco ASA-n:

Sarrera automatizatzea SecureCRT-n scriptak erabiliz

SecureCRT-ko botoi batekin eskuz abiarazten (botoi bat sortu eta gehitu behar da SecureCRT-n)

SecureCRT-n, botoi bati script bat esleitu diezaiokezu. Botoia horretarako bereziki sortutako panel bati gehitzen zaio.

A. Interfazeari panel bat gehitzea: SecureCRT Menu => Ikusi => Botoien barra
b. Gehitu botoi bat panelean eta gehitu script bat. - Egin klik eskuineko botoiarekin botoi-barran eta hautatu "Botoi berria..." laster-menuan.
V. "Mapa botoia" elkarrizketa-koadroan, "Ekintza" eremuan, hautatu "Exekutatu scripta" ekintza (funtzioa).
Zehaztu epigrafe bat botoiarentzat. Botoiaren ikonoaren kolorea. Amaitu ezarpenak Ados sakatuz.

Sarrera automatizatzea SecureCRT-n scriptak erabiliz

Oharra:

Botoiak dituen panela funtzionaltasun oso erabilgarria da.

1. Posible da saio zehatz batean saioa hasten denean, lehenespenez fitxa honetara zein panel ireki behar den zehaztea.

2. Ekipamenduekin ekintza estandaretarako aurrez zehaztutako ekintzak ezar daitezke: erakutsi bertsioa erakutsi, martxan-konfigurazioa erakutsi, konfigurazioa gorde.

Sarrera automatizatzea SecureCRT-n scriptak erabiliz
Ez dago scriptik botoi horiei erantsita. Ekintza-lerroa soilik:

Sarrera automatizatzea SecureCRT-n scriptak erabiliz
Ezarpena - saio batera aldatzean, botoiekin beharrezko panela irekiko da saioaren ezarpenetan:

Sarrera automatizatzea SecureCRT-n scriptak erabiliz
Zentzuzkoa da bezeroak saioa hasteko script indibidualak konfiguratzea eta panelera joatea saltzaileak maiz komandoekin.

Sarrera automatizatzea SecureCRT-n scriptak erabiliz
Joan Cisco botoia sakatzen duzunean, panela Cisco botoien barrara aldatzen da.

Sarrera automatizatzea SecureCRT-n scriptak erabiliz

Script sinple eta aurreratuak erabiltzeko adibideak. (Landu bizitza errealetik.)

Script sinpleak nahikoak dira ia kasu guztietarako. Baina behin gidoia pixka bat zaildu behar nuen, lana bizkortzeko. Konplikazio honek datu gehigarriak eskatu dizkio erabiltzaileari elkarrizketa-koadro batean.

Erabiltzaileari datuak eskatzea elkarrizketa-koadro bat erabiliz

Datuak eskatzeko gidoian 2 nuen. Hau Ostalari-izena eta IP helbidearen laugarren zortzikotea da. Ekintza hau egiteko - Googlen bilatu nuen nola egin eta SecureCRT-ren (vandyke) webgune ofizialean aurkitu nuen. - funtzionalitateari gonbita deitzen zaio.

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

Scriptaren zati honek Ostalari izena eta azken zortzikoteko zenbakiak eskatu zituen. 15 ekipamendu zeudenez. Eta datuak taula batean aurkeztu ziren, ondoren balioak taulatik kopiatu eta elkarrizketa-koadroetan itsatsi nituen. Gainera, gidoiak modu independentean funtzionatu zuen.

FTP sareko ekipoetara kopiatzea.

Script honek nire komando-leihoa (shell) abiarazi zuen eta datuak kopiatu zituen FTP bidez. Amaieran, itxi saioa. Ezinezkoa da koadernoa erabiltzea horretarako, kopiatzeak oso denbora luzea hartzen duelako eta FTP buffer-eko datuak ez direlako denbora horretan gordeko:

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

Erabiltzaile-izena/pasahitza script baten bidez sartzea

Bezero batean sareko ekipamenduetarako sarbidea zuzenean itxi zen. Lehenik eta behin Default Gatewayra konektatuz ekipamenduan sartzea posible zen, eta handik aurrera hari konektatutako ekipora. IOS/hardware softwarean integratutako ssh bezeroa erabili zen konektatzeko. Horren arabera, erabiltzaile-izena eta pasahitza eskatu ziren kontsolan. Beheko scriptarekin, erabiltzaile-izena eta pasahitza automatikoki sartu ziren:

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

Oharra: 2 script zeuden. Bata administratzaile konturako, bigarrena eSIGHT konturako.

Scripta exekutatzen ari den bitartean datuak zuzenean eransteko gaitasuna duena.

Sareko ekipo guztietan ibilbide estatiko bat gehitzea zen zeregina. Baina ekipo bakoitzean Interneterako atea desberdina zen (eta atebide lehenetsitik desberdina zen). Hurrengo script-ak bideratze-taula bistaratu zuen, konfigurazio moduan sartu zen, ez zuen komandoa amaieraraino idatzi (Interneterako atearen IP helbidea) - zati hau gehitu nuen. Sartu sakatu ondoren, scriptak komandoa exekutatzen jarraitu zuen.

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

Script honetan, lerroan: crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ") ez da atebidearen IP helbidea gehitzen eta ez dago karaktere-itzulerarik. Scripta hurrengo lerroaren zain dago "(config) #" karaktereekin Karaktere hauek ip helbidea sartu eta sartu ondoren agertu ziren.

ondorioa:

Script bat idaztean eta exekutatzen denean, araua bete behar da: Script bat idazteko eta gidoia exekutatzeko denbora ez da inoiz teorikoki lan bera eskuz egiteko (koaderno batetik kopiatu/itsatsi, idazteko eta arazketa) emandako denbora baino gehiago izan behar. ansible, python script idazteko eta arazketarako jolas-liburua). Hau da, script-a erabiltzeak denbora aurreztu behar du, eta ez denbora galdu prozesuen automatizazioan (hau da, scripta bakarra denean eta errepikapen gehiago ez denean). Baina scripta bakarra bada eta scriptarekin automatizazioa eta scripta idazteko/arazteak beste modu batean egiteak baino denbora gutxiago behar badu (ansible, komando-leihoa), orduan scripta da irtenbiderik onena.
Script bat araztea. Scripta apurka-apurka hazten da, arazketa lehen, bigarren, hirugarren gailuetan gertatzen da, eta laugarrenerako scripta guztiz operatiboa izango da ziurrenik.

Script bat (erabiltzaile-izena+pasahitza sartuz) saguarekin exekutatzen bizkorragoa da normalean Erabiltzaile-izena eta pasahitza koaderno batetik kopiatzea baino. Baina ez da segurua segurtasunaren ikuspuntutik.
Beste adibide (benetako) script bat erabiltzean: Ez duzu sareko ekipoetarako sarbide zuzenik. Baina sareko ekipo guztiak konfiguratu beharra dago (jarri monitorizazio sistemara, konfiguratu Erabiltzaile-izena/pasahitza/snmpv3erabiltzaile/pasahitza gehigarri bat). Core etengailura zoazenean sarbidea dago, bertatik SSH beste ekipoetara irekitzen duzu. Zergatik ezin duzu Ansible erabili. - Sareko ekipoetan baimendutako aldibereko saio kopuruaren mugarekin topo egiten dugulako (linea vty 0 4, user-interfaze vty 0 4) (beste galdera bat da Ansible-n ekipo desberdinak nola abiarazi SSH lehen salto berdinarekin).

Scriptak denbora murrizten du eragiketa luzeetan - adibidez, fitxategiak FTP bidez kopiatzen. Kopiatu ondoren, script-a berehala hasiko da lanean. Pertsona batek kopiaketaren amaiera ikusi beharko du, ondoren kopiatzearen amaieraz konturatu eta komando egokiak sartu. Gidoiak objektiboki azkarrago egiten du.

Script-ak aplikagarriak dira datu masiboa emateko tresnak erabiltzea ezinezkoa den lekuetan: Kontsola. Edo ekipoaren datu batzuk bakarrak direnean: ostalari izena, kudeaketa ip helbidea. Edo programa bat idaztean eta arazketan zailagoa da ekipotik jasotako datuak gehitzea baino zailagoa da scripta exekutatzen ari den bitartean. - Ibilbide bat preskribatzeko script batekin adibide bat, ekipo bakoitzak Interneteko hornitzailearen IP helbidea duenean. (Nire lankideek halako gidoiak idatzi zituzten - DMVPNk hitz egiten zuenean 3etik gorakoak ziren. DMVPNren ezarpenak aldatzea beharrezkoa zen).

Kasu praktikoa: Hasierako ezarpenak konfiguratzea etengailu berri batean kontsolaren atakak erabiliz:

A. Kontsolaren kablea gailuan konektatu.
B. Exekutatu gidoia
B. Gidoia gauzatzeko itxaron
D. Kontsolaren kablea hurrengo gailura konektatu.
E. Etengailua ez bada azkena, joan B urratsera.

Gidoiaren lanaren ondorioz:

  • hasierako pasahitza ekipoan ezartzen da.
  • Erabiltzaile izena sartu da
  • gailuaren IP helbide bakarra sartzen da.

PS operazioa errepikatu behar izan zen. Ssh lehenetsia ez zelako konfiguratu/desgaitu. (Bai, hau da nire akatsa.)

Erabilitako iturriak.

1. Gidoiak sortzeari buruz
2. Gidoien adibideak

1. eranskina: gidoi ereduak.


Script luze baten adibidea, bi kontsultarekin: Ostalariaren izena eta IP helbidea. Kontsolaren bidez ekipoak aurrez ezartzeko sortu zen (9600 baud). Eta ekipoen sarerako konexioa prestatzeko ere.

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

Horrelako script-ak normalean ez dira behar, baina ekipamendu kopurua 15 pcs da. Konfigurazio azkarragoa onartzen da. Azkarragoa izan zen ekipamendua SecureCRT Command leihoa erabiliz konfiguratzea.

Ssh-rako kontu bat konfiguratzen.

Beste adibide bat. Konfigurazioa kontsolaren bidez ere egiten da.

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


SecureCRT-i buruz:Ordaindutako softwarea: 99 $-tik aurrera (prezio txikiena SecureCRTrentzat bakarrik da urtebetez)
Webgune ofiziala
Software-lizentzia behin erosten da, laguntzarekin (eguneratzeko), gero softwarea lizentzia honekin denbora mugagabean erabiltzen da.

Mac OS X eta Windows sistema eragileetan funtzionatzen du.

Script-en euskarria dago (artikulu hau)
Ez dago Komando-leihoa
Serial/Telnet/SSH1/SSH2/Shell Sistema Eragilea

Iturria: www.habr.com