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: Ansible làm việc như thế nào?

    🎯 Tự động hóa mạng & server bằng Ansible – Làm chủ Playbook đầu tiên của bạn!
    Bạn từng nghĩ rằng tự động hóa là chuyện "dev-only"? Đừng vội! Ansible đang mở ra cánh cửa mới cho anh em network & infra engineer. Cùng khám phá cách Ansible vận hành, không chỉ cho server mà cả thiết bị mạng Cisco.

    🚀 Ansible hoạt động như thế nào?

    1. Với Linux Server truyền thống:
    • Control host (máy điều khiển): Cài Ansible + Python + SSH.
    • Remote host: Chỉ cần SSH và Python (không cần cài agent).
    • Khi chạy Playbook:
      • Ansible SSH vào thiết bị từ control host.
      • Gửi module Python sang remote host → thực thi → xoá sau khi xong.
      • Quá trình này lặp lại cho từng task định nghĩa trong playbook.
    Ví dụ:

    ansible-playbook -i inventory.ini update_linux.yml

    2. Với thiết bị mạng (Cisco, Juniper…):
    • Không gửi code xuống thiết bị!
    • Mọi module Python được thực thi trực tiếp trên control host.
    • Ansible tương tác qua SSH, NETCONF hoặc REST API → gửi config hoặc lấy trạng thái thiết bị.
    So sánh dễ hiểu:
    Giống như bạn gõ lệnh trên terminal SSH vào router, nhưng giờ bạn làm điều đó cho hàng chục thiết bị cùng lúc, chỉ bằng vài dòng YAML.

    📂 Cấu trúc project Ansible cơ bản

    . ├── inventory # Danh sách thiết bị ├── view_push_snmp.yml # Playbook chính └── ansible.cfg # (Tùy chọn) file cấu hình

    🧠 Giải phẫu một Playbook


    --- - name: Push SNMP Config hosts: iosxe connection: network_cli gather_facts: no tasks: - name: Enable SNMP community ios_config: lines: - snmp-server community vnpro ro

    🔍 Giải thích:
    • name: tên của play, xuất hiện khi chạy.
    • hosts: nhóm thiết bị trong file inventory.
    • connection: kiểu kết nối (network_cli, httpapi…).
    • tasks: các tác vụ được thực hiện tuần tự.
    • ios_config: một module giúp gửi dòng lệnh đến thiết bị Cisco IOS XE.
    ⚠️ Lưu ý:
    • Các module của Ansible idempotent – nghĩa là bạn chạy 100 lần cũng chỉ thay đổi 1 lần nếu cần thiết.
    • Mỗi task = 1 hành động cụ thể, thực hiện qua module.

    ▶️ Cách chạy Playbook


    ansible-playbook -i inventory view_push_snmp.yml

    Một số mẹo khác:
    • Mặc định Ansible dùng /etc/ansible/hosts nếu bạn không chỉ định -i.
    • Bạn có thể export biến môi trường ANSIBLE_INVENTORY hoặc ghi cấu hình trong ansible.cfg.

    ✅ Câu hỏi ôn tập

    1. Lệnh nào dùng để chạy playbook?
    → ansible-playbook
    2. Hai file nào là tối thiểu cần có?
    → inventory file & playbook
    🎯 Gợi ý thực hành cho anh em:
    1. Cài Ansible trên VM Ubuntu.
    2. Tạo một inventory.ini chứa IP của một router Cisco.
    3. Viết view_push_snmp.yml để gửi cấu hình SNMP.
    4. Chạy playbook và quan sát phản hồi!

    🔥 Kết luận:
    Ansible không chỉ dành cho dev – đây là công cụ tuyệt vời cho mọi hạ tầng, từ máy chủ Linux đến router Cisco. Viết vài dòng YAML, chạy một dòng lệnh, bạn đã triển khai cấu hình cho cả hệ thống. Đó là sức mạnh của automation hiện đại!
    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