Tin tức CÔNG TY CỔ PHẦN DỊCH VỤ CÔNG NGHỆ DATECH
Danh sách nội dung [Ẩn]
Hiểu về các script tự động hóa Python cho thiết bị Junos
Bên cạnh SLAX và XSLT, bạn có thể tạo và thực thi các script Python trên các thiết bị Junos có hỗ trợ gói mở rộng Python trong image phần mềm. Python là một ngôn ngữ mạnh mẽ, giàu tính năng, sở hữu hệ thống thư viện phong phú, cho phép bạn xây dựng các script tùy chỉnh. Bảng 1 liệt kê các phiên bản Python có sẵn trên thiết bị chạy Junos OS, đồng thời ghi chú phiên bản phát hành mà trong đó hỗ trợ cho phiên bản Python đó được bổ sung hoặc loại bỏ đối với một số loại script nhất định.
Bảng 1: Các phiên bản Python trên các thiết bị chạy Junos OS.
| Các phiên bản Python | Phiên bản phát hành | Thay đổi | Các loại script bị ảnh hưởng |
| Python 2.7.x | Junos OS Release 16.1R1 and later | Support added | Commit, event, op, and SNMP scripts Juniper Extension Toolkit (JET) scripts YANG action and translation scripts |
| Junos OS Release 20.2R1 and later | Support removed | YANG action and translation scripts | |
| Junos OS Release 21.1R1 and later | Support removed | Commit, event, op, and SNMP scripts Juniper Extension Toolkit (JET) scripts | |
| Junos OS Evolved Release 22.3R1 and later | Support removed | Commit, event, op, and SNMP scripts Juniper Extension Toolkit (JET) scripts YANG action and translation scripts | |
| Python 3.x | Junos OS Release 19.4R1 and later | Support added | Commit, event, op, and SNMP scripts |
| Junos OS Release 20.2R1 and later | Support added | Juniper Extension Toolkit (JET) scripts YANG action and translation scripts | |
| Junos OS Evolved Release 21.1R1 and later | Support added See Feature Explorer for supported platforms. | Commit, event, op, and SNMP scripts Juniper Extension Toolkit (JET) scripts YANG action and translation scripts |
**Lưu ý: Python 2.7 đã kết thúc vòng đời (end-of-life) và ngừng hỗ trợ vào ngày 1 tháng 1 năm 2020. Lộ trình nâng cấp chính thức cho Python 2.7 là chuyển sang Python 3. Chúng tôi khuyến nghị bạn nên di chuyển các loại script được hỗ trợ từ Python 2 sang Python 3.
Các script Python có thể tận dụng tất cả tính năng và cấu trúc của ngôn ngữ Python, mang lại sự linh hoạt vượt trội so với SLAX và XSLT, đồng thời cho phép bạn thực hiện những tác vụ khó hoặc không thể thực hiện bằng SLAX và XSLT.
SLAX và XSLT được thiết kế để xử lý dữ liệu XML, trong khi Python có thể xử lý mọi định dạng dữ liệu.
Python hỗ trợ danh sách lớn các kiểu dữ liệu, bao gồm list, dictionary, set, và tuple, và nhiều biến trong Python là mutable (có thể thay đổi giá trị), khác với nhiều biến trong SLAX và XSLT.
Script SLAX và XSLT có khả năng điều khiển vòng lặp hạn chế, nhưng script Python có thể sử dụng các lệnh như break và continue để điều khiển vòng lặp một cách chính xác.
Python hỗ trợ mạnh mẽ thao tác với file và cho phép bạn gọi trình gỡ lỗi chuẩn (debugger) của Python trực tiếp từ dòng lệnh để debug các script vận hành (op script).
Ngoài ra, Junos OS hỗ trợ các tính năng sau trong script Python:
Thư viện Junos PyEZ — đơn giản hóa việc thực thi RPC và thực hiện các tác vụ vận hành hoặc cấu hình trên thiết bị chạy Junos OS.
Thư viện lxml — đơn giản hóa việc xử lý XPath.
Thư viện Jinja2 — công cụ template giúp tạo nội dung từ các mẫu định sẵn, hữu ích khi tạo dữ liệu cấu hình Junos OS.
IPv6 — bắt đầu từ Junos OS phiên bản 19.3R1, các thiết bị Junos OS (với FreeBSD đã nâng cấp) hỗ trợ IPv6 trong script tự động hóa Python.
Routing instance không mặc định — bắt đầu từ Junos OS phiên bản 19.3R1, script Python trên thiết bị được hỗ trợ có thể sử dụng hàm mở rộng set_routing_instance() để kết nối đến thiết bị từ xa thông qua routing instance không mặc định.
Các module Python bổ sung — để biết các module khả dụng cho script Python trên thiết bị Junos OS, xem Overview of Python Modules on Junos Devices.
Để ngăn chặn việc thực thi mã Python trái phép trên thiết bị chạy Junos OS, các script Python không được ký (unsigned) phải đáp ứng một số yêu cầu nhất định trước khi được thực thi. Chi tiết yêu cầu, xem Requirements for Executing Python Automation Scripts on Junos Devices.
Để thực thi script Python không được ký với Python 2.7 hoặc Python 3, bạn phải cấu hình câu lệnh language python hoặc language python3 tương ứng tại cấp cấu hình [edit system scripts]. Nếu cấu hình language python3, thiết bị sẽ dùng Python 3 để chạy các script hỗ trợ Python 3, và dùng Python 2.7 để chạy các script không hỗ trợ Python 3 trong phiên bản Junos OS hiện tại (xem Bảng 1).
Đối với script JET, bạn phải cấu hình phiên bản câu lệnh phù hợp với phiên bản Python mà script hỗ trợ. Ví dụ: nếu bạn cấu hình language python3 cho một script JET chỉ hỗ trợ Python 2.7, bạn sẽ gặp lỗi runtime error khi thực thi script.
Các thiết bị chạy Junos OS có hỗ trợ script tự động hóa Python bao gồm các module sau, có thể import vào script commit, event, op và SNMP:
Module jcs — cung cấp quyền truy cập đến một tập hợp con các hàm mở rộng (extension functions) và template sẵn có cho script SLAX và XSLT.
Để biết thêm thông tin về các hàm mở rộng và template trong Junos OS, xem: Understanding Extension Functions in Junos OS Automation Scripts và Understanding Named Templates in Junos OS Automation Scripts.
Module junos — chứa class Junos và các dữ liệu đầu vào cho script được liệt kê trong Bảng 2.
Bảng 2: Các đối tượng (Objects) trong module junos
| Đối tượng Python | Kiểu dữ liệu | Loại script | Mô tả | Tương đương trong XSLT/SLAX |
|---|---|---|---|---|
| Junos_Context | Dictionary | Commit, Event, Op | Thông tin cụ thể của thiết bị về môi trường thực thi script, ví dụ như hostname của thiết bị, loại script, và người dùng đang thực thi script. | commit-script-input/junos-contextevent-script-input/junos-contextop-script-input/junos-context |
| Junos_Configuration | lxml.etree _Element | Commit | Cấu hình ứng viên (candidate configuration) sau khi áp dụng kế thừa, ở định dạng Junos XML. | commit-script-input/configuration |
| Junos_Trigger_Event | lxml.etree _Element | Event | Chi tiết của sự kiện đã kích hoạt chính sách sự kiện (event policy) tương ứng. | event-script-input/trigger-event |
| Junos_Received_Events | lxml.etree _Element | Event | Chi tiết các sự kiện đã được liên kết (correlated) xảy ra trước sự kiện kích hoạt. | event-script-input/received-events |
| Junos_Remote_Execution_Details | Hàm generator tạo ra một chuỗi các thiết bị từ xa | Event | Thông tin kết nối cho host cục bộ hoặc từ xa được cấu hình cho event script tại cấp cấu hình [edit event-options event-script file filename remote-execution]. | event-script-input/remote-execution-details |
Để biết thông tin chi tiết về các loại dữ liệu đầu vào (script inputs) khác nhau cũng như cách import và sử dụng chúng trong các script tự động hóa, hãy xem:
Bảng 3 liệt kê các tài nguyên giúp bạn tạo và thực thi script Python trên các thiết bị chạy Junos OS. Bảng 4 liệt kê tài nguyên cho từng loại script khác nhau.
Bảng 3: Tài nguyên chung
| Tài nguyên | Tài liệu |
|---|---|
| Yêu cầu thực thi script Python | Requirements for Executing Python Automation Scripts on Junos Devices (Yêu cầu thực thi script tự động hóa Python trên thiết bị Junos) |
| Các module Python trên thiết bị chạy Junos OS | Overview of Python Modules on Junos Devices (Tổng quan về các module Python trên thiết bị Junos) |
| Hỗ trợ IPv6 trong script Python | IPv6 Support in Python Automation Scripts (Hỗ trợ IPv6 trong script tự động hóa Python) |
| Tài liệu Junos PyEZ | Junos PyEZ |
| Tài liệu ngôn ngữ lập trình Python | https://www.python.org/ |
Bảng 4: Tài nguyên theo từng loại script
| Loại script | Tài liệu |
|---|---|
| Script commit, event, op và SNMP trong Junos OS | Junos OS Automation Scripting User Guide (Hướng dẫn sử dụng script tự động hóa Junos OS) |
| Script Juniper Extension Toolkit (JET) | Juniper Extension Toolkit documentation (Tài liệu Juniper Extension Toolkit) |
| Script hành động và dịch YANG | NETCONF XML Management Protocol Developer Guide (Hướng dẫn phát triển giao thức quản lý NETCONF XML) |
Để cập nhật thêm nhiều thông tin hữu ích và các sản phẩm thiết bị mạng và các sản phẩm công nghệ mạng vui lòng liên hệ với chúng tôi qua thông tin dưới đây:
CÔNG TY CỔ PHẦN DỊCH VỤ CÔNG NGHỆ DATECH