Linux ile Cisco Cihazlarda Otomatik Yedek Alma

080820_2012_LinuxileCis4.png

Merhaba, bugün Cisco cihazlarının kaydedilmiş ayarlarının bulunduğu Startup-config dosyasının otomatik olarak nasıl yedeğinin alınacağına değineceğiz. Ben Cisco cihaz üzerine kodları yazdım ama siz istediğiniz cihaza göre ayarlayabilirsiniz. Başlamadan önce bir TFTP Server ihtiyacımız olacaktır. Ben TFTP Server anlatmayacağım ama ufak bir aramayla Linux ve Windows ortamlarında çokça kaynak bulabilirsiniz.

Cisco cihazlarda Startup-Config yedeğini almak için “copy startup-config tftp:” komutunu çalıştırdığımızda bizden TFTP Serverın Ip adresini ve hangi isimde kaydetmek istediğimizi sorar ve kopyalamaya başlar.

Resim-1

Bu işi otomatikleştirmeyi Cisco cihazlar üzerinden de planlayabiliriz.


Resim-2

Elimizde 100 lerce cihazın olduğunu düşürsek ve her gün yedek almak istersek tek tek bu işlemi yapmak hayli zaman alacaktır. Bu işi yapan ücretli daha gelişmiş uygulamalar bulunmaktadır ama bu basit ve ücretsiz bir yoldur.

Cihazların yedek alırken kullanıcıdan etkileşim halinde olup soruduğu sorulara cevap beklemesini otomatik hala getirmek için “expect” komutundan yararlanacağız. Kurmak için;

  • apt install expect

veya

  • dnf install expect

komutu ile kurulumu gerçekleştirebiliriz.

Kurulum bittik den sonra https://github.com/4opensource/Cisco-Device-Config-Backup adresinden dosyaları indirelim. Forklamak isteyen olursa da çok memnun olurum

3 adet dosyamız var.

Resim-3

  1. Device.list – Cihazlarımızın IP adreslerini yazacağımız dosya.
  2. Configuration.sh – Expect komutunun çalıştığı cihazlara bağlanıp cihazla etkileşime giren dosyamız.
  3. Run.sh – Device.list deki Ip adreslerini tek tek Expect komutuna gönderen ve daha sonra tüm dosyaları sıkıştıran dosyamız.

Resim-4

Topolojimizde 3 adet cihazımız var. Bu 3 cihazın Ip Adreslerini device.list adlı dosyamızın içinde yazanları silip cihazlarımın IP Adreslerini yazıyorum.

Resim-5

Resim-6

configuration.sh dosyası ve run.sh doyası çalıştırılabilir bir dosya olmalıdır.

Resim-7

Chmod u+x configration.sh run.sh

Komutu ile gerekli yetkileri veriyoruz.

Configuration.sh dosyasında

Resim-8

Username = ssh ile cihazlarımıza bağlandığımız kullanıcı adı.

Password = ssh ile cihazlarımıza bağlandığımız şifre.

mybackup = Loglarımızın alınacağı dosya yolu.

172.16.16.129 = TFTP Server Ip adresi.

Yapılan işlemi açıklayacak olursak, İlk cihaza bağlandığımızda bağlanılan cihazın Ip Adresini ve Tarihi log dosyasına yazıyor.

ssh ile ilgili cihazımıza bağlanıyoruz.

Expect “*assword” cihaz bizden parolamızı yazmamızı soyluyor bizde send “$password\r” ile parolamızı gönderiyoruz.

Expect ile yazılan satırlar cihazlarımızın bize sorduğu sorular send ise bizim cihazlarımıza verdiğimiz cevaplardır. Ben burada yedek aldım siz farklı cihazlara farklı işler yaptıra bilirisiniz. Mantık expect ile cihazlarımızın sorduğu sorular send ise bizim cevaplarımız olduğudur.

Run.sh dosyası


Resim-9

mybackup= Loğlarımızın alınacağı dosya yolu

backupSrc= Startup-config dosyalarımızın kopyalandığı yoldur.

backupDst= Cihazlardan aldığımız Startup-config dosyalarının nereye sıkıştırılıp arşivleneceği dosya yoludur.

Komutları açıklayacak olursak,

İlk fonksiyonumuz device.list dosyasını tek tek okuyup $device adlı değişkene atıyor ve configrasyon.sh dosyasına argüman olarak atıyor.

İkinci fonksiyonumuzda aldığımız konfigürasyon dosyalarını sıkıştırıp yedekliyor.

Resim-10

Run.sh çalıştırdığımızda tek tek cihazlara bağlanıp Startup-config dosyalarını kopyalıyor.

Resim-11

Yedeklerimizi aldığımız dosya yoluna baktığımızda tar.gz ile sıkıştırılmış bir dosyamız vardır. İçeriğine baktığımızda Startup-config dosyalarının ismi cihaz IP Adresleriyle değiştirilmiş.

Resim-12

Mybackup.log adlı dosyamıza baktığımızda cihazlara bağlanılan zaman aralığı yedeğin başladığı ve bittiği tarih aralığı görülmektedir.

Yedek planınıza göre run.sh Crontaba ekleyerek günlük haftalık aylık yedek alabilirsiniz.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar:
www.mshowto.org

TAGs: expect, Cisco Startup-Config yedek, bash, Linux, Open Source, Cisco Kron policy

Yazı gezinmesi

Mobil sürümden çık