Awtomatizzazzjoni tad-Dħul f'SecureCRT Bl-użu ta' Scripts

L-inġiniera tan-netwerk ħafna drabi jiffaċċjaw il-kompitu li jikkupjaw/pejstjaw ċerti frammenti minn notepad għall-console. Normalment ikollok tikkopja diversi parametri: Username/Password u xi ħaġa oħra. L-użu ta 'skripts jippermettilek tħaffef dan il-proċess. IMMA l-kompiti tal-kitba tal-iskript u l-eżekuzzjoni tal-iskript għandhom jieħdu inqas ħin b'kollox mill-konfigurazzjoni manwali, inkella l-iskripts huma inutli.

Għalxiex hu dan l-artikolu? Dan l-artikolu huwa mis-serje Fast Start u huwa mmirat biex jiffranka l-ħin tal-inġiniera tan-netwerk meta jwaqqfu tagħmir (kompitu wieħed) fuq apparati multipli. Juża softwer SecureCRT u funzjonalità ta' eżekuzzjoni ta' script integrata.

Kontenut

Introduzzjoni

Il-programm SecureCRT għandu mekkaniżmu ta 'eżekuzzjoni ta' skript inkorporat barra mill-kaxxa. Għal xiex huma l-iskripts tat-terminal?

  • I/O awtomatizzat, u validazzjoni minima tal-I/O.
  • Tħaffef l-eżekuzzjoni ta 'kompiti ta' rutina - tnaqqas il-pawżi bejn is-settings tat-tagħmir. (Tnaqqis de facto ta' pawżi kkawżati mill-ħin biex jitwettqu azzjonijiet ta' kopja/imgħoddi fuq l-istess ħardwer, bi 3 frammenti ta' kmand jew aktar li għandhom jiġu applikati għall-ħardwer.)

Dan id-dokument ikopri l-kompiti:

  • Ħolqien ta 'skripts sempliċi.
  • Tmexxi skripts fuq SecureCRT.
  • Eżempji ta 'użu ta' skripts sempliċi u avvanzati. (Prattika mill-ħajja reali.)

Ħolqien ta 'skripts sempliċi.

L-aktar skripts sempliċi jużaw biss żewġ kmandi, Send u WaitForString. Din il-funzjonalità hija biżżejjed għal 90% (jew aktar) tal-kompiti mwettqa.

L-iskripts jistgħu jaħdmu f'Python, JS, VBS (Visual Basic), Perl, eċċ.

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

Normalment fajl bl-estensjoni "*.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

Normalment fajl bl-estensjoni "*.vbs"

Oħloq skript billi tuża skript.

Jippermettilek awtomatizza l-proċess tal-kitba ta 'skript. Tibda tikteb skript. SecureCRT jirreġistra l-kmandi u r-rispons tal-hardware sussegwenti u juri l-iskrittura lest għalik.

A. Ibda tikteb l-iskrittura:
SecureCRT Menu => Script => Ibda l-Iskript tar-Reġistrazzjoni
b. Wettaq azzjonijiet bil-console (wettaq passi ta' konfigurazzjoni fis-CLI).
V. Kompli tikteb l-iskrittura:
SecureCRT Menu => Script => Waqqaf l-Iskript tar-Reġistrazzjoni...
Issejvja l-fajl tal-iskrittura.

Eżempju ta' kmandi eżegwiti u skript salvat:

Awtomatizzazzjoni tad-Dħul f'SecureCRT Bl-użu ta' Scripts

Tmexxi skripts fuq SecureCRT.

Wara li toħloq/editja l-iskrittura, tqum mistoqsija loġika: Kif tapplika l-iskrittura?
Hemm diversi modi:

  • Tmexxi manwalment mill-menu Script
  • Bidu awtomatiku wara l-konnessjoni (kitba tal-logon)
  • Logon awtomatiku mingħajr ma tuża skript
  • Triggering manwalment b'buttuna f'SecureCRT (buttuna għad trid tinħoloq u tiżdied ma' SecureCRT)

Tmexxi manwalment mill-menu Script

SecureCRT Menu => Script => Mexxi...
- L-aħħar 10 skripts huma mfakkra u disponibbli għal tnedija malajr:
SecureCRT menu => Script => 1 "Isem tal-fajl Script"
SecureCRT menu => Script => 2 "Isem tal-fajl Script"
SecureCRT menu => Script => 3 "Isem tal-fajl Script"
SecureCRT menu => Script => 4 "Isem tal-fajl Script"
SecureCRT menu => Script => 5 "Isem tal-fajl Script"

Bidu awtomatiku wara l-konnessjoni (kitba tal-logon)

Is-settings tal-iskript tal-illoggjar awtomatiku huma kkonfigurati għas-sessjoni ssejvjata: Konnessjoni => Azzjonijiet tal-Loggn => Script tal-Loggn

Awtomatizzazzjoni tad-Dħul f'SecureCRT Bl-użu ta' Scripts

Logon awtomatiku mingħajr ma tuża skript

Huwa possibbli li ddaħħal awtomatikament l-isem tal-utent tal-password mingħajr ma tikteb skript, billi tuża biss il-funzjonalità integrata ta 'SecureCRT. Fis-settings tal-konnessjoni "Konnessjoni" => Azzjonijiet tal-Logn => Awtomatizza l-logon - għandek bżonn timla diversi qatet - li jfisser il-pari: "Test mistenni" + "Karattri mibgħuta għal dan it-test" jista 'jkun hemm ħafna pari bħal dawn. (Eżempju: l-ewwel par stennija għall-isem tal-utent, it-tieni stennija għall-password, it-tielet stennija għall-modalità privileġġata fil-pront, ir-raba’ par għall-password tal-modalità privileġġjata.)

Eżempju ta' logon awtomatiku fuq Cisco ASA:

Awtomatizzazzjoni tad-Dħul f'SecureCRT Bl-użu ta' Scripts

Triggering manwalment b'buttuna f'SecureCRT (buttuna għad trid tinħoloq u tiżdied ma' SecureCRT)

F'SecureCRT, tista' tassenja script għal buttuna. Il-buttuna hija miżjuda ma 'panel maħluqa apposta għal dan il-għan.

A. Żieda ta' panel mal-interface: SecureCRT Menu => View => Button Bar
b. Żid buttuna mal-panel u żid skript. – Ikklikkja bil-lemin fuq il-Button Bar u agħżel “buttuna Ġdida...” mill-menu tal-kuntest.
V. Fil-kaxxa ta 'dialog "Map Button", fil-qasam "Azzjoni", agħżel l-azzjoni "Run Script" (funzjoni).
Speċifika caption għall-buttuna. Il-kulur għall-ikona tal-buttuna. Temm is-settings billi tikklikkja Ok.

Awtomatizzazzjoni tad-Dħul f'SecureCRT Bl-użu ta' Scripts

Nota:

Il-pannell bil-buttuni huwa funzjonalità utli ħafna.

1. Huwa possibbli, meta Logon għal sessjoni speċifika, li tispeċifika liema panel tiftaħ għal din it-tab b'mod awtomatiku.

2. Huwa possibbli li jiġu stabbiliti azzjonijiet predefiniti għal azzjonijiet standard b'tagħmir: juru l-verżjoni juru, juru running-config, issalva l-konfigurazzjoni.

Awtomatizzazzjoni tad-Dħul f'SecureCRT Bl-użu ta' Scripts
L-ebda skript mhu mehmuż ma’ dawn il-buttuni. Linja ta' azzjoni biss:

Awtomatizzazzjoni tad-Dħul f'SecureCRT Bl-użu ta' Scripts
L-issettjar - sabiex meta taqleb għal sessjoni, il-pannell meħtieġ bil-buttuni jinfetaħ fis-settings tas-sessjoni:

Awtomatizzazzjoni tad-Dħul f'SecureCRT Bl-użu ta' Scripts
Jagħmel sens li l-klijent iwaqqaf skripts individwali għal Login u jmur fil-panel b'kmandi frekwenti għall-bejjiegħ.

Awtomatizzazzjoni tad-Dħul f'SecureCRT Bl-użu ta' Scripts
Meta tagħfas il-buttuna Mur Cisco, il-pannell jaqleb għall-Bar Button Cisco.

Awtomatizzazzjoni tad-Dħul f'SecureCRT Bl-użu ta' Scripts

Eżempji ta 'użu ta' skripts sempliċi u avvanzati. (Prattika mill-ħajja reali.)

Skripts sempliċi huma biżżejjed għal kważi l-okkażjonijiet kollha. Imma darba kelli bżonn nikkomplika xi ftit l-iscript - biex inħaffef ix-xogħol. Din il-kumplikazzjoni sempliċement talbet dejta addizzjonali f'kaxxa ta 'dialog mill-utent.

It-talba tad-dejta mill-utent billi tuża kaxxa tad-djalogu

Kelli 2 fl-iskrittura tat-talba tad-dejta. Dan huwa l-Hostname u r-4 ottett tal-indirizz IP. Biex twettaq din l-azzjoni - I google kif tagħmel dan u sibt fuq il-websajt uffiċjali ta 'SecureCRT (vandyke). - il-funzjonalità tissejjaħ fil-pront.

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

Din il-parti tal-iskrittura talbet Hostname u numri mill-aħħar ottett. Peress li kien hemm 15-il biċċa tagħmir. U d-dejta ġiet ippreżentata f'tabella, imbagħad ikkupjajt il-valuri mit-tabella u għamiltha fil-kaxxi tad-djalogu. Barra minn hekk l-iskript ħadem b'mod indipendenti.

Ikkopjar FTP għal tagħmir tan-netwerk.

Dan l-iskritt nediet it-tieqa tal-kmand tiegħi (qoxra) u kkuppja d-dejta permezz tal-FTP. Fl-aħħar, agħlaq is-sessjoni. Huwa impossibbli li tuża notepad għal dan, minħabba li l-ikkupjar jieħu żmien twil ħafna u d-dejta fil-buffer tal-FTP mhux se tinħażen għal dak it-tul:

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

Daħħal l-isem tal-utent/il-password permezz ta' skript

Fuq klijent wieħed l-aċċess għat-tagħmir tan-netwerk direttament ingħalaq. Kien possibbli li tidħol fit-tagħmir billi l-ewwel tikkonnettja mal-Default Gateway, u minnu mbagħad mat-tagħmir konness miegħu. Il-klijent ssh mibni fis-softwer IOS/ħardwer intuża biex jgħaqqad. Għaldaqstant, il-username u l-password ġew mitluba fil-console. Bl-iskrittura hawn taħt, l-isem tal-utent u l-password ġew imdaħħla awtomatikament:

# $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: Kien hemm skripts 2. Wieħed għall-kont tal-amministratur, it-tieni għall-kont eSIGHT.

Skript bil-kapaċità li jehmeż id-dejta direttament waqt l-eżekuzzjoni tal-iskript.

Il-kompitu kien li żżid rotta statika fuq it-tagħmir kollu tan-netwerk. Iżda l-portal għall-Internet fuq kull tagħmir kien differenti (u kien differenti mill-portal default). L-iskrittura li ġejja wriet it-tabella tar-rotta, daħlet fil-mod ta 'konfigurazzjoni, ma kitbitx il-kmand sa l-aħħar (l-indirizz IP tal-portal għall-Internet) - Żidt din il-parti. Wara li ppressajt Enter, l-iskritt kompla jesegwixxi l-kmand.

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

F'dan l-iskript, fil-linja: crt.Screen.Send ("ip route 10.10.10.8 255.255.255.252 ") l-indirizz IP tal-gateway ma jiġix miżjud u m'hemm l-ebda karattru ta 'ritorn tal-ġarr. L-iskript qed jistenna l-linja li jmiss bil-karattri "(config) #" Dawn il-karattri dehru wara li dħalt l-indirizz ip u dħalt.

konklużjoni:

Meta tikteb skript u tesegwixxiha, trid tiġi segwita r-regola: Il-ħin għall-kitba ta’ skript u l-eżekuzzjoni ta’ skript qatt m’għandu jkun aktar mill-ħin teoretikament mgħoddi biex tagħmel l-istess xogħol manwalment (ikkopja / paste minn notepad, kitba u debugging). playbook għal script python ansible, kitba u debugging). Jiġifieri, l-użu tal-iskript għandu jiffranka l-ħin, u mhux ħela ta 'ħin fuq awtomazzjoni ta' darba tal-proċessi (jiġifieri, meta l-iskrittura tkun unika u ma jkunx hemm aktar ripetizzjoni). Imma jekk l-iskript huwa uniku u l-awtomazzjoni bl-iskript u l-kitba / id-debugging tal-iskript jieħu inqas ħin milli tagħmel dan b'xi mod ieħor (ansible, tieqa tal-kmand), allura l-iskrittura hija l-aħjar soluzzjoni.
Debugging ta 'skript. L-iskrittura tikber gradwalment, id-debugging iseħħ fuq il-run-in fuq l-ewwel, it-tieni, it-tielet apparat, u sal-raba 'l-iskrittura x'aktarx tkun kompletament operattiva.

It-tħaddim ta' skript (billi ddaħħal username+password) bil-maws normalment ikun aktar mgħaġġel milli tikkopja l-Username u l-Password minn notepad. Imma mhux sikur mil-lat tas-sigurtà.
Eżempju ieħor (reali) meta tuża skript: M'għandekx aċċess dirett għat-tagħmir tan-netwerk. Iżda hemm bżonn li jiġi kkonfigurat it-tagħmir kollu tan-netwerk (iddaħħalha fis-sistema ta 'monitoraġġ, kkonfigurat Username/password/snmpv3username/password addizzjonali). Hemm aċċess meta tmur għall-iswiċċ Core, minnu tiftaħ SSH għal tagħmir ieħor. Għaliex ma tistax tuża Ansible. - Minħabba li niltaqgħu ma 'limitu fuq in-numru ta' sessjonijiet simultanji permessi fuq tagħmir tan-netwerk (linja vty 0 4, user-interface vty 0 4) (mistoqsija oħra hija kif tibda tagħmir differenti f'Ansible bl-istess SSH first hop).

L-iskrittura jnaqqas il-ħin waqt operazzjonijiet twal - pereżempju, tikkopja fajls permezz tal-FTP. Wara li titlesta l-ikkupjar, l-iskrittura jibda jaħdem immedjatament. Persuna jkollha bżonn tara t-tmiem tal-ikkupjar, imbagħad tirrealizza t-tmiem tal-ikkupjar, imbagħad daħħal il-kmandi xierqa. L-iskrittura tagħmel dan oġġettivament aktar malajr.

L-iskripts huma applikabbli fejn huwa impossibbli li tuża għodod tal-kunsinna tad-dejta tal-massa: Console. Jew meta xi wħud mid-dejta għat-tagħmir tkun unika: hostname, indirizz ip tal-ġestjoni. Jew meta tikteb programm u tiddibaggja huwa aktar diffiċli milli żżid dejta riċevuta mit-tagħmir waqt li l-iskrittura tkun qed taħdem. - Eżempju bi skript għall-preskrizzjoni ta 'rotta, meta kull tagħmir ikollu l-indirizz IP tiegħu stess tal-fornitur tal-Internet. (Il-kollegi tiegħi kitbu skripts bħal dawn - meta tkellem id-DMVPN kien aktar minn 3. Kien meħtieġ li tinbidel is-settings tad-DMVPN).

Studju ta' Każ: Konfigurazzjoni ta' Settings Inizjali fuq Swiċċ Ġdid billi tuża l-Portijiet tal-Console:

A. Ipplaggjat il-kejbil tal-console fl-apparat.
B. Mexxi l-iskript
B. Stennija għall-eżekuzzjoni tal-iskrittura
D. Ipplaggjat il-kejbil tal-console fl-apparat li jmiss.
E. Jekk is-swiċċ mhuwiex l-aħħar wieħed, mur fil-pass B.

B'kollox, bħala riżultat tal-iskrittura:

  • il-password inizjali hija ssettjata fuq it-tagħmir.
  • Isem tal-utent imdaħħal
  • jiddaħħal l-indirizz IP uniku tal-apparat.

PS l-operazzjoni kellha tiġi ripetuta. Minħabba Default ssh ma kienx ikkonfigurat/diżattivat. (Iva, dan huwa l-iżball tiegħi.)

Sorsi użati.

1. Dwar il-ħolqien ta' skripts
2. Eżempji ta' skript

Appendiċi 1: Kampjuni ta' skripts.


Eżempju ta' skript twil, b'żewġ mistoqsijiet: Hostname u indirizz IP. Inħoloq għal presetting tagħmir permezz tal-console (9600 baud). U wkoll biex tipprepara l-konnessjoni tat-tagħmir man-netwerk.

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

Tali skripts normalment mhumiex meħtieġa, iżda l-ammont ta 'tagħmir huwa ta' 15-il biċċa. Setup aktar mgħaġġel permess. Kien aktar mgħaġġel li twaqqaf it-tagħmir bl-użu tat-tieqa tal-Kmand SecureCRT.

Twaqqif ta' kont għal ssh.

Eżempju ieħor. Konfigurazzjoni hija wkoll permezz tal-console.

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


Dwar SecureCRT:Softwer imħallas: minn $99 (l-iżgħar prezz huwa biss għal SecureCRT għal sena)
Websajt uffiċjali
Liċenzja tas-softwer tinxtara darba, b'appoġġ (għall-aġġornament), imbagħad is-softwer jintuża ma 'din il-liċenzja għal żmien illimitat.

Jaħdem fuq sistemi operattivi Mac OS X u Windows.

Hemm appoġġ għall-iskript (dan l-artikolu)
Hemm tieqa tal-kmand
Sistema Operattiva Serial/Telnet/SSH1/SSH2/Shell

Sors: www.habr.com