默認的SLS文件的renderer是YAML renderer。YAML是一個有不少強大特性的標記性語言。Salt使用了一個YAML的小型子集,映射很是經常使用的數據結構,像列表和字典。YAML renderer的工做是將YAML數據格式的結構編譯成爲Python數據結構給Salt使用。html
儘管YAML語法可能第一眼看上去很簡潔但使人畏懼,可是隻要記住三個很是簡單的規則就可使用YAML語法寫SLS文件了。數組
YAML使用一個固定的縮進風格表示數據層結構關係。Salt須要每一個縮進級別由兩個空格組成。不要使用tabs。數據結構
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' }}
想要表示列表項,使用一個短橫槓加一個空格。多個項使用一樣的縮進級別做爲同一列表的一部分。
- 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']}
一個簡單的學習更多關於YAML如何渲染爲Python數據結構的方式是使用一個在線的YAML解析器去看看Python的輸出。
一個優異的的體驗YAML解析過程的選擇: http://yaml-online-parser.appspot.com/