Сценарийлерді пайдалану арқылы SecureCRT жүйесіндегі енгізуді автоматтандыру

Желілік инженерлер блокноттан консольге белгілі бір фрагменттерді көшіру/қою міндетімен жиі кездеседі. Әдетте бірнеше параметрді көшіру керек: пайдаланушы аты/пароль және басқа нәрсе. Сценарийлерді пайдалану бұл процесті жылдамдатуға мүмкіндік береді. БІРАҚ сценарийді жазу және сценарийді орындау тапсырмалары қолмен конфигурациялауға қарағанда жалпы алғанда аз уақыт алуы керек, әйтпесе сценарийлер пайдасыз болады.

Бұл мақала не үшін? Бұл мақала Fast Start сериясынан алынған және бірнеше құрылғыларда жабдықты (бір тапсырма) орнату кезінде желі инженерлерінің уақытын үнемдеуге бағытталған. SecureCRT бағдарламалық құралын және кірістірілген сценарийді орындау мүмкіндігін пайдаланады.

Мазмұны

Кіріспе

SecureCRT бағдарламасында қораптан тыс кірістірілген сценарийді орындау механизмі бар. Терминалды сценарийлер не үшін қажет?

  • Автоматтандырылған енгізу/шығару және минималды енгізу/шығару тексеруі.
  • Күнделікті тапсырмаларды орындауды жылдамдату - жабдық параметрлері арасындағы үзілістерді азайту. (Бір аппараттық құралда көшіру/өткен әрекеттерді орындау уақытынан туындаған үзілістердің іс жүзінде қысқаруы, аппараттық құралға қолданылатын 3 немесе одан да көп пәрмен фрагменттері.)

Бұл құжат келесі міндеттерді қамтиды:

  • Қарапайым сценарийлерді құру.
  • SecureCRT жүйесінде сценарийлерді іске қосу.
  • Қарапайым және кеңейтілген сценарийлерді пайдалану мысалдары. (Шынайы өмірден алынған тәжірибе.)

Қарапайым сценарийлерді құру.

Ең қарапайым сценарийлер тек екі пәрменді пайдаланады: Send және WaitForString. Бұл функция орындалған тапсырмалардың 90% (немесе одан да көп) үшін жеткілікті.

Сценарийлер Python, JS, VBS (Visual Basic), Perl және т.б.

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

Әдетте «*.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

Әдетте "*.vbs" кеңейтімі бар файл

Сценарий жазбасын пайдаланып сценарий жасаңыз.

Сценарий жазу процесін автоматтандыруға мүмкіндік береді. Сіз сценарий жаза бастайсыз. SecureCRT пәрмендерді және одан кейінгі аппараттық жауапты жазады және сіз үшін дайын сценарийді көрсетеді.

А. Сценарий жазуды бастаңыз:
SecureCRT мәзірі => Сценарий => Жазу сценарийін бастау
б. Консольмен әрекеттерді орындаңыз (CLI ішіндегі конфигурация қадамдарын орындаңыз).
В. Сценарий жазуды аяқтаңыз:
SecureCRT мәзірі => Сценарий => Жазуды тоқтату…
Сценарий файлын сақтаңыз.

Орындалған пәрмендер мен сақталған сценарийдің мысалы:

Сценарийлерді пайдалану арқылы SecureCRT жүйесіндегі енгізуді автоматтандыру

SecureCRT жүйесінде сценарийлерді іске қосу.

Сценарийді жасағаннан/өңдегеннен кейін логикалық сұрақ туындайды: Сценарийді қалай қолдануға болады?
Бірнеше жолы бар:

  • Сценарий мәзірінен қолмен іске қосу
  • Қосылғаннан кейін автоматты іске қосу (кіру сценарийі)
  • Сценарийді пайдаланбай автоматты түрде кіру
  • SecureCRT жүйесіндегі түйме арқылы қолмен іске қосу (түйме әлі жасалмаған және SecureCRT-ке қосылмаған)

Сценарий мәзірінен қолмен іске қосу

SecureCRT мәзірі => Сценарий => Іске қосу…
- Соңғы 10 сценарий есте сақталады және жылдам іске қосу үшін қол жетімді:
SecureCRT мәзірі => Сценарий => 1 "Сценарий файлының аты"
SecureCRT мәзірі => Сценарий => 2 "Сценарий файлының аты"
SecureCRT мәзірі => Сценарий => 3 "Сценарий файлының аты"
SecureCRT мәзірі => Сценарий => 4 "Сценарий файлының аты"
SecureCRT мәзірі => Сценарий => 5 "Сценарий файлының аты"

Қосылғаннан кейін автоматты іске қосу (кіру сценарийі)

Автоматты тіркеу сценарийінің параметрлері сақталған сеанс үшін конфигурацияланады: Қосылым => Жүйеге кіру әрекеттері => Жүйеге кіру сценарийі

Сценарийлерді пайдалану арқылы SecureCRT жүйесіндегі енгізуді автоматтандыру

Сценарийді пайдаланбай автоматты түрде кіру

Құпия сөздің пайдаланушы атын тек SecureCRT-тің кірістірілген функционалдығын пайдаланып, сценарий жазбай-ақ автоматты түрде енгізуге болады. Қосылым параметрлерінде «Байланыс» => Жүйеге кіру әрекеттері => Жүйеге кіруді автоматтандыру - сізге бірнеше бумаларды толтыру қажет - бұл жұптарды білдіреді: «Күтілетін мәтін» + «Осы мәтінге жіберілген таңбалар» мұндай жұптар көп болуы мүмкін. (Мысалы: 1-ші жұп пайдаланушы атын күтуде, екінші парольді күтуде, үшіншісі артықшылық режимінің сұрауын күтуде, артықшылық режимінің құпия сөзі үшін төртінші жұп.)

Cisco ASA жүйесінде автоматты түрде кіру мысалы:

Сценарийлерді пайдалану арқылы SecureCRT жүйесіндегі енгізуді автоматтандыру

SecureCRT жүйесіндегі түйме арқылы қолмен іске қосу (түйме әлі жасалмаған және SecureCRT-ке қосылмаған)

SecureCRT бағдарламасында түймеге сценарий тағайындауға болады. Түйме осы мақсат үшін арнайы жасалған панельге қосылады.

А. Интерфейске панель қосу: SecureCRT мәзірі => Көрініс => Түйме жолағы
б. Панельге түймені қосып, сценарийді қосыңыз. – Түймешік жолағын тінтуірдің оң жақ түймешігімен басып, контекстік мәзірден «Жаңа түйме ...» тармағын таңдаңыз.
В. «Карта түймесі» диалогтық терезесінің «Әрекет» өрісінде «Сценарийді іске қосу» әрекетін (функциясын) таңдаңыз.
Түйме үшін тақырыпты көрсетіңіз. Түйме белгішесінің түсі. Жарайды түймесін басу арқылы параметрлерді аяқтаңыз.

Сценарийлерді пайдалану арқылы SecureCRT жүйесіндегі енгізуді автоматтандыру

Ескертпе:

Түймелері бар панель өте пайдалы функция болып табылады.

1. Белгілі бір сеансқа кіру кезінде әдепкі бойынша осы қойындыға қай панельді ашу керектігін көрсетуге болады.

2. Жабдықпен стандартты әрекеттер үшін алдын ала анықталған әрекеттерді орнатуға болады: нұсқаны көрсету, жүгіру-конфигурацияны көрсету, конфигурацияны сақтау.

Сценарийлерді пайдалану арқылы SecureCRT жүйесіндегі енгізуді автоматтандыру
Бұл түймелерге ешқандай сценарий тіркелмеген. Тек әрекет сызығы:

Сценарийлерді пайдалану арқылы SecureCRT жүйесіндегі енгізуді автоматтандыру
Параметр - сеансқа ауысқан кезде сеанс параметрлерінде түймелері бар қажетті панель ашылады:

Сценарийлерді пайдалану арқылы SecureCRT жүйесіндегі енгізуді автоматтандыру
Тұтынушы үшін Кіру үшін жеке сценарийлерді орнату және жеткізуші үшін жиі пәрмендері бар панельге өту мағынасы бар.

Сценарийлерді пайдалану арқылы SecureCRT жүйесіндегі енгізуді автоматтандыру
Go Cisco түймесін басқан кезде панель Cisco түймелер жолағына ауысады.

Сценарийлерді пайдалану арқылы SecureCRT жүйесіндегі енгізуді автоматтандыру

Қарапайым және кеңейтілген сценарийлерді пайдалану мысалдары. (Шынайы өмірден алынған тәжірибе.)

Қарапайым сценарийлер барлық дерлік жағдайлар үшін жеткілікті. Бірақ бір рет маған сценарийді аздап қиындату керек болды - жұмысты тездету үшін. Бұл қиындық пайдаланушыдан диалогтық терезеде жай ғана қосымша деректерді сұрады.

Диалогтық терезе арқылы пайдаланушыдан деректерді сұрау

Деректер сұрау сценарийінде менде 2 болды.Бұл хост атауы және IP мекенжайының 4-ші октеті. Бұл әрекетті орындау үшін - мен мұны қалай жасауға болатынын google-де іздедім және оны SecureCRT (vandyke) ресми сайтынан таптым. - функция жедел деп аталады.

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

Сценарийдің бұл бөлігі соңғы октеттің хост атауы мен сандарын сұрады. Өйткені 15 техника болды. Ал деректер кестеде ұсынылды, содан кейін мен кестеден мәндерді көшіріп, диалогтық терезелерге қойдым. Әрі қарай сценарий өз бетінше жұмыс істеді.

FTP желілік жабдыққа көшіру.

Бұл сценарий менің командалық тереземді (қабық) іске қосты және деректерді FTP арқылы көшірді. Соңында сессияны жабыңыз. Бұл үшін блокнотты пайдалану мүмкін емес, өйткені көшіру өте ұзақ уақытты алады және FTP буферіндегі деректер ұзақ уақыт бойы сақталмайды:

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

Сценарий арқылы пайдаланушы атын/парольді енгізу

Бір тұтынушыда желілік жабдыққа тікелей кіру жабылды. Алдымен Әдепкі шлюзге, одан кейін оған қосылған жабдыққа қосылу арқылы жабдыққа кіруге болады. Қосылу үшін IOS/аппараттық бағдарламалық құралға енгізілген ssh клиенті пайдаланылды. Тиісінше, консольде пайдаланушы аты мен құпия сөз сұралды. Төмендегі сценарий арқылы пайдаланушы аты мен құпия сөз автоматты түрде енгізілді:

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

Ескертпе: 2 сценарий болды.Біреуі әкімші тіркелгісіне, екіншісі eSIGHT тіркелгісіне арналған.

Сценарийді орындау кезінде деректерді тікелей қосу мүмкіндігі бар сценарий.

Тапсырма барлық желілік жабдықта статикалық маршрутты қосу болды. Бірақ әрбір жабдықтағы Интернет шлюзі әртүрлі болды (және ол әдепкі шлюзден ерекшеленді). Келесі сценарий маршруттау кестесін көрсетті, конфигурация режиміне кірді, пәрменді соңына дейін жазбады (Интернет шлюзінің IP мекенжайы) - мен бұл бөлікті қостым. Мен Enter пернесін басқаннан кейін сценарий пәрменді орындауды жалғастырды.

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

Бұл сценарийде crt.Screen.Send("ip route 10.10.10.8 255.255.255.252") жолында шлюздің IP мекенжайы қосылмаған және каретканы қайтару таңбасы жоқ. Сценарий «(config) #» таңбалары бар келесі жолды күтуде Бұл таңбалар мен IP мекенжайын енгізіп, енгізгеннен кейін пайда болды.

қорытынды:

Сценарий жазу және оны орындау кезінде ережені сақтау керек: Сценарий жазу және сценарийді орындау уақыты ешқашан теориялық тұрғыдан сол жұмысты қолмен орындауға кететін уақыттан аспауы керек (блокноттан көшіру/қою, жазу және жөндеу питон сценарийін жазуға және жөндеуге арналған ойын кітабы). Яғни, сценарийді пайдалану уақытты үнемдеу керек және процестерді бір реттік автоматтандыруға уақытты жоғалтпауы керек (яғни, сценарий бірегей болғанда және қайталану болмайды). Бірақ сценарий бірегей болса және сценариймен автоматтандыру және сценарийді жазу/отладтау оны кез келген басқа тәсілмен (ансибилді, пәрмен терезесі) орындаудан аз уақытты қажет ететін болса, онда сценарий ең жақсы шешім болып табылады.
Скриптті жөндеу. Сценарий бірте-бірте өседі, жөндеу бірінші, екінші, үшінші құрылғыда іске қосылған кезде орын алады, ал төртіншіге қарай сценарий толықтай жұмыс істейтін болады.

Тінтуірмен сценарийді іске қосу (пайдаланушы аты+құпия сөзді енгізу арқылы) әдетте блокноттан пайдаланушы аты мен құпия сөзді көшіруге қарағанда жылдамырақ. Бірақ қауіпсіздік тұрғысынан қауіпсіз емес.
Сценарийді пайдалану кезіндегі тағы бір (нақты) мысал: Сізде желілік жабдыққа тікелей кіру мүмкіндігі жоқ. Бірақ барлық желілік жабдықты конфигурациялау қажет (оны бақылау жүйесіне енгізіңіз, қосымша пайдаланушы аты/пароль/snmpv3 пайдаланушы аты/құпия сөзді конфигурациялаңыз). Core қосқышына өткен кезде қол жетімділік бар, одан сіз басқа жабдыққа SSH ашасыз. Неліктен Ansible қолданбасын пайдалана алмайсыз? - Себебі біз желілік жабдықта рұқсат етілген бір уақыттағы сеанстар санына шектеу қойдық (сызық vty 0 4, пайдаланушы интерфейсі vty 0 4) (басқа мәселе Ansible-де әртүрлі жабдықты бірдей SSH бірінші секіруімен қалай іске қосу керек).

Сценарий ұзақ операциялар кезінде уақытты қысқартады - мысалы, файлдарды FTP арқылы көшіру. Көшіру аяқталғаннан кейін сценарий бірден жұмыс істей бастайды. Адам көшірудің соңын көруі керек, содан кейін көшірудің соңын түсініп, сәйкес пәрмендерді енгізу керек. Сценарий мұны объективті түрде тезірек жасайды.

Деректерді жаппай жеткізу құралдарын пайдалану мүмкін болмаған жағдайда сценарийлер қолданылады: Консоль. Немесе жабдықтың кейбір деректері бірегей болған кезде: хост атауы, басқару IP мекенжайы. Немесе бағдарламаны жазу және жөндеу кезінде сценарий жұмыс істеп тұрған кезде жабдықтан алынған деректерді қосудан қиынырақ. - Әрбір жабдықтың Интернет провайдерінің жеке IP мекенжайы болған кезде маршрутты белгілеу сценарийі бар мысал. (Менің әріптестерім осындай сценарийлерді жазды - DMVPN сөйлеген кезде 3-ден жоғары болды. DMVPN параметрлерін өзгерту қажет болды).

Жағдайды зерттеу: консоль порттарын пайдаланып жаңа коммутатордағы бастапқы параметрлерді конфигурациялау:

A. Консоль кабелін құрылғыға қосыңыз.
B. Сценарийді іске қосыңыз
B. Сценарийдің орындалуын күтті
D. Консоль кабелін келесі құрылғыға қосыңыз.
E. Егер қосқыш соңғысы болмаса, B қадамына өтіңіз.

Сценарий жұмысының нәтижесінде:

  • бастапқы құпия сөз жабдықта орнатылған.
  • Пайдаланушы аты енгізілді
  • құрылғының бірегей IP мекенжайы енгізіледі.

PS операцияны қайталау керек болды. Өйткені әдепкі ssh конфигурацияланбаған/өшірілмеген. (Иә, бұл менің қателігім.)

Пайдаланылған көздер.

1. Сценарийлерді құру туралы
2. Сценарий мысалдары

1-қосымша: Сценарийлер үлгісі.


Екі сұрауы бар ұзын сценарийдің мысалы: хост атауы және IP мекенжайы. Ол консоль арқылы жабдықты алдын ала орнату үшін жасалған (9600 бад). Сондай-ақ жабдықты желіге қосуды дайындау.

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

Мұндай сценарийлер әдетте қажет емес, бірақ жабдықтың саны 15 дана. Тезірек орнатуға рұқсат етілген. SecureCRT пәрмен терезесі арқылы жабдықты орнату жылдамырақ болды.

ssh үшін тіркелгіні орнату.

Тағы бір мысал. Конфигурация консоль арқылы да жүзеге асырылады.

# $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 туралы:Ақылы бағдарламалық қамтамасыз ету: $99 бастап (ең аз баға тек бір жылға SecureCRT үшін)
Ресми сайт
Бағдарламалық құрал лицензиясы қолдауымен (жаңарту үшін) бір рет сатып алынады, содан кейін бағдарламалық құрал осы лицензиямен шектеусіз уақыт бойы пайдаланылады.

Mac OS X және Windows операциялық жүйелерінде жұмыс істейді.

Сценарий қолдауы бар (осы мақала)
бар Пәрмен терезесі
Сериялық/Telnet/SSH1/SSH2/Shell операциялық жүйесі

Ақпарат көзі: www.habr.com