Mengotomatiskan Entri di SecureCRT Menggunakan Script
Insinyur jaringan sering menghadapi tugas menyalin/menempelkan fragmen tertentu dari notepad ke konsol. Anda biasanya harus menyalin beberapa parameter: Nama Pengguna/Kata Sandi dan yang lainnya. Penggunaan skrip memungkinkan Anda untuk mempercepat proses ini. TETAPI tugas menulis skrip dan mengeksekusi skrip seharusnya memakan waktu lebih sedikit daripada konfigurasi manual, jika tidak, skrip tidak berguna.
Untuk apa artikel ini? Artikel ini berasal dari seri Mulai Cepat dan bertujuan untuk menghemat waktu teknisi jaringan saat menyiapkan peralatan (tugas tunggal) di beberapa perangkat. Menggunakan perangkat lunak SecureCRT dan fungsionalitas eksekusi skrip bawaan. kadar
Program SecureCRT memiliki mekanisme eksekusi skrip bawaan di luar kotak. Untuk apa skrip terminal?
I/O otomatis, dan validasi I/O minimal.
Percepat pelaksanaan tugas rutin - kurangi jeda antara pengaturan peralatan. (Pengurangan jeda secara de facto yang disebabkan oleh waktu untuk melakukan tindakan penyalinan/melampaui pada perangkat keras yang sama, dengan 3 fragmen perintah atau lebih untuk diterapkan ke perangkat keras.)
Dokumen ini mencakup tugas-tugas:
Pembuatan script sederhana.
Menjalankan skrip di SecureCRT.
Contoh penggunaan skrip sederhana dan lanjutan. (Latihan dari kehidupan nyata.)
Pembuatan script sederhana.
Skrip paling sederhana hanya menggunakan dua perintah, Send dan WaitForString. Fungsionalitas ini cukup untuk 90% (atau lebih) tugas yang dilakukan.
Skrip dapat bekerja dengan Python, JS, VBS (Visual Basic), Perl, dll.
# $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
Biasanya file dengan ekstensi "*.vbs"
Buat skrip menggunakan entri skrip.
Memungkinkan Anda mengotomatiskan proses penulisan skrip. Anda mulai menulis naskah. SecureCRT merekam perintah dan respons perangkat keras selanjutnya dan menampilkan skrip yang sudah selesai untuk Anda.
A. Mulai menulis skrip:
Menu SecureCRT => Script => Mulai Merekam Script
B. Lakukan tindakan dengan konsol (lakukan langkah konfigurasi di CLI).
V . Selesai menulis skrip:
Menu SecureCRT => Script => Berhenti Merekam Script…
Simpan file skrip.
Contoh perintah yang dieksekusi dan skrip yang disimpan:
Menjalankan skrip di SecureCRT.
Setelah membuat/mengedit skrip, muncul pertanyaan wajar: Bagaimana cara menerapkan skrip?
Ada beberapa cara:
Menjalankan secara manual dari menu Script
Mulai otomatis setelah koneksi (skrip masuk)
Logon otomatis tanpa menggunakan skrip
Memicu secara manual dengan tombol di SecureCRT (tombol belum dibuat dan ditambahkan ke SecureCRT)
Menjalankan secara manual dari menu Script
Menu SecureCRT => Skrip => Jalankan…
- 10 skrip terakhir diingat dan tersedia untuk peluncuran cepat:
Menu SecureCRT => Skrip => 1 "Nama file skrip"
Menu SecureCRT => Skrip => 2 "Nama file skrip"
Menu SecureCRT => Skrip => 3 "Nama file skrip"
Menu SecureCRT => Skrip => 4 "Nama file skrip"
Menu SecureCRT => Skrip => 5 "Nama file skrip"
Mulai otomatis setelah koneksi (skrip masuk)
Pengaturan skrip logging otomatis dikonfigurasi untuk sesi yang disimpan: Connection => Logon Actions => Logon script
Logon otomatis tanpa menggunakan skrip
Dimungkinkan untuk memasukkan nama pengguna kata sandi secara otomatis tanpa menulis skrip, hanya menggunakan fungsionalitas bawaan SecureCRT. Dalam pengaturan koneksi "Koneksi" => Tindakan Masuk => Otomatis masuk - Anda perlu mengisi beberapa bundel - yang artinya pasangan: "Teks yang diharapkan" + "Karakter terkirim ke teks ini" bisa ada banyak pasangan seperti itu. (Contoh: pasangan pertama menunggu nama pengguna, pasangan kedua menunggu kata sandi, pasangan ketiga menunggu prompt mode istimewa, pasangan keempat untuk kata sandi mode istimewa.)
Contoh logon otomatis di Cisco ASA:
Memicu secara manual dengan tombol di SecureCRT (tombol belum dibuat dan ditambahkan ke SecureCRT)
Di SecureCRT, Anda dapat menetapkan skrip ke sebuah tombol. Tombol ditambahkan ke panel yang dibuat khusus untuk tujuan ini.
A. Menambahkan panel ke antarmuka: SecureCRT Menu => View => Button Bar
B. Tambahkan tombol ke panel dan tambahkan skrip. – Klik kanan pada Button Bar dan pilih “New button…” dari menu konteks.
V . Di kotak dialog "Tombol Peta", di bidang "Aksi", pilih tindakan (fungsi) "Jalankan Skrip".
Tentukan keterangan untuk tombol. Warna untuk ikon tombol. Selesaikan pengaturan dengan mengklik Ok.
Catatan:
Panel dengan tombol adalah fungsionalitas yang sangat berguna.
1. Dimungkinkan, saat Masuk ke sesi tertentu, untuk menentukan panel mana yang dibuka ke tab ini secara default.
2. Dimungkinkan untuk mengatur tindakan yang telah ditentukan sebelumnya untuk tindakan standar dengan peralatan: tampilkan versi pertunjukan, tampilkan konfigurasi berjalan, simpan konfigurasi.
Tidak ada skrip yang dilampirkan ke tombol-tombol ini. Garis tindakan saja:
Pengaturan - sehingga saat beralih ke sesi, panel yang diperlukan dengan tombol terbuka di pengaturan sesi:
Masuk akal bagi pelanggan untuk menyiapkan skrip individual untuk Login dan masuk ke panel dengan perintah yang sering untuk vendor.
Saat Anda menekan tombol Go Cisco, panel beralih ke Bilah Tombol Cisco.
Contoh penggunaan skrip sederhana dan lanjutan. (Latihan dari kehidupan nyata.)
Skrip sederhana sudah cukup untuk hampir semua kesempatan. Tapi suatu kali saya perlu sedikit memperumit skrip - untuk mempercepat pekerjaan. Komplikasi ini hanya meminta data tambahan di kotak dialog dari pengguna.
Meminta data dari pengguna menggunakan kotak dialog
Saya memiliki 2 dalam skrip permintaan data. Ini adalah Nama Host dan oktet ke-4 dari alamat IP. Untuk melakukan tindakan ini - saya mencari di Google bagaimana melakukannya dan menemukannya di situs web resmi SecureCRT (vandyke). - fungsinya disebut prompt.
Bagian skrip ini meminta Hostname dan nomor dari oktet terakhir. Karena ada 15 buah peralatan. Dan datanya disajikan dalam sebuah tabel, lalu saya salin nilai-nilai dari tabel tersebut dan menempelkannya ke kotak dialog. Selanjutnya skrip bekerja secara mandiri.
Penyalinan FTP ke peralatan jaringan.
Skrip ini meluncurkan jendela perintah saya (shell) dan menyalin data melalui FTP. Pada akhirnya, tutup sesi. Tidak mungkin menggunakan notepad untuk ini, karena penyalinan membutuhkan waktu yang sangat lama dan data di buffer FTP tidak akan disimpan selama itu:
# $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()
Memasukkan username/password menggunakan script
Di salah satu akses pelanggan ke peralatan jaringan langsung ditutup. Dimungkinkan untuk memasukkan peralatan dengan terlebih dahulu menghubungkan ke Gateway Default, dan dari itu kemudian ke peralatan yang terhubung dengannya. Klien ssh yang dibangun ke dalam perangkat lunak iOS/perangkat keras digunakan untuk terhubung. Karenanya, nama pengguna dan kata sandi diminta di konsol. Dengan skrip di bawah ini, nama pengguna dan kata sandi dimasukkan secara otomatis:
# $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()
Catatan: Ada 2 skrip, satu untuk akun administrator, yang kedua untuk akun eSIGHT.
Skrip dengan kemampuan untuk menambahkan data secara langsung selama eksekusi skrip.
Tugasnya adalah menambahkan rute statis pada semua peralatan jaringan. Tetapi gateway ke Internet pada setiap peralatan berbeda (dan berbeda dari gateway default). Skrip berikut menampilkan tabel perutean, memasuki mode konfigurasi, tidak menulis perintah sampai akhir (alamat IP gateway ke Internet) - saya menambahkan bagian ini. Setelah saya menekan Enter, skrip melanjutkan untuk menjalankan perintah.
# $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()
Dalam skrip ini, di baris: crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ") alamat IP gateway tidak ditambahkan dan tidak ada karakter carriage return. Skrip menunggu baris berikutnya dengan karakter "(config) #" Karakter ini muncul setelah saya memasukkan alamat ip dan masuk.
kesimpulan:
Saat menulis skrip dan menjalankannya, aturan harus diikuti: Waktu untuk menulis skrip dan mengeksekusi skrip tidak boleh lebih dari waktu yang secara teoritis dihabiskan untuk melakukan pekerjaan yang sama secara manual (salin / tempel dari notepad, menulis dan debugging buku pedoman untuk memungkinkan, menulis, dan men-debug skrip python). Artinya, penggunaan skrip harus menghemat waktu, dan tidak membuang waktu untuk otomatisasi proses satu kali (yaitu, ketika skrip unik dan tidak akan ada lagi pengulangan). Tetapi jika skrip itu unik dan otomatisasi dengan skrip dan menulis / men-debug skrip membutuhkan waktu lebih sedikit daripada melakukannya dengan cara lain (mungkin, jendela perintah), maka skrip adalah solusi terbaik.
Men-debug skrip. Skrip tumbuh secara bertahap, proses debug berlangsung pada perangkat pertama, kedua, ketiga, dan pada keempat skrip kemungkinan besar akan beroperasi penuh.
Menjalankan skrip (dengan memasukkan nama pengguna+kata sandi) dengan mouse biasanya lebih cepat daripada menyalin Nama Pengguna dan Kata Sandi dari notepad. Tapi tidak aman dari sudut pandang keamanan.
Contoh (nyata) lain saat menggunakan skrip: Anda tidak memiliki akses langsung ke peralatan jaringan. Tetapi ada kebutuhan untuk mengonfigurasi semua peralatan jaringan (bawa ke sistem pemantauan, konfigurasikan Nama Pengguna/kata sandi/snmpv3nama pengguna/kata sandi tambahan). Ada akses saat Anda pergi ke sakelar Inti, dari situ Anda membuka SSH ke peralatan lain. Mengapa Anda tidak bisa menggunakan Ansible. - Karena kami mengalami batasan jumlah sesi simultan yang diizinkan pada peralatan jaringan (baris vty 0 4, antarmuka pengguna vty 0 4) (pertanyaan lain adalah bagaimana memulai peralatan berbeda di Ansible dengan lompatan pertama SSH yang sama).
Skrip mengurangi waktu selama operasi yang lama - misalnya, menyalin file melalui FTP. Setelah penyalinan selesai, skrip segera mulai bekerja. Seseorang perlu melihat akhir penyalinan, lalu menyadari akhir penyalinan, lalu masukkan perintah yang sesuai. Skrip melakukannya secara objektif lebih cepat.
Skrip berlaku jika tidak mungkin menggunakan alat pengiriman data massal: Konsol. Atau ketika beberapa data untuk peralatan itu unik: nama host, alamat ip manajemen. Atau saat menulis program dan melakukan debug lebih sulit daripada menambahkan data yang diterima dari peralatan saat skrip sedang berjalan. - Contoh dengan skrip untuk menentukan rute, ketika setiap peralatan memiliki alamat IP sendiri dari penyedia Internet. (Rekan-rekan saya menulis skrip seperti itu - ketika pembicaraan DMVPN lebih dari 3. Itu perlu untuk mengubah pengaturan DMVPN).
Studi Kasus: Mengonfigurasi Pengaturan Awal pada Switch Baru Menggunakan Port Konsol:
A. Memasang kabel konsol ke perangkat.
B. Jalankan skrip
B. Menunggu eksekusi skrip
D. Memasang kabel konsol ke perangkat berikutnya.
E. Jika sakelar bukan yang terakhir, lanjutkan ke langkah B.
Sebagai hasil dari pekerjaan skrip:
kata sandi awal diatur pada peralatan.
Nama pengguna dimasukkan
alamat IP unik perangkat dimasukkan.
PS operasi harus diulang. Karena ssh Default tidak dikonfigurasi/dinonaktifkan. (Ya, ini adalah kesalahan saya.)
Contoh skrip panjang, dengan dua kueri: Nama host dan alamat IP. Itu dibuat untuk peralatan presetting melalui konsol (9600 baud). Dan juga menyiapkan koneksi peralatan ke jaringan.
Skrip seperti itu biasanya tidak diperlukan, tetapi jumlah perlengkapannya adalah 15 buah. Memungkinkan penyiapan lebih cepat. Lebih cepat mengatur peralatan menggunakan jendela Perintah SecureCRT.
Menyiapkan akun untuk ssh.
Contoh lain. Konfigurasi juga melalui konsol.
# $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()
Tentang SecureCRT:Perangkat lunak berbayar: mulai $99 (harga terkecil hanya untuk SecureCRT selama satu tahun) Website resmi
Lisensi perangkat lunak dibeli sekali, dengan dukungan (untuk pembaruan), kemudian perangkat lunak digunakan dengan lisensi ini untuk waktu yang tidak terbatas.
Bekerja pada sistem operasi Mac OS X dan Windows.
Ada dukungan skrip (artikel ini)
Ada Jendela Perintah
Sistem Operasi Serial/Telnet/SSH1/SSH2/Shell