yaml不支持tab缩进的格式,只支持空格的缩进方式,并且对缩进要求比较严格,另外“-”,“:”后面也必须加空格
1.什么是yaml?
YAML是“YAML不是一种标记语言”的外语缩写
但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。
它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,
容易和脚本语言交互,用来表达资料序列的编程语言。
前面学ansible的时候playbook文件使用的是yaml语法,其实这都是因为它是用python写的==
saltstack也是用python写的,也要使用yaml语言
默认的SLS文件的renderer是YAML renderer。YAML是一个有很多强大
特性的标记性语言。Salt使用了一个YAML的小型子集,映射非常常用的
数据结构,像列表和字典。YAML renderer的工作是将YAML数据格式的
结构编译成为Python数据结构给Salt使用。
2.三个规则
(1)规则一:缩进
YAML使用一个固定的缩进风格表示数据层结构关系。Salt需要每个缩进级别
由两个空格组成。不要使用tabs。如果要使用tabls的话建议修改.vimrc,设置tab的缩进格数
(2)规则二:冒号
Python的字典当然理所当然是简单的键值对。其他语言的用户应该知道这个数据类型叫哈希表或者关联数组。
字典的keys在YAML中的表现形式是一个以冒号结尾的字符串。Values的表现形式冒号下面的每一行,用一个空格隔开:
my_key: my_value
在Python中,上面的将映射为:
{‘my_key’: ‘my_value’}
(3)规则三:短横杠
想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一列表的一部分。
- list_value_one
- list_value_two
- list_value_three
列表可以可以作为一个键值对的value。这个在Salt很常见:
my_dictionary:
- list_value_one
- list_value_two
- list_value_three
在Python中,上面的将映射为:
{‘my_dictionary’: [‘list_value_one’, ‘list_value_two’, ‘list_value_three’]}