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
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ċċ.
# $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:
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)
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:
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.
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.
L-ebda skript mhu mehmuż ma’ dawn il-buttuni. Linja ta' azzjoni biss:
L-issettjar - sabiex meta taqleb għal sessjoni, il-pannell meħtieġ bil-buttuni jinfetaħ fis-settings tas-sessjoni:
Jagħmel sens li l-klijent iwaqqaf skripts individwali għal Login u jmur fil-panel b'kmandi frekwenti għall-bejjiegħ.
Meta tagħfas il-buttuna Mur Cisco, il-pannell jaqleb għall-Bar Button Cisco.
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.
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.)
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.
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