Klarifikasi: solusi ini dikonfigurasi untuk D-Link DFL, cisco 29xx dan WatchGuard Firebox, tetapi cocok untuk semua yang dapat dicadangkan saat menghubungkan melalui ssh dan / atau mengunggahnya sesuai jadwal / acara ke server ftp / tftp.
Semuanya dimulai ketika teman saya programmer bertanya: "Mengapa Anda tidak menyimpan konfigurasi jaringan dalam sistem kontrol versi?" Dan kebenaran - saya pikir - mengapa? Sebagian besar file konfigurasi dapat diunduh dalam format teks (tentu saja ini adalah binari, tetapi informasi yang dapat dibaca dibuka dan ditampilkan dalam editor teks).
Di jaringan, kami memiliki sekitar 30 DFL D-Link yang berbeda, selusin Cisco 29xx dan sepasang WatchGuard Firebox. Untuk setiap perangkat, karyawan tingkat administrator dari cabang TI, di mana ia berdiri, ditambah TI dari kantor pusat, memiliki akses tingkat administrator. Ini memerlukan masalah seperti "Saya tidak melakukan pencadangan selama enam bulan dan menghancurkan segalanya, apakah Anda memiliki cadangan kami?" Dan "peralatan yang terbakar cadangan terakhir melakukan admin sebelumnya, saya tidak tahu di mana, konfigurasikan kami seperti sebelumnya". Dan jika cisco sudah secara otomatis me-reset menjalankan-config ke ftp setiap kali disimpan, maka ini tidak terjadi dengan D-Link. Dan sistem kontrol versi akan membantu melacak masalah seperti "Saya tidak ingat apa dan kapan saya mengubahnya, tetapi kami memiliki sesuatu yang digunakan sekali sebulan telah rusak". Regulasi cadangan tidak menyelamatkan Anda dari faktor manusia dan tidak mencadangkan untuk Anda, jadi lebih baik memperingatkan daripada membongkar.
Aku mengakui jujur, sebelum aku duduk untuk menulis posting, aku tidak tahu tentang tengik dan teroksidasi. Tetapi mereka berdua tidak tahu apa yang saya butuhkan secara penuh. Yang pertama diarahkan ke cisco dan tidak bekerja dengan baik dengan eksotis, yang kedua tidak memiliki otorisasi pengguna (meskipun ini dapat dilakukan dengan manipulasi sederhana dengan server web), dan, yang paling penting, keduanya membutuhkan login dan kata sandi ke sistem yang berlebihan. Semua D-link DFL mendukung login ssh. Cisco menggabungkan cadangan itu sendiri dan umumnya tidak memerlukan koneksi ke sana. Karena itu, mengapa tetap membuat kata sandi berubah secara berkala, apalagi, jika Anda dapat masuk menggunakan kunci.
Diputuskan untuk melakukan sesuatu yang cocok untuk saya sendiri.
Sebenarnya, cadangan otomatis meminta untuk waktu yang lama. Tetapi sistem kontrol versi - itu segar.
Jadi, tugasnya: untuk mengumpulkan semua konfigurasi signifikan dari peralatan jaringan di satu tempat dengan dukungan untuk file versi, secara teratur memperbaruinya secara otomatis di sana, untuk memungkinkan administrator di zona waktu lain mengunduhnya dengan cara yang sederhana, tanpa menelepon saya jam 3 pagi. Semua ini tentu saja gratis.Untuk semua DFL, file konfigurasi disebut sama, jadi perlu untuk memberi nama dengan jelas saat menyalin. Saya juga tidak ingin mengkonfigurasi ulang sistem pengisian running-config yang ada untuk ftp dengan cisco.
Pertama, atur sistem kontrol versi
Saya mengambil svn, tk. svn adalah satu-satunya yang populer yang menyimpan binari berbeda, tidak semua file dalam sejarah. Bukan berarti itu penting pada volume kecil, tapi bagus. Secara umum, saya memperhitungkan sejumlah kecil file konfigurasi, yang versi sistem kontrol untuk mengambil - tidak ada perbedaan.
Server Visual SVN diinstal dari
situs resmi menggunakan metode on-the-go-ready. Saya meletakkannya di server di bawah Windows, sehingga lebih mudah bagi kolega untuk mengelola (membuat pengguna, mendistribusikan hak). Selanjutnya, repositori dibuat, bagian yang diperlukan dibuat di dalamnya dan satu-satunya pengguna dengan hak penuh untuk repositori dibuat (untuk saat ini). Di Windows, tindakan selesai.
Cadangan otomatis dibuat oleh saya dari satu mesin Linux (di bawah Debian).
Pertama-tama kita mengatur svn sehingga kita memiliki klien:
sudo apt-get install svn
Sekarang salinan proyek dibuat dengan tangan (dibuat di direktori saat ini):
svn checkout https://servername.mydomain.ru/svn/DFL_BACKUPS/ DFL_BACKUPS --username go
Sekarang saya memiliki tiga bagian di repositori:
- Current_backup, tempat D-Link konfigurasi DFL disimpan dan ditimpa.
- Old_versions, tempat konfigurasi dengan tanggal yang ditentukan disimpan untuk kemudahan pengunduhan oleh administrator cabang.
- Cisco, tempat konfigurasi cisco dan WatchGuard Firebox disimpan (yah, itu terjadi).
Mari kita mulai dengan backup otomatis DFL dan mengatur DFL itu sendiri
Koneksi berlangsung ssh. Agar tidak menyinari kata sandi dalam bentuk terbuka, sepasang kunci publik-swasta digunakan. Pribadi disimpan di server di / usr / dfl_scripts / sshkeys / dfl_key.
Kami membuat sepasang kunci publik-pribadi di server cadangan otomatis:
ssh-keygen –t rsa
yang terbuka dituangkan ke semua DFL dan aturan akses ssh dibuat:


Nah, manajemen jarak jauh yang sesuai diizinkan. Port dari default dapat diubah menjadi, misalnya, 2222, meskipun akses hanya mungkin dari alamat tertentu.

File dengan konfigurasi D-Link DFL saat ini terletak di root dan disebut config.bak, Anda cukup menyalinnya ke diri Anda sendiri menggunakan scp.
Jadi, skrip (saya memotong daftar cabang sehingga tidak ada lembar):
Script dijejalkan ke cron dan berjalan pada pukul 8:30 setiap hari. Seperti inilah bentuk crontab:
30 08 * * * /usr/dfl_scripts/autobackup.sh 30 06 * * * /usr/dfl_scripts/ciscobackup.sh 00 06 * * 1 /usr/dfl_scripts/fireboxbackup.sh
Sekarang tentang cisco
Pada perangkat itu sendiri, sesuatu seperti ini dikonfigurasi:
archive log config logging enable logging size 500 hidekeys path ftp://ftp.mydomain.ru/in/autolog/$H-$T write-memory ip ftp username user ip ftp password mypass ip scp server enable
Akibatnya, perintah tulis-memori me-reset konfigurasi saat ini ke ftp. Ftp saya ada di server yang berbeda dari banyak cadangan otomatis. Ada 2 cara: membuat salinan repositori di server itu dan menambahkan konfigurasi di sana atau menyalin konfigurasi ke server tetangga. Pada dasarnya, seluruh perbedaannya adalah apakah melakukan cp atau scp.
Dalam direktori tempat konfigurasi dengan cisco jatuh, saya meletakkan incron untuk memantau tampilan file. Dengan kemunculan file, saya mengganti nama sebagaimana mestinya dan menyalinnya ke server kolektor cadangan otomatis dalam direktori sementara. Dengan memotong, file dari direktori sementara diunggah ke svn. Secara total, saya memiliki di sistem kontrol versi konfigurasi terbaru untuk waktu tertentu sekali sehari. Menurut pendapat saya, ini sudah cukup, tetapi sistem dapat dimodifikasi tanpa masalah untuk Wishlist apapun.
Konfigurasi incrontab terlihat seperti ini:
/var/ftp/cisco/in/autolog/ IN_CREATE /usr/ftp_scripts/incron_cisco.sh $# $%
Script itu sendiri:
Skrip terjadwal diluncurkan pada server cadangan otomatis sesuai dengan jadwal:
Tampaknya, di sini kita juga berbicara tentang WatchGuard Firebox. Terus terang saya malas membuat direktori terpisah untuk mereka. Jadi cadangan jatuh di ftp ke tempat yang sama dengan cisco. WatchGuard membuat cadangan dalam skrip terpisah setengah jam sebelumnya dan umumnya seminggu sekali. Harap perhatikan bahwa sintaks telah berubah dari firmware versi 12. Sebelumnya, ini bisa dilakukan dengan satu gambar cadangan ke perintah ftp, dan sekarang ekspor telah ditambahkan. Di atasnya, saya tidak bisa mengonfigurasi login melalui ssh by key, jadi kata sandi digunakan.
Binari WatchGuard hanya diekspor yang dienkripsi, sehingga dengan tampilan teks dan diff tidak akan bekerja dengan baik. Perhatikan kunci enkripsi: huruf besar wajib, huruf kecil dan angka, setidaknya 8 karakter. Dalam hal ketidakpatuhan, perintah tidak dieksekusi, itu tidak secara khusus ditunjukkan di mana kesalahan terjadi.
Jadi, semuanya sudah dilakukan. Sekarang kami menempatkan klien di komputer yang berfungsi di bawah Windows. Anda cukup melihat file dan berbeda dari browser, tetapi unduh versi dari revisi tertentu hanya dari klien. Kami menempatkan TorToSiteSVN
dari situs resmi .
Di server, buat pengguna dengan hak yang diperlukan (baca) untuk cabang.
Kemudian Anda harus memasukkan klien melalui menu konteks ke file apa saja dan terhubung ke repositori. Anda tidak perlu membuat salinan repositori sendiri jika Anda tidak berencana untuk melakukan perubahan pada file. Nah, hati-hati dengan ini, Anda harus bekerja dengan salinan melalui sistem kontrol versi, dan tidak hanya dengan sepotong sistem file.


Untuk membuat perbedaan pada file tex non-standar, Anda perlu memastikan bahwa SVN menganggap file-file ini bukan biner, tetapi teks. Seperti ini:
svn propset svn:mime-type text/plain current_backup/*.bak
Jalankan perintah ini, misalnya, di bawah linux dan kemudian komit.
Nah, inilah perubahannya, lihatlah melalui mata. Kami melihat bahwa aturan firewall telah berubah:


Lebih nyaman untuk menonton di browser.

Jika sesuatu terjadi, maka admin dapat mengunduh cadangan yang diinginkan tanpa gerakan yang tidak perlu pada tanggal yang diinginkan.

Meskipun, biasanya, yang terbaru sudah cukup.
Di satu sisi, penemuan sepeda muncul. Tetapi telah bekerja pada D-link DFL selama hampir satu tahun sekarang, persis seperti yang saya butuhkan, dan kadang-kadang itu sangat membantu.
Saya harap seseorang berguna.
Referensi:
Tentang tengikManual WatchGuard Firebox CLIPro teroksidasi