Ansible - Kiến thức cơ bản về YAML

Ansible sử dụng cú pháp YAML để thể hiện sách vở Ansible. Chương này cung cấp một cái nhìn tổng quan về YAML. Ansible sử dụng YAML vì con người rất dễ hiểu, đọc và viết khi so sánh với các định dạng dữ liệu khác như XML và JSON.

Mỗi YAML tùy chọn bắt đầu bằng “---” và kết thúc bằng “...”.

Hiểu về YAML

Trong phần này, chúng ta sẽ tìm hiểu các cách khác nhau mà dữ liệu YAML được biểu diễn.

cặp khóa-giá trị

YAML sử dụng cặp khóa-giá trị đơn giản để đại diện cho dữ liệu. Từ điển được biểu diễn trong cặp key: value.

Note - Phải có khoảng trắng giữa: và giá trị.

Ví dụ: Hồ sơ học sinh

--- #Optional YAML start syntax 
james: 
   name: james john 
   rollNo: 34 
   div: B 
   sex: male 
… #Optional YAML end syntax

Viết tắt

Bạn cũng có thể sử dụng chữ viết tắt để thể hiện từ điển.

Thí dụ

James: {name: james john, rollNo: 34, div: B, sex: male}

Danh sách đại diện

Chúng tôi cũng có thể đại diện cho Danh sách trong YAML. Mọi phần tử (thành viên) của danh sách phải được viết trong một dòng mới với cùng một thụt đầu dòng bắt đầu bằng “-“ (- và dấu cách).

Thí dụ

---
countries:  
   - America 
   - China 
   - Canada 
   - Iceland 
…

Viết tắt

Bạn cũng có thể sử dụng chữ viết tắt để đại diện cho danh sách.

Thí dụ

Countries: [‘America’, ‘China’, ‘Canada’, ‘Iceland’]

Liệt kê bên trong Từ điển

Chúng ta có thể sử dụng danh sách bên trong từ điển, tức là giá trị của khóa là danh sách.

Thí dụ

---  
james: 
   name: james john 
   rollNo: 34 
   div: B 
   sex: male 
   likes: 
      - maths 
      - physics 
      - english 
…

Danh sách từ điển

Chúng tôi cũng có thể tạo danh sách các từ điển.

Thí dụ

---  
- james: 
   name: james john 
   rollNo: 34 
      div: B 
   sex: male 
   likes: 
      - maths 
      - physics 
      - english 

- robert: 
      name: robert richardson 
      rollNo: 53 
      div: B 
      sex: male 
   likes: 
      - biology 
      - chemistry 
…

YAML sử dụng “|” để bao gồm các dòng mới trong khi hiển thị nhiều dòng và “>” để loại bỏ các dòng mới trong khi hiển thị nhiều dòng. Do đó, chúng tôi có thể đọc và chỉnh sửa các dòng lớn. Trong cả hai trường hợp, ý định sẽ bị bỏ qua.

Chúng tôi cũng có thể đại diện Boolean(Đúng / sai) giá trị trong YAML. Ở đâuboolean giá trị có thể không phân biệt chữ hoa chữ thường.

Thí dụ

---  
- james: 
   name: james john 
   rollNo: 34 
   div: B 
   sex: male 
   likes: 
      - maths 
      - physics 
      - english 
   
   result: 
      maths: 87 
      chemistry: 45 
      biology: 56 
      physics: 70 
      english: 80 
   
   passed: TRUE 
   
   messageIncludeNewLines: | 
      Congratulation!! 
      You passed with 79% 
   
   messageExcludeNewLines: > 
      Congratulation!! 
      You passed with 79%

Một số từ thông dụng liên quan đến Ansible.

Service/Server - Một quy trình trên máy cung cấp dịch vụ.

Machine - Một máy chủ vật lý, vm (máy ảo) hoặc một vùng chứa.

Target machine - Một máy chúng tôi sắp cấu hình với Ansible.

Task - Một hành động (chạy cái này, xóa cái kia) vv do Ansible quản lý.

Playbook - Tệp yml nơi các lệnh Ansible được viết và yml được thực thi trên máy.