Bỏ để qua phần nội dung Tự động hóa mạng Cisco NX-OS bằng
PythonTự độ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ạngKhả năng lập trình
mạng
- Đó 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)- 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
| VÁ
| Cập nhật / Sửa đổi
| PUT
| Cập nhật / Thay thế
| DELETE
| Xóa bỏ
|
Mã trạng thái HTTPTRẠ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áchNornir 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ảoTin tức Báo chí của CiscoCá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
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 |