TaMinhTri avatar

Tạ Minh Trí

IT Infrastructure
  • Emailtaminhtri.it@gmail.com
  • Phone+84 961984570
  • Birthday23 March
  • LocationHo Chi Minh, Vietnam

Hướng dẫn backup cấu hình thiết bị Cisco lên TFTP Server tự động bằng Python Code

  •  Ngày nay việc tự động hóa ngày càng phổ biến và giúp tiết kiệm thời gian, nhân lực trong tất cả các ngành nghề. Trong ngành nghề IT chúng ta cũng thế, cụ thể là đối với Network Admin việc backup cấu hình định kì cho các thiết bị mạng chiếm khá nhiều thời gian. Hôm nay mình sẽ hướng dẫn các bạn cách backup cấu hình các thiết bị Cisco bằng cách sử dụng Python Code. Chúng ta cùng bắt đầu thôi nào.

  • Sơ đồ:

1. Yêu cầu:

  • Máy Win sẽ phải cài đặt Python, Solarwinds TFTP để làm TFTP server và chạy Python code để back up cấu hình Router_HCM và Switch_HCM.


  • Router_HCM,Switch_HCM đã được cấu hình SSH( tốt nhất là vesrsion 2). Xem thêm tại đây.


  • Các thiết bị thông mạng với nhau và đảm bảo từ Windows có thể SSH tới các thiết bị Cisco.


2. Viết Script Python để Backup cấu hình cho các thiết bị


  • Trên Windows:

  • Bước 1: Trước khi viết script chúng ta cần phải cài đặt thư viện netmiko bằng cách chạy câu lệnh sau trong cmd:


    pip install netmiko



  • Bước 2: Khởi chạy TFTP Server:



  • Bước 3: Mở trình soạn thảo bất kì ở đây mình sử dụng Sublime Text và nhập các câu lệnh bên dưới:


# khai báo thư viện netmiko và datetime


from netmiko import ConnectHandler

from datetime import datetime

 

#Khai báo thông số các thiết bị Cisco

Router_HCM= {

                     'device_type': 'cisco_ios',

                     'ip': '192.168.1.1',

                     'username': 'admin',

                     'password': 'admin',

                     'verbose': False,

                     }

Switch_HCM={

                     'device_type': 'cisco_ios',

                     'ip': '192.168.1.2',

                     'username': 'admin',

                     'password': 'admin',

                     'verbose': False,

                     }

 

# Khai báo mảng gồm các tất cả các thiết bị đã khai báo ở trên

all_devices=[Router_HCM,Switch_HCM]

 

# Lấy ngày giờ hiện tại

current_time=datetime.now()

current_date=current_time.strftime("%d")

current_month=current_time.strftime("%m")

current_year=current_time.strftime("%Y")

 

#Duyệt từng device trong mảng all_devices

for devices in all_devices:

 

#Kết nối SSH tới thiết bị

 net_connect=ConnectHandler(**devices)


#Chuyển từ Privileged EXEC Mode sang Global Configuration Mode

 net_connect.enable()

 

#Tạo 1 biến command và gán chuỗi bằng câu lệnh để copy về TFTP Server

 command="copy running-config tftp://192.168.1.3/"


#Tạo 1 biến send_bk_command và gọi hàm để thực thi câu lệnh tại biến command ở trên

 send_bk_command = net_connect.send_command_timing(command)


#Đây là bước yêu cầu nhập IP của TFTP Server và đã được khai báo ở trên "Address or name of remote host" chính là thông báo trên giao diện CLI

 if ("Address or name of remote host" in send_bk_command):


# Tạo 1 biến send_Enter và gọi hàm thực thi trong đó "\n" tượng trưng cho xuống dòng (thay thế cho phím Enter)

  send_Enter= net_connect.send_command_timing("\n")


 if ("Destination filename" in send_Enter):

  index1=send_Enter.find("[")+1

  index2=send_Enter.find("]")

  device_hostname=send_Enter[index1:index2]

  send_Filename= net_connect.send_command_timing(device_hostname+"_"+current_date+"_"+current_month+"_"+current_year)

  if ("Error" in send_Filename):

   print (send_Filename)

 print("Success "+device_hostname)


  • Bước 4: Lưu lại dưới định dạng .py


  • Bước 5: Khởi chạy file Python vừa được lưu ở trên trong Command Line để kiểm tra.



  • Và đây là kết quả sau khi chạy.




  • Có thể các bạn để ý là sao ở trên không có file cấu hình Switch được lưu. Đó là vì hiện tại trên Switch demo của mình không có tính năng SSH. Ở đoạn code mình thêm vào Switch để cho các bạn có thể hình dung ra được nếu muốn khai báo nhiều thiết bị thì sẽ code như thế nào.

3. Cài đặt để có thể tự động Backup cấu hình

  • Trên Windows:
  • Bước 1: Để có thể tự động chạy Script backup hằng ngày ta sẽ sử dụng Task Scheduler được tích hợp sẵn.


  • Bước 2: Click phải vào Task Scheduler Library. Chọn Create Basic Task…


  • Bước 3: Đặt tên gọi cho Task. Chọn Next.


  • Bước 4: Chọn tần suất chạy tùy theo nhu cầu. Chọn Next.


  • Bước 5: chọn thời gian bắt đầu chạy task này.


  • Bước 6: Chỉ định task này sẽ làm gì. Do ta cần chạy Script nên chọn Start a program.


  • Bước 7: Chọn đường dẫn tới script.



  • Bước 8: Chọn Finish để hoàn tất cài đặt.


  • Vậy là ta đã hoàn tất Backup cấu hình thiết bị Cisco lên TFTP tự động sử dụng ngôn ngữ lập trình Python.


  • Chúc các bạn thành công!


Author: Trí Tạ


Nhận xét

Tìm kiếm Blog này