YAML標記語言簡介

YAML標記語言簡介

默認的SLS文件的renderer是YAML renderer。YAML是一個有不少強大特性的標記性語言。Salt使用了一個YAML的小型子集,映射很是經常使用的數據結構,像列表和字典。YAML renderer的工做是將YAML數據格式的結構編譯成爲Python數據結構給Salt使用。html

儘管YAML語法可能第一眼看上去很簡潔但使人畏懼,可是隻要記住三個很是簡單的規則就可使用YAML語法寫SLS文件了。數組

10.1. 規則一: 縮進

YAML使用一個固定的縮進風格表示數據層結構關係。Salt須要每一個縮進級別由兩個空格組成。不要使用tabs。數據結構

10.2. 規則二: 冒號

Python的字典固然理所固然是簡單的鍵值對。其餘語言的用戶應該知道這個數據類型叫哈希表或者關聯數組。app

字典的keys在YAML中的表現形式是一個以冒號結尾的字符串。Values的表現形式冒號下面的每一行,用一個空格隔開:學習

my_key: my_value

在Python中,上面的將映射爲:spa

{'my_key': 'my_value'}

另外一種選擇,一個value能夠經過縮進與key聯接。code

my_key:
  my_value

註解orm

上面的語法是有效的YAML,可是在SLS文件罕見,由於一般狀況下,一個key的value不是單一的,而是一個列表 的values。htm

在Python中,上面的將映射爲:three

{'my_key': 'my_value'}

字典能夠被嵌套:

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'
    }}

10.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']}

10.4. 學習更多

一個簡單的學習更多關於YAML如何渲染爲Python數據結構的方式是使用一個在線的YAML解析器去看看Python的輸出。

一個優異的的體驗YAML解析過程的選擇: http://yaml-online-parser.appspot.com/

相關文章
相關標籤/搜索