Bài viết này tổng hợp và phân tích các sự cố kỹ thuật mình gặp phải trong quá trình cấu hình tự động hạ tầng mạng (Router, Switch) thông qua máy chủ quản trị Ansible AWX. Việc nắm vững các vấn đề này sẽ giúp tối ưu hóa quy trình triển khai Infrastructure as Code (IaC) và hạn chế lỗi phát sinh trong môi trường thực tế.
1. Thiếu cấu hình thông tin xác thực (Lỗi "No authentication methods available")
Công cụ Ansible hỗ trợ quản lý cấu hình hạ tầng mạng rất hiệu quả, đặc biệt là thông qua cơ chế Idempotency (chỉ thực thi các thay đổi cần thiết). Tuy nhiên, để đảm bảo quá trình tự động hóa diễn ra xuyên suốt, người quản trị cần đặc biệt chú trọng đến việc chuẩn hóa phương thức xác thực (Authentication/Credential), đảm bảo kết nối mạng (SSH/IP) và phân chia cấu trúc Inventory hợp lý.
1. Thiếu cấu hình thông tin xác thực (Lỗi "No authentication methods available")
- Mô tả: Khi khởi chạy (launch) Playbook, hệ thống ngay lập tức báo lỗi thiếu phương thức xác thực và quá trình thực thi bị gián đoạn.
- Nguyên nhân: Người quản trị đã khởi tạo Credential (thông tin tài khoản/mật khẩu) trên hệ thống AWX, nhưng chưa thực hiện thao tác gán (attach) Credential này vào Job Template tương ứng. Do đó, Ansible tiến hành phiên kết nối với thông tin đăng nhập rỗng.
- Giải pháp: Trước khi thực thi tác vụ, cần kiểm tra và đảm bảo thuộc tính Credentials trong phần cấu hình của Job Template đã được chọn đúng cấu hình xác thực (Machine Credential) phù hợp với thiết bị đích.
- Mô tả: Ansible Server thiết lập kết nối SSH thành công đến thiết bị đích nhưng bị từ chối quyền truy cập (Access Denied).
- Nguyên nhân: Tồn tại sự sai lệch dữ liệu giữa cấu hình thực tế trên thiết bị và khai báo trên AWX. Cụ thể, thiết bị thực tế đang sử dụng tài khoản vnpro với mật khẩu chứa ký tự # (ví dụ: vnpro#123). Trong khi đó, Credential trên AWX lại được thiết lập cho tài khoản admin với ký tự @. Tương tự, mật khẩu đặc quyền (enable password) cũng bị bất đồng bộ.
- Giải pháp: Chuẩn hóa cấu hình trên toàn hệ thống. Cần truy cập trực tiếp vào giao diện dòng lệnh (CLI) của Router và Switch để tái cấu hình thông tin username và enable password. Các thông số này phải khớp tuyệt đối với Credential và biến ansible_become_password đã được khai báo trên AWX.
- Mô tả: Quá trình thực thi Playbook thất bại do Ansible không thể kết nối đến cổng 22 (SSH) của thiết bị mạng.
- Nguyên nhân: Các cổng giao tiếp mạng trên thiết bị đích đang được cấu hình sử dụng giao thức cấp phát IP động (DHCP). Khi thiết bị khởi động lại hoặc khi chu kỳ cấp phát (lease time) thay đổi, địa chỉ IP của thiết bị bị làm mới. Việc này dẫn đến tham số ansible_host lưu trong cơ sở dữ liệu Inventory của AWX trở nên lỗi thời và không còn chính xác.
- Giải pháp:
- Khắc phục tạm thời: Sử dụng lệnh show ip interface brief trên thiết bị đích để xác định IP hiện tại, sau đó cập nhật lại biến ansible_host trên hệ thống AWX.
- Khắc phục triệt để: Trong môi trường quản trị tự động hóa, khuyến nghị thiết lập địa chỉ IP tĩnh (Static IP) cho toàn bộ các thiết bị đích để duy trì tính ổn định của kết nối quản trị.
- Mô tả: Hệ thống báo lỗi khi Playbook thực hiện tạo VLAN trên Router, hoặc khi cố gắng cấu hình địa chỉ IP trực tiếp cho cổng vật lý của Switch.
- Nguyên nhân: File Playbook đang sử dụng tham số mục tiêu tổng quát là hosts: all. Điều này buộc Ansible phải áp đặt một kịch bản (script) cho toàn bộ phần cứng. Tuy nhiên, Router không hỗ trợ cơ sở dữ liệu VLAN ở Layer 2, và Switch mặc định không cho phép cấu hình IP trên các cổng Switchport (Layer 2). Do đó, thiết bị Cisco IOS trả về lỗi từ chối lệnh.
- Giải pháp: Cần tái cấu trúc cơ sở dữ liệu Inventory. Thực hiện phân chia các thiết bị đích thành những nhóm độc lập (ví dụ: nhóm [routers] và nhóm [switches]). Dựa trên việc phân nhóm này, người quản trị sẽ ấn định các Playbook chạy trên đúng đối tượng thiết bị, đảm bảo tuân thủ nguyên lý hoạt động của từng mô hình phần cứng.
Công cụ Ansible hỗ trợ quản lý cấu hình hạ tầng mạng rất hiệu quả, đặc biệt là thông qua cơ chế Idempotency (chỉ thực thi các thay đổi cần thiết). Tuy nhiên, để đảm bảo quá trình tự động hóa diễn ra xuyên suốt, người quản trị cần đặc biệt chú trọng đến việc chuẩn hóa phương thức xác thực (Authentication/Credential), đảm bảo kết nối mạng (SSH/IP) và phân chia cấu trúc Inventory hợp lý.