1. YAML (Ain’t Markup Language) được sử dụng để biểu diễn dữ liệu dưới dạng text (giống XML, JSON …), file YAML lưu với phần mở rộng .yml hoặc .yaml nó dễ có vẻ dễ dọc so với con người hơn (so với XML, JSON). File .yml được sử dụng làm file cấu hình của nhiều ứng dụng như PHP, Docker …

Cùng một cách hiển thị danh sách máy chủ và thông tin của chúng.
Bên trái là cách biểu diễn của XML, ở giữa là dạng JSON, và cuối cùng là YAML
2. Trong YAML có 3 kiểu để biểu diễn giá trị.

Key Value Pair (Cặp khoá vs giá trị):
Dữ liệu được thể hiện bởi kiểu khoá và giá trị (key và value). Trong YAML, khóa và giá trị được phân tách bằng dấu hai chấm (:). Luôn phải có khoảng trắng theo sau dấu hai chấm.
Mảng trong YAML:
Các phần tử trong mảng sẽ được thể hiện bởi dấu gạch ngang ( – ). Cần có khoảng trắng trước mỗi mục. Số lượng khoảng trắng cần bằng nhau trước các phần tử của một mảng. Chúng ta hãy xem xét kỹ hơn về các dấu khoảng trắng trong YAML.
Ví dụ ở đây ta có một object là Banana. Trong đó có 3 thuộc tính là calories, fat và carbs.Banana:
Calories: 105
Fat: 0.4g
Carbs: 27g
Lưu ý số lượng khoảng trắng trước mỗi thuộc tính sẽ chỉ ra mối quan hệ cha con. Như ở đây, trước 3 thuộc tính đó có cùng số khoảng trắng, nghĩa là 3 thuộc tính đó nằm trong Banana. Nhưng điều gì sẽ xảy ra nếu chúng ta có thêm không gian cho fat và carbs.Banana:
Calories: 105
Fat: 0.4g
Carbs: 27g
Lúc này fat và crabs sẽ là con của thuộc tính calories và calories là thuộc tính con của Banana. Vì vậy, số lượng khoảng trắng trong YAML rất quan trọng. Đôi lúc bạn có thể chạy script bị báo lỗi nếu nhầm khoảng trắng với dấu tab.
Dạng dict trong YAML:
Dạng này chỉ cần biểu diễn khoảng trắng trước các thuộc tính của object. Điểm khác biệt của dạng Dict và Array là các thuộc tính liệt kê dạng dict thì không có thứ tự. Trong khi Array thì ngược lại. Nên là ví dụ bạn khai báo như:Tasks:
- install httpd
- start httpd
Sẽ khác vớiTasks:
- start httpd
- install httpd
Ví dụ trên được viết theo dạng Array, tức ansible sẽ đọc tuần tự từ trên xuống. Như vậy nếu start httpd trước khi install httpd thì sẽ xảy ra lỗi vì hệ thống không tìm thấy service httpd để start.

3. Cú pháp yaml
Chú thích trong YAMLCác chú thích viết bắt đầu bằng #.
Giá trị một đối tượng
Được biểu diễn bằng viết trên một dòng key:value
Ví dụ YAMLproduct: Laptop ABC
price: 333
Đối tượng, chứa các đối tượng con
Khi một đối tượng cha chứa đối tượng con, thì đối tượng đó không được chứa giá trị và các đối tượng con biểu diễn bằng các dòng key:value
thụt đầu dòng 2 khoẳng trắng so với phần tử cha.product: Laptop ABC
price: 333
specifications:
os: Windows 10
hdd: 500 GB
Đối tượng mảng
Sau tên mảng là :, các phần tử mảng biểu diễn trên mỗi dòng, thụt 2 khoảng trắng và bắt đầu bằng –product: Laptop ABC
price: 333
specifications:
os: Windows 10
hdd: 500 GB
ram:
- branch: XYZ
- speed: XXX
Đối tượng văn bản
Dữ liệu văn bản dài, có thể dùng ký hiệu >
để nó tự động gộm thành 1data: >
Dòng chữ 1
Dòng chữ 2Kết quả đầu ra: Dòng chữ 1 Dòng chữ 2
Ký hiệu |
Bao quanh 1 khối những vẫn giữ việc xuống dòng và loại bỏ dấu space ở đâu và ở cuốidata: |
Dòng chữ 1
Dòng chữ 2
Kết quả đầu ra:
Dòng chữ 1
Dòng chữ 2