Bài 27: Ansible nhập môn cho tự động hóa SysAdmin
Bài này chi tiết hóa Ansible theo hướng thực hành: có lab, lệnh mẫu, tình huống thực tế, checklist và bài tập.
- Ansible giải quyết vấn đề gì trong DevOps thực tế.
- Các khái niệm/lệnh quan trọng cần nhớ.
- Cách dựng lab nhỏ để thực hành.
- Cách kiểm tra, rollback và ghi chú vận hành.
1. Bối cảnh thực tế
Ansible thuộc nhóm kỹ năng giúp tự động hóa, chuẩn hóa và vận hành hệ thống ở quy mô lớn hơn. Khi server/app nhiều lên, thao tác tay sẽ dễ sai; vì vậy cần quy trình, công cụ và checklist rõ ràng.
2. Khái niệm cần nắm
- State: trạng thái hiện tại của hệ thống hoặc ứng dụng.
- Config as code: cấu hình được lưu thành file để review, tái sử dụng.
- Idempotent: chạy nhiều lần vẫn cho kết quả ổn định.
- Rollback: quay lại trạng thái an toàn khi triển khai lỗi.
3. Lab thực hành
ansible --version
cat > inventory.ini <<'EOF'
[local]
localhost ansible_connection=local
EOF
ansible -i inventory.ini all -m ping
ansible -i inventory.ini all -m command -a "uptime"
cat > site.yml <<'EOF'
- hosts: local
tasks:
- name: Check current user
command: whoami
EOF
ansible-playbook -i inventory.ini site.yml
4. Tình huống thực tế
Anh cần kiểm tra uptime, cài package hoặc đồng bộ cấu hình cho nhiều server. Ansible giúp thay thao tác SSH từng máy bằng playbook có thể review và chạy lại.
5. Quy trình áp dụng an toàn
- Viết cấu hình hoặc command trong môi trường lab.
- Kiểm tra syntax/plan/status trước khi apply.
- Chạy với phạm vi nhỏ trước.
- Quan sát log, metric và health check.
- Ghi lại thay đổi vào tài liệu vận hành.
- Chuẩn bị rollback hoặc version trước đó.
6. Lỗi thường gặp
- Copy cấu hình từ mạng mà không hiểu biến/môi trường.
- Không lưu file cấu hình vào Git.
- Không kiểm tra log sau khi apply.
- Không có môi trường test/staging.
7. Checklist
- Có file cấu hình rõ ràng.
- Có bước kiểm tra trước khi apply.
- Có log/health check sau khi apply.
- Có rollback/version cũ.
- Có tài liệu ai chạy, chạy khi nào, kết quả gì.
8. Bài tập
- Dựng một lab nhỏ theo lệnh mẫu.
- Chạy lệnh kiểm tra trạng thái trước/sau.
- Tạo một lỗi cấu hình nhỏ và sửa lại.
- Viết checklist production cho chủ đề này.
