Saya memperkenalkan diri, nama saya Andrey.
Tugas awalnya adalah ini - untuk membuat ratusan konfigurasi untuk Mikrotik, untuk meningkatkan sertifikat pada setiap ovpn, kemudian mengunggah konfigurasi ke ratusan konfigurasi Mikrotik, serta sertifikat dan kunci.
Kata sandi untuk setiap sertifikat adalah unik. Membuat ratusan konfigurasi dengan tangan Anda sendiri adalah omong kosong, dan besok mereka akan memberi tahu Anda untuk membuat yang baru atau Anda ingin mengisi beberapa perubahan lain di Mikrotik.
Apa yang ingin saya capai:
- secara otomatis membuat banyak skrip;
- secara otomatis mengirim mereka ke peralatan yang saya butuhkan;
- untuk memastikan bahwa mereka bekerja tanpa kesalahan atau untuk mengetahui bahwa konfigurasi tidak dijalankan dengan benar.
Menggunakan Bash dan FTP, semuanya berhasil.
Sedikit teoriDi RouterOS, Anda dapat secara otomatis menjalankan skrip (file skrip Anda akan terlihat seperti name.auto.rsc). Setelah file diunggah melalui FTP ke router, itu akan dieksekusi secara otomatis, seperti dengan perintah '/ import' (metode ini hanya berfungsi dengan FTP).
Segera setelah file diunduh, secara otomatis dieksekusi. Informasi tentang keberhasilan eksekusi perintah dicatat dalam nama .auto.log
AWK - bahasa skrip seperti C untuk penguraian baris demi baris dan pemrosesan aliran input (misalnya, file teks) sesuai dengan pola yang ditentukan (ekspresi reguler). Ini dapat digunakan dalam skrip baris perintah.
Expect adalah alat otomatisasi dan pengujian Unix yang ditulis oleh Don Libes sebagai ekstensi ke bahasa skrip Tcl untuk aplikasi interaktif seperti telnet, ftp, passwd, fsck, rlogin, tip, ssh, dan lainnya.
Untuk mulai dengan, saya membuat 3 file:
- File List.txt di dalamnya mencatat nama koneksi OVPN (dalam kasus saya nama toko) dan kata sandi untuk kunci (dipisahkan oleh tab);
- sh1.sh - file bash dengan perintah parsing baris demi baris pada list.txt + pipeline;
- sh2.sh - File bash yang, menggunakan Echo dan variabel, membuat file konfigurasi dan menulis pengaturan kami untuk itu.
Jadi:
vi list.txt gamazin1 pass1 gamazin2 pass2 gamazin3 pass3
vi sh1.sh
vi sh2.sh
Satu peringatan!
$ 1.crt dan $ 1.key membuat mereka terlebih dahulu menggunakan list.txt yang sama, karena ini nama file juga nama toko.
Menciptakan seratus konfigurasi. Sekarang kita perlu mengirim mereka menggunakan AWK dan Expect + FTP yang sama.
Buat 4 file:
- File List2.txt - di dalamnya kita menyimpan data IP Mikrotik | Login | Kata sandi | Nama toko. Dipisahkan oleh tab.
- newsh1.sh - file bash dengan perintah parsing baris demi baris pada list2.txt + pipeline
- newsh2.sh - Mengirim keinginan kami melalui FTP menggunakan paket Expect, yang merespons permintaan konsol.
- $ 1.auto.rsc - file konfigurasi dalam kasus saya, mereka dibuat dari variabel $ 1, yang merupakan nama toko di skrip sebelumnya. Contoh gamazin1.auto.rsc.
vi list2.txt 192.168.1.1 admin password1 gamazin1 192.168.2.1 admin password2 gamazin2 192.168.3.1 admin password3 gamazin3
vi newsh1.sh
Sudo apt-get install expect vi newsh2.sh
Catatan
Pertama, kami mengirim sertifikat dengan kunci, dan kemudian hanya konfigurasi (jika Anda melakukannya dalam urutan terbalik, ia akan mulai bersumpah bahwa tidak ada sertifikat seperti itu).
Konfigurasi dan sertifikat tersebar seperti kue panas. Karena nama .auto.rsc melalui FTP, Mikrotik secara otomatis mengantarnya dan pengaturan kami diterapkan.
Kami ingin tahu bahwa di mana-mana semuanya super, menggunakan konfigurasi di atas kami mengubah 1 baris.
memakai get send \"get $4.auto.log\n\" # .log .rsc
Kami mengunduh semua file ke rumah dan mengurutkannya, di mana 0 byte ukuran file Anda memiliki masalah dengan Mikrotik. Dengan nama file, Anda dapat mengetahui IP-nya dengan file list2.txt kami. Dan dalam versi yang bagus, membuka file, Anda dapat melihat di sana "File skrip dimuat dan dieksekusi dengan sukses".
Anda juga dapat menulis skrip untuk file-file ini, tetapi saya hanya perlu mengurutkan file berdasarkan beratnya.
Saya juga menulis skrip lain, dan setelah semua tindakan ini yang menutup FTP dan sebaliknya, terbuka melalui SSH. Baru saja mengubah FTP ke SSH untuk ...
Kami bermain dengan FTP /ip service set ftp disabled=yes
Saya mencoba mendorong semuanya sekaligus menjadi 1 konfigurasi, tetapi file yang dihapus pada akhir perintah tidak memberikan hasil, tidak dapat menghapus file dari mana saya menerima perintah ini. Masih ada nuansa.
Dan pada akhirnya ... kebahagiaan! Anda dapat mengelola daftar Mikrotik individual atau sekaligus, sesuai keinginan Anda. Sekarang, dengan membuka FTP dan menutup, Anda dapat mengirim perintah dan memastikan bahwa mereka selesai. Tapi pendapat saya lebih nyaman daripada FTP,
SSH tidak jatuh di tengah jalan , karena Anda akan yakin bahwa semuanya berjalan baik dengan melihat di folder log.
Pada artikel ini saya menunjukkan alat-alatnya, tetapi Anda dapat memikirkan bagaimana menggunakannya sendiri ...
Saya melakukan segalanya di Ubuntu 16.04.
Tentang auto.rsc di MikrotikAwkHarapkan