UNDERSTANDING YAML - 了解YAML

UNDERSTANDING YAML

SLS文件的默认渲染器是YAML渲染器。 YAML是一种具有许多强大功能的标记语言。 但是,Salt使用一小部分YAML来映射非常常用的数据结构,例如列表和字典。 YAML渲染器的工作原理是采用YAML数据结构并将其编译为Python数据结构以供Salt使用。

尽管YAML语法起初看起来令人生畏和简洁,但在为SLS文件编写YAML时,只需记住三个非常简单的规则。

相似的资料也可以参考:Understanding YAML

RULE ONE: INDENTATION - 缩进

YAML使用固定缩进方案来表示数据层之间的关系。 Salt要求每个级别的缩进恰好包含两个空格。 不要使用tab

RULE TWO: COLONS - 冒号分隔符

Python词典只是键值对。 使用其他语言的用户可能将此数据类型识别为哈希或关联数组。

字典的key在YAML中表示为由尾部冒号终止的字符串,value则由冒号后面的字符串表示,用空格分隔:

my_key: my_value

在python中,上面的数据被转译为:

{'my_key': 'my_value'}

还有一种替换的方法, 可以使用下面的形式表达字典的key/value的映射关系:

my_key:
  my_value

注意:上面的语法是有效的YAML,但在SLS文件中并不常见,因为大多数情况下,键的值不是单数,而是值的列表。

字典结构可以嵌套使用:

first_level_dict_key:
  second_level_dict_key: value_in_second_level_dict

在Python中对应为:

{
    'first_level_dict_key': {
        'second_level_dict_key': 'value_in_second_level_dict'
    }
}

RULE THREE: DASHES - 短划线

为了表示项目列表,使用单个短划线后跟空格,多个项目当它们具有相同级别的缩进时,它们是同一列表的一部分。

- list_value_one
- list_value_two
- list_value_three

列表同样可以是键值对形式的值。 这在Salt中很常见:

my_dictionary:
  - list_value_one
  - list_value_two
  - list_value_three

在Python中,这被转译为:

{'my_dictionary': ['list_value_one', 'list_value_two', 'list_value_three']}

LEARNING MORE

了解有关如何将YAML呈现为Python数据结构的更多信息,一种简单方法是使用在线YAML解析器来查看Python输出。

这个网站提供了一个体验YAML解析的不错选择: http://yaml-online-parser.appspot.com/

TEMPLATING

在SLS文件中默认允许使用Jinja语句和表达式。 请参阅了解Jinja

猜你喜欢

转载自blog.csdn.net/watermelonbig/article/details/91489192