📜  Ansible YAML

📅  最后修改于: 2020-12-26 12:29:02             🧑  作者: Mango

Ansible YAML

YAML用于描述在AnsibleSaltStack的帮助下在过去几年中不断增加的配置。

与其他标准数据格式(例如XML或JSON)相比,YAML对于人类而言更易于读写。大多数编程语言都有可用的库来使用YAML。

对于Ansible,每个YAML文件都以一个列表开头。列表中的每个项目都是键-值对的列表,通常称为“哈希”“字典” 。因此,我们需要知道如何在YAML中编写列表和字典。

YAML还有一个小怪癖。所有YAML文件(不论其与Ansible或不关联的)可任选开始和结束—。这是YAML格式的一部分,指示文档的开始和结束。

列表的所有成员都是以相同的缩进级别开头的行,并以“-” (破折号和空格)开头:

---
# A list of colors
- White
- Orange
- Red
- Black
---

我们用不同的方式表示YAML数据,例如:

键值对

YAML使用键值对表示数据。字典在键:值对中描述。

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

例如,一个学生记录

---
# A student record
Martin:
name: Martin 
roll no: 10
class: 12th
div: A
---

缩写

我们也可以使用缩写来表示目录:

Martin: [name: martin, roll no: 10, class: 12th, div: A] 

代表名单

我们还可以在YAML中表示List。列表中的每个元素(成员)都应以“-”(-和空格)开头的相同缩进换行。

例如:国家名称

---
#Name of country 
Countries:  
   - India 
   - China 
   - USA
   - Iceland 
---

缩写

为了表示列表,我们还可以使用缩写方法:

Countries: ['India', 'China', 'USA', 'Iceland']

在字典中列出

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

例如,一个学生记录

---
# A student record
Martin:
name: Martin 
roll no: 10
class: 12th
div: A
likes:
- Physics 
- Chemistry
- Math 
---

目录列表

我们还可以列出目录:

例如:

---
# A student record
- Martin:
name: Martin 
roll no: 10
class: 12th
div: A
likes:
- Physics 
- Chemistry
- Math 
- Edward:
 name: Edward
 roll no: 11
class: 12th
div: A
likes: 
- Biology 
- English 
---

YAML使用“ |”在显示多行时包含换行符,在显示各种行时使用“>”取消换行符。因此,我们可以阅读和编辑长行。在这两种情况下,缩进都将被忽略。

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

例如,学生成绩

---  
#a student result 
- Martin:
name: Martin 
roll no: 10
class: 12th
div: A
likes:
- Physics 
- Chemistry
- Math 
   
   result: 
      Physics: 70 
     Chemistry: 45 
Math: 85
Biology: 65
      English: 80 
   
   passed: TRUE 
   
   messageIncludeNewLines: | 
      Congratulation!! 
      You passed with 79% 
   
   messageExcludeNewLines: > 
      Congratulation!! 
      You passed with 79% 
---