Ansible - YAML基础知识

Ansible使用YAML语法表达Ansible playbooks.本章概述了YAML. Ansible使用YAML,因为与其他数据格式(如XML和JSON)相比,人类很容易理解,读取和写入.

每个 YAML 文件都可以选择启动使用"---"并以"......"结尾.

了解YAML

在本节中,我们将了解不同的方法表示YAML数据.

键值对

YAML使用简单的键值对来表示数据.字典用键:值对表示.

注意 :  :和值之间应该有空格.

示例:学生记录

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

缩写

您还可以使用缩写来表示词典.

示例

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

代表清单

我们也可以代表YAML中的清单.列表的每个元素(成员)都应该用新的行写成,其中的缩进号以" - "( - 和空格)开头.

示例

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

缩写

您也可以使用缩写来表示列表.

示例

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

字典中的列表

我们可以在字典中使用列表,即键的值是列表.

示例

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

词典列表

我们也可以列出词典.

示例

---  
- 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使用"|"在显示多行时使用换行符,使用">"来抑制换行符显示多行.因此,我们可以读取和编辑大行.在这两种情况下,意图都将被忽略.

我们还可以在YAML中表示布尔(真/假)值.其中布尔值可以不区分大小写.

示例

---  
- 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%

与Ansible相关的一些常用词.

服务/服务器 : 提供服务的机器上的流程.

机器 : 物理服务器,虚拟机(虚拟机)或容器.

目标机器 : 我们即将配置Ansible的机器.

任务 : 由Ansible管理的操作(运行此,删除)等.

Playbook : 写入Ansible命令的yml文件和yml在机器上执行.