Hướng dẫn n x in python

Bỏ để qua phần nội dung

Hướng dẫn n x in python
Tự động hóa mạng Cisco NX-OS bằng Python
Hướng dẫn n x in python

Tự động hóa mạng

  • Quy trình sử dụng phần mềm để tự động hóa việc cung cấp mạng, kiểm tra, triển khai và quản lý mạng
  • Để giúp tối đa hóa hiệu quả và chức năng mạng
  • Mạng phức tạp và cồng kềnh về bản chất
  • Hoạt động thủ công - nhiều sự chậm trễ hơn
  • Tự động hóa làm cho mạng nhanh nhẹn hơn và phản ứng nhanh hơn với các thay đổi
  • Lợi ích:
  • Cải thiện hiệu quả hoạt động
  • Giảm lỗi

Kiến trúc tự động hóa mạng
Hướng dẫn n x in python

Khả năng lập trình mạng
Hướng dẫn n x in python

  • Đó là một bộ công cụ để triển khai, quản lý và khắc phục sự cố thiết bị mạng
  • Quan điểm của kỹ sư mạng - tương tác với một thiết bị hoặc một nhóm thiết bị
  • Quan điểm của nhà phát triển phần mềm - trừu tượng hóa mạng. Xem toàn bộ mạng như một thiết bị duy nhất và thao tác với nó bằng phần mềm

Lợi ích của khả năng lập trình mạng

  • OPEX giảm
  • Tùy biến
  • Giảm thiểu lỗi của con người
  • Hoạt động linh hoạt
  • Tăng cơ hội đổi mới

Giao diện lập trình ứng dụng (API)
Hướng dẫn n x in python

  • API là các cơ chế được sử dụng để giao tiếp với các ứng dụng và phần mềm khác.
  • Một API có thể thực hiện các chức năng khác nhau dựa trên vị trí của chúng trong luồng
  • Được sử dụng để giao tiếp với các thành phần khác nhau của mạng thông qua phần mềm
  • API thường là API RESTful

API chuyển trạng thái đại diện (REST)

  • API sử dụng REST thường được gọi là API RESTful
  • Các API RESTful sử dụng các phương thức Giao thức truyền siêu văn bản (HTTP) để thu thập và thao tác dữ liệu.
Hàm HTTP Hoạt động
GET Đọc
POST Tạo
Cập nhật / Sửa đổi
PUT Cập nhật / Thay thế
DELETE Xóa bỏ

Mã trạng thái HTTP

TRẠNG THÁI HTTP

MÃKẾT QUẢ LÝ DO PHỔ BIẾN 200 Ok Sử dụng GET hoặc POST để trao đổi dữ liệu với

một API201 Tạo Tạo tài nguyên bằng cách sử dụng lệnh gọi REST API 400 Yêu cầu xấu Yêu cầu không thành công do sự cố phía máy khách 401 Không được phép Khách hàng không được xác thực để truy cập trang web hoặc

Lệnh gọi API403 cấm Quyền truy cập không được cấp dựa trên được cung cấp

Credentials404 Không tìm thấy Trang tại HTTP URL vị trí không tồn tại

hoặc bị ẩn

Netmiko Hếtview

  • Netmiko - Thư viện Python được sử dụng rộng rãi để tương tác với các thiết bị mạng
  • Thư viện nhiều nhà cung cấp
  • Cisco IOS / IOS-XE, NX-OS, tường lửa, v.v.
  • Hỗ trợ mở rộng chức năng SSH của thư viện Paramiko
  • Đi vào chế độ cấu hình
  • Gửi lệnh
  • Truy xuất đầu ra
  • Quan tâm đến lời nhắc có / không

NAPALM Hếtview

  • NAPALM - Tự động hóa mạng và lớp trừu tượng khả năng lập trình với sự hỗ trợ của nhiều nhà cung cấp
  • Cung cấp các chức năng cho phép:
  • Hoạt động cấu hình (cam kết hoặc khôi phục)
  • Truy xuất dữ liệu trạng thái từ các thiết bị mạng
  • Chứa các phương pháp để thiết lập kết nối với các thiết bị mạng
  • Có thể hoạt động kết hợp với các công cụ tự động hóa - Ansible
  • Có hỗ trợ cho các hệ điều hành mạng khác nhau:
  • IOS, IOS-XR, NX-OS, JunOS, EOS, v.v.
Hoạt động NAPALM
  • Thay thế - Cho phép người dùng thay thế cấu hình đang chạy hiện có bằng một cấu hình hoàn toàn mới.
  • Hợp nhất - Cho phép người dùng hợp nhất các thay đổi cấu hình từ một file vào cấu hình đang chạy trên thiết bị.
  • So sánh - So sánh cấu hình mới được đề xuất với cấu hình hiện có. Chỉ áp dụng cho hoạt động thay thế và không áp dụng cho hoạt động hợp nhất.
  • Hủy bỏ - Đặt lại cấu hình hợp nhất file trống rỗng file. Do đó, không cho phép cấu hình mới được áp dụng trên thiết bị.
  • Cam kết - Cam kết cấu hình được đề xuất cho thiết bị mạng. Nói cách khác, được sử dụng để triển khai nhưtagcấu hình ed.
  • Rollback - Khôi phục (hoàn nguyên trở lại) cấu hình đang chạy về cấu hình đã lưu được cấu hình trước lần cam kết cuối cùng.

Templating với Jinja2

  • Jinja là một ngôn ngữ tạo khuôn mẫu hiện đại cho Python - Được mô phỏng theo các mẫu Django
  • Cho phép người dùng dễ dàng tương tác với chương trình Python
  • Sử dụng dữ liệu để nhanh chóng tạo nội dung động
  • Lợi ích:
  • Kế thừa mẫu
  • Biên dịch đúng lúc tối ưu
  • Khả năng gỡ lỗi dễ dàng
  • Cú pháp có thể định cấu hình
  • Thường được sử dụng với web các khuôn khổ như Flask
  • Công cụ quản lý cấu hình - Ansible, Nornir, v.v.

Dấu phân cách
Hướng dẫn n x in python
Nornir hơnview

  • Khung tự động hóa dựa trên Python
  • Quản lý khoảng không quảng cáo mạng và máy chủ lưu trữ và cung cấp khuôn khổ chung để viết plugins cho các thiết bị mạng và máy chủ
  • Yêu cầu phiên bản Python tối thiểu 3.6.2
  • Đa luồng - Mặc định là 20 luồng công nhân
  • Khởi tạo bằng cách sử dụng cấu hình file - vài tài liệu tham khảo khác files
  • Lưu trữ khoảng không quảng cáo file
  • Nhóm file
  • Tất cả những files được viết ở định dạng YAML

Nornir Advantages

  • Python hoặc Golang (Gornir)
  • Sử dụng lại các thư viện hiện có - napalm, netmiko
  • Lọc máy chủ nhanh dựa trên bất kỳ thuộc tính nào hoặc kết hợp các thuộc tính
  • Rất nhanh do sử dụng các chủ đề
  • Có thể được sử dụng để xây dựng các công cụ tự động hóa có độ linh hoạt cao và có thể mở rộng bằng cách sử dụng Flask, Django, v.v.
  • Tự động thực hiện bộ nhớ đệm và đóng các kết nối đang mở

Tài nguyên bổ sung và tài liệu tham khảo

Tin tức Báo chí của Cisco

Các nguyên tắc cơ bản về tự động hóa và lập trình mạng [Tìm hiểu thêm] Hướng dẫn chính thức về CCNP và CCIE Security Core SCOR 350-701
https://www.ciscopress.com/store/ccnp-and-ccie-security-core-scor-350-701-official-cert-9780135971970

Hướng dẫn Nghiên cứu về Cisco DevNet Professional DEVCOR 350-901
https://www.ciscopress.com/store/cisco-devnet-professional-devcor-350-901-study-guide-9780137500048

Hướng dẫn n x in python

Các nguồn hữu ích khác:
Liênview với Vinit Jain, Nhà đóng góp sự kiện hàng đầu của Cisco
https://community.cisco.com/t5/networking-documents/interview-with-vinit-jain-cisco-s-top-events-contributor/ta-p/3156059
Các ấn phẩm của Vinit
http://www.ciscopress.com/authors/bio/255ee209-1418-4938-9a42-d3bece2b46c6

Tài liệu / Nguồn lực