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 2/2: Ansible Inventory File

    Giải thích siêu dễ hiểu về Host Vars & Group Vars trong Ansible dành cho dân DevNetOps
    💡 Bạn có biết? Khi triển khai tự động hóa cấu hình mạng với Ansible, việc quản lý biến cho từng thiết bị (host) hoặc nhóm thiết bị (group) là điều bắt buộc để playbook hoạt động trơn tru, có tính mở rộng, và dễ bảo trì. Hãy cùng khám phá cách Ansible xử lý group_varshost_vars – yếu tố không thể thiếu trong quản lý hạ tầng lớn.
    🔎 Group Variables là gì?

    Giả sử bạn có hàng chục switch IOS và vài router NX-OS. Nếu bạn không muốn lặp đi lặp lại ansible_network_os: ios cho từng thiết bị IOS, bạn có thể gán biến này vào group_vars/ios.yml.
    📌 Ví dụ:

    # group_vars/ios.yml ansible_network_os: ios ansible_ssh_pass: secret

    Tương tự, NX-OS:

    # group_vars/nxos.yml ansible_network_os: nxos ansible_ssh_pass: admin

    → Những thiết bị thuộc nhóm [ios] hoặc [nxos] sẽ tự động thừa hưởng biến tương ứng từ file YAML.
    🧍‍♂️ Host Variables là gì?

    Có những "đứa con đặc biệt" – các thiết bị cần mật khẩu riêng, interface riêng, hoặc SNMP riêng. Với những "snowflake" như vậy, bạn dùng host_vars.
    📌 Ví dụ:

    # host_vars/nxos-spine1/snmp.yml snmp_community: spine1-snmp ansible_ssh_pass: supersecret

    → Ansible sẽ tự động tìm folder host_vars/nxos-spine1/ để lấy biến cho thiết bị nxos-spine1.
    🧠 Ghi nhớ cấu trúc folder lý tưởng

    . ├── inventory ├── playbook.yml ├── group_vars/ │ ├── ios/ │ │ ├── snmp.yml │ │ └── interfaces.yml │ └── nxos/ │ ├── snmp.yml │ └── interfaces.yml └── host_vars/ ├── csr1kv1/ │ ├── snmp.yml │ └── interfaces.yml └── nxos-spine1/ ├── snmp.yml └── interfaces.yml

    → Quản lý từng loại biến trong từng file riêng biệt giúp dễ kiểm soát, dễ maintain, và tái sử dụng cấu hình!
    Trả lời câu hỏi kiểm tra cuối bài

    Câu hỏi:
    Which statement about using group and host variables in Ansible is true?
    ✅ Đáp án đúng:
    “A file in a host_vars subdirectory must have the same name as a host defined in the inventory file.”
    → Vì Ansible map tên host với thư mục trong host_vars/, nên host_vars/csr1kv1/ sẽ áp dụng cho host csr1kv1 trong inventory.
    📌 Kết luận cho DevOps/NetDevOps

    Đừng để biến lộn xộn phá hỏng playbook của bạn. Hãy bắt đầu chuẩn hóa lại inventory bằng cách tách biệt rõ group_vars và host_vars. Khi hạ tầng lớn lên, modular hóa biến sẽ là người bạn cứu tinh giúp bạn tự tin scale-up và automation hiệu quả.
    Nếu bạn thấy bài viết hữu ích, hãy comment "Ansible Pro" bên dưới để mình gửi tặng thêm tài liệu về Jinja2 + Template hóa thiết bị mạng!
    ansible #NetworkAutomation #DevNetOps #NetCenter vnpro #IaC #AutomationForNetworking

    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