Pyang là gì? Công cụ không thể thiếu khi làm việc với YANG, NETCONF và OpenConfig
Trong thế giới Network Automation và Model-Driven Programmability, việc đọc trực tiếp các file YANG thường không hề dễ dàng. Một module YANG có thể chứa hàng trăm hoặc hàng nghìn dòng định nghĩa dữ liệu. Đây là lúc Pyang trở thành công cụ cực kỳ hữu ích.
Pyang là một trình phân tích và kiểm tra (validator) dành cho các mô hình YANG, hỗ trợ các chuẩn RFC 6020 và RFC 7950. Ngoài việc xác thực cú pháp, Pyang còn có khả năng chuyển đổi YANG sang nhiều định dạng khác nhau thông qua hệ thống plugin mở rộng.
Trang chủ:
https://pypi.org/project/pyang/
Vai trò của Pyang
Khi tải một file YANG từ Cisco, Juniper, Arista hoặc OpenConfig, chúng ta thường cần:
Pyang giúp thực hiện tất cả các công việc trên.
Ví dụ trên hình
Lệnh:
pyang -f tree openconfig-interfaces.yang
Tham số:
-f tree
yêu cầu Pyang hiển thị mô hình dưới dạng cây (tree view).
Kết quả cho thấy cấu trúc của module:
module: openconfig-interfaces
+--rw interfaces
+--rw interface* [name]
+--rw config
+--ro state
Trong đó:
Phân tích cấu trúc Interface
Phần cấu hình:
+--rw config
+--rw name
+--rw type
+--rw mtu
+--rw enabled
Cho biết người quản trị có thể cấu hình:
Ví dụ RESTCONF:
{
"openconfig-interfaces:config": {
"name": "GigabitEthernet1",
"enabled": true,
"mtu": 1500
}
}
Phần State
+--ro state
+--ro ifindex
+--ro admin-status
Đây là các thông tin vận hành do thiết bị cung cấp.
Ví dụ:
Các trường này chỉ có thể đọc, không thể cấu hình.
Cài đặt Pyang
Linux:
pip install pyang
Kiểm tra:
pyang --version
Một số định dạng xuất hữu ích
Hiển thị dạng cây:
pyang -f tree module.yang
Sinh UML:
pyang -f uml module.yang
Sinh tài liệu dạng HTML:
pyang -f jstree module.yang
Kiểm tra lỗi cú pháp:
pyang module.yang
Tại sao DevNet Engineer cần biết Pyang?
Khi làm việc với:
thì việc đọc hiểu YANG là kỹ năng bắt buộc.
Pyang giống như lệnh show run dành cho thế giới YANG. Thay vì phải đọc hàng nghìn dòng định nghĩa, bạn có thể nhanh chóng hình dung toàn bộ cấu trúc dữ liệu của thiết bị chỉ bằng một lệnh.
Đối với các kỹ sư Network Automation, DevNet và Infrastructure Automation, Pyang là một trong những công cụ cơ bản nhất cần có trong bộ công cụ làm việc hằng ngày.
Trong thế giới Network Automation và Model-Driven Programmability, việc đọc trực tiếp các file YANG thường không hề dễ dàng. Một module YANG có thể chứa hàng trăm hoặc hàng nghìn dòng định nghĩa dữ liệu. Đây là lúc Pyang trở thành công cụ cực kỳ hữu ích.
Pyang là một trình phân tích và kiểm tra (validator) dành cho các mô hình YANG, hỗ trợ các chuẩn RFC 6020 và RFC 7950. Ngoài việc xác thực cú pháp, Pyang còn có khả năng chuyển đổi YANG sang nhiều định dạng khác nhau thông qua hệ thống plugin mở rộng.
Trang chủ:
https://pypi.org/project/pyang/
Vai trò của Pyang
Khi tải một file YANG từ Cisco, Juniper, Arista hoặc OpenConfig, chúng ta thường cần:
- Kiểm tra file YANG có hợp lệ hay không
- Phân tích cấu trúc dữ liệu bên trong
- Xem các container, list, leaf và kiểu dữ liệu
- Sinh tài liệu từ YANG
- Hiểu được dữ liệu NETCONF hoặc RESTCONF cần gửi
Pyang giúp thực hiện tất cả các công việc trên.
Ví dụ trên hình
Lệnh:
pyang -f tree openconfig-interfaces.yang
Tham số:
-f tree
yêu cầu Pyang hiển thị mô hình dưới dạng cây (tree view).
Kết quả cho thấy cấu trúc của module:
module: openconfig-interfaces
+--rw interfaces
+--rw interface* [name]
+--rw config
+--ro state
Trong đó:
- rw = read-write (có thể cấu hình)
- ro = read-only (chỉ đọc)
- interface* [name] = danh sách interface, khóa là trường name
Phân tích cấu trúc Interface
Phần cấu hình:
+--rw config
+--rw name
+--rw type
+--rw mtu
+--rw enabled
Cho biết người quản trị có thể cấu hình:
- Tên interface
- Loại interface
- MTU
- Trạng thái enable/disable
- Description
Ví dụ RESTCONF:
{
"openconfig-interfaces:config": {
"name": "GigabitEthernet1",
"enabled": true,
"mtu": 1500
}
}
Phần State
+--ro state
+--ro ifindex
+--ro admin-status
Đây là các thông tin vận hành do thiết bị cung cấp.
Ví dụ:
- Interface Index
- Trạng thái quản trị
- MTU thực tế
- Trạng thái hoạt động
Các trường này chỉ có thể đọc, không thể cấu hình.
Cài đặt Pyang
Linux:
pip install pyang
Kiểm tra:
pyang --version
Một số định dạng xuất hữu ích
Hiển thị dạng cây:
pyang -f tree module.yang
Sinh UML:
pyang -f uml module.yang
Sinh tài liệu dạng HTML:
pyang -f jstree module.yang
Kiểm tra lỗi cú pháp:
pyang module.yang
Tại sao DevNet Engineer cần biết Pyang?
Khi làm việc với:
- NETCONF
- RESTCONF
- OpenConfig
- Cisco IOS-XE
- Cisco NX-OS
- Cisco NSO
- Yang Suite
thì việc đọc hiểu YANG là kỹ năng bắt buộc.
Pyang giống như lệnh show run dành cho thế giới YANG. Thay vì phải đọc hàng nghìn dòng định nghĩa, bạn có thể nhanh chóng hình dung toàn bộ cấu trúc dữ liệu của thiết bị chỉ bằng một lệnh.
Đối với các kỹ sư Network Automation, DevNet và Infrastructure Automation, Pyang là một trong những công cụ cơ bản nhất cần có trong bộ công cụ làm việc hằng ngày.