Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bài 4/4: Từ thư viện Netmiko đến NAPALM

    🔥 [Góc DevNetOps] Từ thư viện Netmiko đến NAPALM – Vũ khí Python cho dân tự động hóa mạng 🔥
    Bạn là DevOps, NetDev, hay Automation Engineer? Nếu bạn đang đụng chạm đến Python trong quá trình quản lý thiết bị mạng Cisco, Juniper, hay đa nền tảng – thì Network Library là thứ bạn nhất định phải hiểu rõ!
    🧠 "Library", "Module", "Package" trong Python là gì?

    Chúng ta thường nghe:
    • Module là một file .py chứa mã có thể tái sử dụng.
    • Package là một thư mục chứa nhiều module, có thể có thêm thư mục con (dạng phân cấp).
    • Library là cách gọi chung cho tập hợp module và package phục vụ một mục tiêu nào đó (VD: thư viện SSH, thư viện API, v.v).
    👉 Ví dụ đơn giản:

    import netmiko # nhập toàn bộ module from netmiko import ConnectHandler # nhập riêng class để dùng nhanh from netmiko import ConnectHandler as ch # tạo alias gọn

    ⚙️ Làm sao để Python biết được ta đang import cái gì?

    Python tìm các module ở hai nơi:
    1. Thư mục hiện tại bạn đang chạy script.
    2. Các thư mục đã được khai báo trong biến môi trường PYTHONPATH.
    Bạn có thể kiểm tra PYTHONPATH bằng lệnh:


    env | grep PYTHONPATH

    Và trong Python:

    import sys print(sys.path)

    📌 Lưu ý: nếu bạn clone code về từ GitHub hay tự viết module riêng, hãy đảm bảo thư mục chứa module đó nằm trong PYTHONPATH hoặc cùng thư mục với script chính.
    🧰 Những "vũ khí Python" phổ biến cho dân mạng
    1. Netmiko – SSH library đa nền tảng, đơn giản hóa việc kết nối CLI qua SSH:
      🔗 https://github.com/ktbyers/netmiko
      🧪 Dùng cực phổ biến trong các bài lab tự động hóa cấu hình switch/router.
    2. NAPALM – cung cấp Unified API cho nhiều hệ điều hành mạng như IOS, JunOS, NX-OS:
      🔗 https://github.com/napalm-automation/napalm
      💡 Dùng để lấy cấu hình, push cấu hình, so sánh trạng thái... theo cách chuẩn hoá.
    3. Cisco DevNet Code Exchange – nơi Cisco chia sẻ hàng trăm dự án mã nguồn mở mẫu:
      🔗 https://developer.cisco.com/codeexchange

    🎓 Bài học rút ra cho dân Automation

    ✅ Hãy hiểu rõ sự khác nhau giữa module, package và library để tránh nhầm lẫn khi import.
    ✅ Tận dụng các import statement đúng cách để code rõ ràng, dễ tái sử dụng.
    ✅ Biết cấu trúc thư mục của thư viện và cách Python resolve import là điều bắt buộc nếu bạn định build tool riêng hoặc chạy các playbook/phần mềm tự động.
    ✅ Đừng quên thêm đường dẫn thư viện nội bộ vào PYTHONPATH nếu bạn có custom module in-house.
    💬 Bạn đang dùng Netmiko/NAPALM cho tác vụ nào trong hệ thống? Có cần ví dụ cụ thể hơn không? Hãy để lại comment bên dưới – mình sẽ tiếp tục loạt bài chia sẻ Python Automation dành cho anh em NetDevOps 🇻🇳
    vnpro #NetDevOps #PythonNetworking #NetworkAutomation netmiko #NAPALM #CiscoDevNet #AutomationEngineer #PythonTips #InfrastructureAsCode

    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X