Variable Types
Trong Ansible, hiểu đúng kiểu dữ liệu của variable giúp bạn viết playbook dễ đọc, ít lỗi và tái sử dụng tốt hơn.
Bài này đi nhanh qua 5 loại phổ biến nhất:
- String
- Number
- Boolean
- List
- Dictionary
1) String variable
String là chuỗi ký tự. Bạn có thể khai báo trong playbook, inventory hoặc truyền từ command line.
vars:
username: "admin"
Dùng trong task:
msg: "Current user is "
2) Number variable
Number có thể là integer hoặc float, dùng được cho tính toán.
vars:
max_connections: 100
cpu_threshold: 0.8
Ví dụ:
msg: "Allowed connections: "
3) Boolean variable
Boolean biểu diễn đúng/sai, hay dùng trong điều kiện when.
vars:
debug_mode: true
Ví dụ:
- debug:
msg: "Debug is enabled"
when: debug_mode
Một số giá trị thường gặp:
- Truthy:
true,yes,on,1 - Falsy:
false,no,off,0
4) List variable
List là tập có thứ tự, chứa nhiều giá trị.
vars:
packages:
- nginx
- curl
- git
Dùng toàn bộ list:
msg: "Packages: "
Lấy phần tử theo index:
msg: "First package: "
5) Dictionary variable
Dictionary (map/object) là tập key-value.
vars:
user:
name: dat
shell: /bin/bash
Truy cập theo key:
msg: "User uses shell "
Bạn cũng có thể dùng bracket notation:
msg: "User "
6) Sơ đồ nhanh: chọn kiểu biến nào?
Need one text value? -> String
Need numeric value? -> Number
Need true/false switch? -> Boolean
Need ordered collection? -> List
Need structured key-value? -> Dictionary
7) Mẹo thực tế khi dùng variables trong Ansible
- Dùng tên biến rõ nghĩa (
db_port,api_timeout,enable_tls) - Tránh trộn kiểu dữ liệu cho cùng một biến
- Ưu tiên cấu trúc dữ liệu (list/dict) khi playbook bắt đầu lớn
- Khi dùng Jinja2, luôn kiểm tra key/index trước nếu dữ liệu có thể thiếu
Kết luận
Nắm chắc variable types giúp bạn:
- viết playbook rõ ràng hơn
- dễ debug hơn khi gặp lỗi template/condition
- scale automation tốt hơn khi hệ thống nhiều host và nhiều env
Ở bài tiếp theo, bạn có thể đi sâu hơn vào variable precedence và cách merge variables theo host/group/env.