Làm thế nào để mô phỏng và kiểm thử một hệ thống mạng tự động chỉ bằng... một tệp tin?
Chào anh em DevOps, NetDev, Automation Engineer! Trong bài viết hôm nay, mình sẽ chia sẻ một kiến thức cực kỳ thực tế và quan trọng khi làm việc với pyATS – một framework mạnh mẽ để kiểm thử và tự động hóa mạng: Đó chính là Tệp YAML Testbed.
🧠 Tại sao phải quan tâm đến "testbed.yaml"?
Bạn không thể kiểm thử gì nếu không có bản đồ của mạng, đúng không?
Trong thế giới pyATS, tệp testbed.yaml chính là bản đồ đó. Nó định nghĩa:
📘 Cấu trúc tệp testbed.yaml gồm 3 phần chính:
1. testbed:
Thông tin chung của testbed như tên, alias, thông tin server hỗ trợ, credential mặc định,... (tùy chọn).
Ví dụ:
testbed: name: sampleTestbed credentials: default: username: admin password: %ASK{}
2. devices:
Chi tiết từng thiết bị: hostname, loại OS (iosxe, iosxr,...), nền tảng (csr1000v, n9k,...), và thông tin kết nối.
Ví dụ:
devices: R1_xe: os: iosxe type: router platform: csr1000v connections: cli: protocol: ssh ip: 192.168.1.1
📝 Tips:
3. topology:
Mô tả các giao diện và cách chúng kết nối với nhau (ai nối với ai, qua interface nào).
Ví dụ:
topology: R1_xe: interfaces: GigabitEthernet3: ipv4: 10.0.0.1/24 link: n1 R2_xr: interfaces: GigabitEthernet0/0/0: ipv4: 10.0.0.2/24 link: n1
💡 Nếu 2 interface có cùng link: n1 ⇒ chúng được nối với nhau.
🛠 Cách tạo tệp testbed.yaml?
✅ Cách 1 – Viết tay trong VS Code:
Dễ tuỳ chỉnh, phù hợp lab nhỏ. Tuy nhiên cần cẩn thận khoảng trắng (YAML rất kén).
✅ Cách 2 – Dùng bảng Excel/CSV + tool pyats create testbed file:
Phù hợp khi có nhiều thiết bị. Bạn chỉ cần điền thông tin vào file .xlsx, chạy lệnh:
pyats create testbed file --path devices.xlsx --output testbed.yaml
✅ Cách 3 – Tạo testbed bằng wizard:
Chạy:
pyats create testbed interactive --output my_testbed.yaml
👉 Dễ dùng nhưng không phù hợp testbed lớn.
📌 Ghi nhớ nhanh:
✅ Câu hỏi ôn luyện cuối bài:
📍 Bạn dùng định dạng gì để viết tệp testbed trong pyATS?
A. XML
B. YAML ✅
C. YANG
D. Jinja2
🎯 Nếu bạn đang học tự động hóa mạng với pyATS, đừng bỏ qua bước thiết kế testbed chuẩn. Hãy bắt đầu bằng một file YAML, kiểm tra kỹ cú pháp, và từng bước xây dựng automation framework của riêng bạn!
Chào anh em DevOps, NetDev, Automation Engineer! Trong bài viết hôm nay, mình sẽ chia sẻ một kiến thức cực kỳ thực tế và quan trọng khi làm việc với pyATS – một framework mạnh mẽ để kiểm thử và tự động hóa mạng: Đó chính là Tệp YAML Testbed.
🧠 Tại sao phải quan tâm đến "testbed.yaml"?
Bạn không thể kiểm thử gì nếu không có bản đồ của mạng, đúng không?
Trong thế giới pyATS, tệp testbed.yaml chính là bản đồ đó. Nó định nghĩa:
- Danh sách thiết bị (devices)
- Kết nối giữa chúng (topology)
- Cách pyATS giao tiếp với từng thiết bị (protocols, IP, credentials,...)
📘 Cấu trúc tệp testbed.yaml gồm 3 phần chính:
1. testbed:
Thông tin chung của testbed như tên, alias, thông tin server hỗ trợ, credential mặc định,... (tùy chọn).
Ví dụ:
testbed: name: sampleTestbed credentials: default: username: admin password: %ASK{}
2. devices:
Chi tiết từng thiết bị: hostname, loại OS (iosxe, iosxr,...), nền tảng (csr1000v, n9k,...), và thông tin kết nối.
Ví dụ:
devices: R1_xe: os: iosxe type: router platform: csr1000v connections: cli: protocol: ssh ip: 192.168.1.1
📝 Tips:
- Nhớ đặt alias: uut cho thiết bị chính mà bạn sẽ kiểm thử.
- Nếu bỏ trống password, pyATS sẽ hỏi bạn khi chạy test.
3. topology:
Mô tả các giao diện và cách chúng kết nối với nhau (ai nối với ai, qua interface nào).
Ví dụ:
topology: R1_xe: interfaces: GigabitEthernet3: ipv4: 10.0.0.1/24 link: n1 R2_xr: interfaces: GigabitEthernet0/0/0: ipv4: 10.0.0.2/24 link: n1
💡 Nếu 2 interface có cùng link: n1 ⇒ chúng được nối với nhau.
🛠 Cách tạo tệp testbed.yaml?
✅ Cách 1 – Viết tay trong VS Code:
Dễ tuỳ chỉnh, phù hợp lab nhỏ. Tuy nhiên cần cẩn thận khoảng trắng (YAML rất kén).
✅ Cách 2 – Dùng bảng Excel/CSV + tool pyats create testbed file:
Phù hợp khi có nhiều thiết bị. Bạn chỉ cần điền thông tin vào file .xlsx, chạy lệnh:
pyats create testbed file --path devices.xlsx --output testbed.yaml
✅ Cách 3 – Tạo testbed bằng wizard:
Chạy:
pyats create testbed interactive --output my_testbed.yaml
👉 Dễ dùng nhưng không phù hợp testbed lớn.
📌 Ghi nhớ nhanh:
- testbed.yaml là trái tim trong kiểm thử mạng với pyATS.
- Chứa thông tin devices, giao thức kết nối, và cả sơ đồ topology.
- Hỗ trợ nhiều cách tạo: YAML thủ công, Excel, interactive wizard.
- Dùng %ASK{} để tránh ghi password rõ ràng.
- alias: uut rất quan trọng để tái sử dụng kịch bản kiểm thử.
✅ Câu hỏi ôn luyện cuối bài:
📍 Bạn dùng định dạng gì để viết tệp testbed trong pyATS?
A. XML
B. YAML ✅
C. YANG
D. Jinja2
🎯 Nếu bạn đang học tự động hóa mạng với pyATS, đừng bỏ qua bước thiết kế testbed chuẩn. Hãy bắt đầu bằng một file YAML, kiểm tra kỹ cú pháp, và từng bước xây dựng automation framework của riêng bạn!