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 1/2: Chuyên sâu về file Inventory của Ansible

    Bài 1/2: Chuyên sâu về file Inventory của Ansible

    Tối Ưu Hóa Tự Động Hóa Mạng với Ansible Inventory!
    (Dành cho các chiến binh Automation)



    Inventory File chính là nơi bắt đầu cho mọi playbook trong Ansible. Đừng xem nhẹ nó — nó là bản đồ mô tả hệ thống của bạn.

    Inventory là gì?



    Đây là danh sách các thiết bị (host) mà Ansible sẽ kết nối và thực hiện automation. File này có thể rất đơn giản — chỉ là các IP hoặc hostname. Nhưng khi hạ tầng mở rộng, Inventory trở thành một cấu trúc phân tầng mạnh mẽ với khả năng nhóm, lồng ghép, và định nghĩa biến cho từng nhóm.

    Cấu trúc Inventory dạng INI:


    [all]
    hosts
    csr1kv4

    [datacenters]
    children
    dc_east
    dc_west

    [routers]
    hosts
    csr1kv2
    switch.cisco.com

    [switches]
    hosts
    10.10.10.1
    csr1kv1

    Ý nghĩa:
    • Nhóm all: chứa toàn bộ thiết bị.
    • Nhóm routers: định danh các thiết bị routing.
    • Nhóm switches: các switch với địa chỉ IP hoặc hostname.
    • datacenters: sử dụng children để chứa các nhóm con như dc_east và dc_west — cho phép tổ chức inventory theo địa lý hoặc chức năng.
    Inventory dạng YAML:


    ---
    all:
    hosts:
    - csr1kv4
    datacenters:
    children:
    - dc_east
    - dc_west
    routers:
    hosts:
    - csr1kv2
    - switch.cisco.com
    switches:
    hosts:
    - 10.10.10.1
    - csr1kv1

    YAML dễ đọc hơn, thường được dùng trong các hệ thống hiện đại như AWX hoặc Ansible Tower.

    Một số lưu ý:


    csr1kv4 không thuộc nhóm nào cụ thể, nhưng vẫn được automation nếu bạn gọi all trong playbook.
    Bạn có thể dùng mẫu lệnh sau để chạy automation trên:
    • Nhóm cụ thể: ansible-playbook -i inventory.yaml playbook.yml -l switches
    • Tất cả host trừ một số nhóm: all:!routers
    • Wildcard: web* (ví dụ với các server có tên bắt đầu bằng web)
    Ứng dụng thực tế:


    Bạn có thể tổ chức Inventory theo:
    • Loại thiết bị: switch, router, firewall.
    • Vị trí địa lý: hanoi, danang, saigon.
    • Loại hệ điều hành: ios, nxos, junos.
    Việc chia nhóm hợp lý giúp bạn:
    Dễ mở rộng
    Tái sử dụng playbook
    Tự động hóa theo từng vùng hoặc chức năng

    Tóm lại:



    Inventory không chỉ là danh sách IP — đó là cách bạn liệt kê về hạ tầng, và là công cụ tổ chức automation hiệu quả nhất trong Ansible.




    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