Skriptlar yordamida SecureCRT-ga kirishni avtomatlashtirish

Tarmoq muhandislari ko'pincha bloknotdan konsolga ma'lum qismlarni nusxalash/joylashtirish vazifasiga duch kelishadi. Odatda bir nechta parametrlarni nusxalashingiz kerak: foydalanuvchi nomi/parol va boshqa narsa. Skriptlardan foydalanish bu jarayonni tezlashtirish imkonini beradi. LEKIN skriptni yozish va skriptni bajarish vazifalari qo'lda konfiguratsiyaga qaraganda kamroq vaqt talab qilishi kerak, aks holda skriptlar foydasiz.

Ushbu maqola nima uchun? Ushbu maqola Fast Start seriyasidan bo'lib, bir nechta qurilmalarda uskunani (bitta vazifa) sozlashda tarmoq muhandislari vaqtini tejashga qaratilgan. SecureCRT dasturi va o'rnatilgan skriptni bajarish funksiyasidan foydalanadi.

Mundarija

kirish

SecureCRT dasturida o'rnatilgan skriptni bajarish mexanizmi mavjud. Terminal skriptlari nima uchun?

  • Avtomatlashtirilgan kiritish-chiqarish va minimal kiritish-chiqarish tekshiruvi.
  • Muntazam vazifalarni bajarishni tezlashtirish - uskuna sozlamalari orasidagi pauzalarni kamaytirish. (Bir xil uskunada nusxa ko'chirish/o'tgan amallarni bajarish vaqti tufayli yuzaga kelgan pauzalarning amalda qisqarishi, apparatga qo'llanilishi kerak bo'lgan 3 yoki undan ortiq buyruq fragmentlari.)

Ushbu hujjat vazifalarni o'z ichiga oladi:

  • Oddiy skriptlarni yaratish.
  • SecureCRT-da skriptlarni ishga tushirish.
  • Oddiy va ilg'or skriptlardan foydalanishga misollar. (Haqiqiy hayotdan amaliyot.)

Oddiy skriptlarni yaratish.

Eng oddiy skriptlar faqat ikkita buyruqdan foydalanadi, Send va WaitForString. Ushbu funksionallik bajarilgan vazifalarning 90% (yoki undan ko'p) uchun etarli.

Skriptlar Python, JS, VBS (Visual Basic), Perl va boshqalarda ishlashi mumkin.

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

Odatda "*.py" kengaytmali fayl

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

Odatda "*.vbs" kengaytmali fayl

Skript yozuvi yordamida skript yarating.

Skript yozish jarayonini avtomatlashtirish imkonini beradi. Siz skript yozishni boshlaysiz. SecureCRT buyruqlar va keyingi apparat javobini yozib oladi va siz uchun tayyor skriptni ko'rsatadi.

A. Skript yozishni boshlang:
SecureCRT Menyu => Skript => Yozishni boshlash
b. Konsol bilan amallarni bajaring (CLI da konfiguratsiya bosqichlarini bajaring).
V. Skript yozishni tugating:
SecureCRT menyusi => Skript => Skript yozishni to'xtatish…
Skript faylini saqlang.

Bajarilgan buyruqlar va saqlangan skriptga misol:

Skriptlar yordamida SecureCRT-ga kirishni avtomatlashtirish

SecureCRT-da skriptlarni ishga tushirish.

Skriptni yaratish/tahrirlashdan keyin mantiqiy savol tug'iladi: skriptni qanday qo'llash kerak?
Bir necha yo'l bor:

  • Skript menyusidan qo'lda ishga tushirish
  • Ulanishdan keyin avtomatik ishga tushirish (kirish skripti)
  • Skriptdan foydalanmasdan avtomatik kirish
  • SecureCRT-dagi tugma yordamida qo'lda ishga tushirish (tugma hali yaratilmagan va SecureCRT-ga qo'shilmagan)

Skript menyusidan qo'lda ishga tushirish

SecureCRT menyusi => Skript => Ishga tushirish…
- Oxirgi 10 ta skriptlar eslab qolinadi va tezda ishga tushirilishi mumkin:
SecureCRT menyusi => Skript => 1 "Skript fayl nomi"
SecureCRT menyusi => Skript => 2 "Skript fayl nomi"
SecureCRT menyusi => Skript => 3 "Skript fayl nomi"
SecureCRT menyusi => Skript => 4 "Skript fayl nomi"
SecureCRT menyusi => Skript => 5 "Skript fayl nomi"

Ulanishdan keyin avtomatik ishga tushirish (kirish skripti)

Avtomatik jurnalga yozish skripti sozlamalari saqlangan seans uchun sozlangan: Ulanish => Tizimga kirish harakatlari => Tizimga kirish skripti

Skriptlar yordamida SecureCRT-ga kirishni avtomatlashtirish

Skriptdan foydalanmasdan avtomatik kirish

Faqat SecureCRT-ning o'rnatilgan funksiyasidan foydalanib, parolning foydalanuvchi nomini skript yozmasdan avtomatik ravishda kiritish mumkin. Ulanish sozlamalarida "Ulanish" => Tizimga kirish harakatlari => Tizimga kirishni avtomatlashtirish - siz bir nechta to'plamlarni to'ldirishingiz kerak - bu juftlikni anglatadi: "Kutilayotgan matn" + "Ushbu matnga yuborilgan belgilar" bunday juftliklar ko'p bo'lishi mumkin. (Masalan: 1-juft foydalanuvchi nomini kutmoqda, ikkinchisi parolni kutmoqda, uchinchisi imtiyozli rejim soʻrovini kutmoqda, toʻrtinchi juftlik imtiyozli rejim parolini kutmoqda.)

Cisco ASA da avtomatik tizimga kirishga misol:

Skriptlar yordamida SecureCRT-ga kirishni avtomatlashtirish

SecureCRT-dagi tugma yordamida qo'lda ishga tushirish (tugma hali yaratilmagan va SecureCRT-ga qo'shilmagan)

SecureCRT-da siz tugmachaga skript belgilashingiz mumkin. Tugma bu maqsad uchun maxsus yaratilgan panelga qo'shiladi.

A. Interfeysga panel qo'shish: SecureCRT Menyu => Ko'rish => Tugma paneli
b. Panelga tugma qo'shing va skript qo'shing. - Tugma panelini o'ng tugmasini bosing va kontekst menyusidan "Yangi tugma ..." ni tanlang.
V. "Xarita tugmasi" muloqot oynasidagi "Harakat" maydonida "Skriptni ishga tushirish" amalini (funktsiyasini) tanlang.
Tugma uchun sarlavhani belgilang. Tugma belgisi uchun rang. OK tugmasini bosish orqali sozlamalarni tugating.

Skriptlar yordamida SecureCRT-ga kirishni avtomatlashtirish

Eslatma:

Tugmalari bo'lgan panel juda foydali funksionallikdir.

1. Muayyan seansga kirganingizda, sukut bo'yicha ushbu yorliq uchun qaysi panelni ochishni belgilashingiz mumkin.

2. Uskunalar bilan standart harakatlar uchun oldindan belgilangan harakatlarni o'rnatish mumkin: versiyani ko'rsatish, run-configni ko'rsatish, konfiguratsiyani saqlash.

Skriptlar yordamida SecureCRT-ga kirishni avtomatlashtirish
Ushbu tugmalarga hech qanday skript biriktirilmagan. Faqat harakatlar qatori:

Skriptlar yordamida SecureCRT-ga kirishni avtomatlashtirish
Sozlash - seansga o'tishda seans sozlamalarida kerakli tugmalar paneli ochilishi uchun:

Skriptlar yordamida SecureCRT-ga kirishni avtomatlashtirish
Mijoz uchun Login uchun individual skriptlarni o'rnatish va sotuvchi uchun tez-tez buyruqlar bilan panelga o'tish mantiqan.

Skriptlar yordamida SecureCRT-ga kirishni avtomatlashtirish
Go Cisco tugmasini bosganingizda panel Cisco tugmalar paneliga o'tadi.

Skriptlar yordamida SecureCRT-ga kirishni avtomatlashtirish

Oddiy va ilg'or skriptlardan foydalanishga misollar. (Haqiqiy hayotdan amaliyot.)

Oddiy skriptlar deyarli barcha holatlar uchun etarli. Ammo bir marta skriptni biroz murakkablashtirishim kerak edi - ishni tezlashtirish uchun. Ushbu murakkablik faqat foydalanuvchidan dialog oynasida qo'shimcha ma'lumotlarni talab qildi.

Muloqot oynasi yordamida foydalanuvchidan ma'lumotlarni so'rash

Ma'lumotlar so'rovi skriptida menda 2 tasi bor edi. Bu hostname va IP manzilning 4-okteti. Ushbu amalni bajarish uchun - men buni qanday qilishni google-da qidirdim va uni SecureCRT (vandyke) rasmiy veb-saytida topdim. - funksionallik tezkor deb ataladi.

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

Skriptning ushbu qismi oxirgi oktetdagi Xost nomi va raqamlarini so'radi. Chunki 15 ta uskuna bor edi. Va ma'lumotlar jadvalda taqdim etildi, keyin men jadvaldan qiymatlarni ko'chirib, dialog oynalariga joylashtirdim. Keyinchalik skript mustaqil ravishda ishladi.

FTPni tarmoq uskunasiga nusxalash.

Ushbu skript mening buyruqlar oynasini (qobiq) ishga tushirdi va ma'lumotlarni FTP orqali nusxaladi. Oxirida sessiyani yoping. Buning uchun bloknotdan foydalanish mumkin emas, chunki nusxa ko'chirish juda uzoq vaqt talab etadi va FTP buferidagi ma'lumotlar uzoq vaqt davomida saqlanmaydi:

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

Skript yordamida foydalanuvchi nomi/parolni kiritish

Bir mijozda tarmoq uskunasiga to'g'ridan-to'g'ri kirish yopildi. Uskunani dastlab Standart shlyuzga, undan keyin esa unga ulangan uskunaga ulash orqali kiritish mumkin edi. Ulanish uchun IOS/apparat dasturiga o'rnatilgan ssh mijozi ishlatilgan. Shunga ko'ra, foydalanuvchi nomi va parol konsolda so'ralgan. Quyidagi skript yordamida foydalanuvchi nomi va parol avtomatik ravishda kiritildi:

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

Eslatma: 2 ta skript mavjud edi: biri administrator hisobi uchun, ikkinchisi eSIGHT hisobi uchun.

Skriptni bajarish paytida ma'lumotlarni to'g'ridan-to'g'ri qo'shish qobiliyatiga ega skript.

Vazifa barcha tarmoq uskunalarida statik marshrutni qo'shish edi. Ammo har bir uskunada Internetga kirish eshigi boshqacha edi (va u standart shlyuzdan farq qilar edi). Quyidagi skript marshrutlash jadvalini ko'rsatdi, konfiguratsiya rejimiga kirdi, buyruqni oxirigacha yozmadi (Internetga shlyuzning IP manzili) - men ushbu qismni qo'shdim. Enter tugmasini bosganimdan keyin skript buyruqni bajarishda davom etdi.

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

Ushbu skriptda: crt.Screen.Send("ip route 10.10.10.8 255.255.255.252" qatorida shlyuzning IP manzili qo'shilmagan va vagonni qaytarish belgisi yo'q. Skript "(config) #" belgilar bilan keyingi qatorni kutmoqda Bu belgilar men IP manzilini kiritganimdan va kiritganimdan keyin paydo bo'ldi.

Xulosa:

Skriptni yozish va uni bajarishda qoidaga amal qilish kerak: Skript yozish va skriptni bajarish vaqti hech qachon nazariy jihatdan bir xil ishni qo'lda bajarishga sarflangan vaqtdan ko'p bo'lmasligi kerak (bloknotdan nusxa ko'chirish / joylashtirish, yozish va disk raskadrovka). python skriptini tushunish, yozish va tuzatish uchun o'yin kitobi). Ya'ni, skriptdan foydalanish vaqtni tejash va jarayonlarni bir martalik avtomatlashtirishga vaqtni behuda sarflamasligi kerak (ya'ni, skript noyob bo'lsa va boshqa takrorlash bo'lmaydi). Ammo agar skript noyob bo'lsa va skript bilan avtomatlashtirish va skriptni yozish/disk raskadrovka qilish uni boshqa usulda bajarishdan ko'ra kamroq vaqt talab qilsa (aniq, buyruq oynasi), u holda skript eng yaxshi echimdir.
Skriptni disk raskadrovka qilish. Skript asta-sekin o'sib boradi, disk raskadrovka birinchi, ikkinchi, uchinchi qurilmada ishga tushirilganda amalga oshiriladi va to'rtinchisida skript to'liq ishlaydi.

Sichqoncha bilan skriptni ishga tushirish (foydalanuvchi nomi+parolni kiritish orqali) odatda bloknotdan foydalanuvchi nomi va parolni nusxalashdan ko'ra tezroq. Lekin xavfsizlik nuqtai nazaridan xavfsiz emas.
Skriptni ishlatishda yana bir (haqiqiy) misol: Sizda tarmoq uskunasiga to'g'ridan-to'g'ri kirish imkoni yo'q. Ammo barcha tarmoq uskunalarini sozlash kerak (uni monitoring tizimiga olib keling, qo'shimcha foydalanuvchi nomi/parol/snmpv3username/parolni sozlang). Yadro kalitiga kirganingizda kirish mavjud, undan SSH-ni boshqa jihozlarga ochasiz. Nega Ansible-dan foydalana olmaysiz? - Chunki biz tarmoq uskunalarida bir vaqtning o'zida ruxsat etilgan seanslar soni bo'yicha cheklovga duch keldik (liniya vty 0 4, foydalanuvchi interfeysi vty 0 4) (yana bir savol Ansible'da bir xil SSH birinchi hop bilan turli xil uskunalarni qanday ishga tushirish kerak).

Skript uzoq operatsiyalar davomida vaqtni qisqartiradi - masalan, FTP orqali fayllarni nusxalash. Nusxalash tugallangach, skript darhol ishlay boshlaydi. Biror kishi nusxa ko'chirishning oxirini ko'rishi, keyin nusxa ko'chirishning oxirini tushunishi, keyin tegishli buyruqlarni kiritishi kerak. Skript buni ob'ektiv ravishda tezroq bajaradi.

Skriptlar ommaviy ma'lumotlarni uzatish vositalaridan foydalanish mumkin bo'lmagan hollarda qo'llaniladi: Konsol. Yoki uskuna uchun ba'zi ma'lumotlar noyob bo'lsa: xost nomi, boshqaruv IP manzili. Yoki dastur yozishda va disk raskadrovka qilish skript ishlayotgan vaqtda uskunadan olingan ma'lumotlarni qo'shishdan ko'ra qiyinroq. - Har bir uskunada Internet-provayderning o'z IP-manzili bo'lsa, marshrutni belgilash uchun skriptga misol. (Mening hamkasblarim shunday skriptlarni yozishgan - DMVPN gapirganda 3 dan oshgan. DMVPN sozlamalarini o'zgartirish kerak edi).

Case Study: Konsol portlari yordamida yangi kommutatorda dastlabki sozlamalarni sozlash:

A. Konsol kabelini qurilmaga ulang.
B. Skriptni ishga tushiring
B. Ssenariyning bajarilishini kutdi
D. Konsol kabelini keyingi qurilmaga ulang.
E. Agar kalit oxirgi bo'lmasa, B bosqichiga o'ting.

Skript ishi natijasida:

  • dastlabki parol uskunada o'rnatiladi.
  • Foydalanuvchi nomi kiritildi
  • qurilmaning noyob IP manzili kiritiladi.

PS operatsiyani takrorlash kerak edi. Chunki standart ssh sozlanmagan/o'chirilgan. (Ha, bu mening xatoim.)

Ishlatilgan manbalar.

1. Skriptlarni yaratish haqida
2. Skript misollari

1-ilova: skript namunalari.


Ikkita so'rovli uzun skriptga misol: Xost nomi va IP manzili. U uskunani konsol orqali oldindan sozlash uchun yaratilgan (9600 bod). Shuningdek, uskunani tarmoqqa ulashni tayyorlash.

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

Bunday skriptlar odatda kerak emas, lekin uskunalar miqdori 15 dona. Tezroq sozlashga ruxsat berilgan. SecureCRT buyrug'i oynasi yordamida uskunani sozlash tezroq bo'ldi.

Ssh uchun hisob o'rnatish.

Yana bir misol. Konfiguratsiya ham konsol orqali amalga oshiriladi.

# $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 haqida:Pullik dasturiy ta'minot: $99 dan (eng kichik narx faqat SecureCRT uchun bir yilga)
Grant rasmiy veb-sayti
Dasturiy ta'minot litsenziyasi qo'llab-quvvatlash bilan (yangilash uchun) bir marta sotib olinadi, so'ngra dasturiy ta'minot ushbu litsenziya bilan cheklanmagan vaqt davomida ishlatiladi.

Mac OS X va Windows operatsion tizimlarida ishlaydi.

Skriptni qo'llab-quvvatlash mavjud (ushbu maqola)
bor Buyruqlar oynasi
Serial/Telnet/SSH1/SSH2/Shell operatsion tizimi

Manba: www.habr.com