本文来自如下链接http://docs.saltstack.cn/topics/yaml/index.html

了解YAML

默认的SLS文件的renderer是YAML renderer。YAML是一个有很多强大特性的标记性语言。Salt使用了一个YAML的小型子集,映射非常常用的数据结构,像列表和字典。YAML renderer的工作是将YAML数据格式的结构编译成为Python数据结构给Salt使用。

尽管YAML语法可能第一眼看上去很简洁但令人畏惧,但是只要记住三个非常简单的规则就可以使用YAML语法写SLS文件了。

规则一: 缩进

YAML使用一个固定的缩进风格表示数据层结构关系。Salt需要每个缩进级别由两个空格组成。不要使用tabs。

规则二: 冒号

Python的字典当然理所当然是简单的键值对。其他语言的用户应该知道这个数据类型叫哈希表或者关联数组。

字典的keys在YAML中的表现形式是一个以冒号结尾的字符串。Values的表现形式冒号下面的每一行,用一个空格隔开:

my_key: my_value

在Python中,上面的将映射为:

{'my_key': 'my_value'}

另一种选择,一个value可以通过缩进与key联接。

my_key:
my_value

注解

上面的语法是有效的YAML,但是在SLS文件罕见,因为通常情况下,一个key的value不是单一的,而是一个 列表 的values。

在Python中,上面的将映射为:

{'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/

最新文章

  1. LoadRunner免费公开课,惠普金牌讲师亲授
  2. 全端开发必备!10个最好的 Node.js MVC 框架
  3. CKEditor使用配置方法
  4. nginx 反向代理TCP mysql
  5. BZOJ3294: [Cqoi2011]放棋子
  6. android 6.0权限判断 音频 拍照 相册
  7. Scrum中的User Story
  8. 面试大总结:Java搞定面试中的链表题目总结
  9. Linux权限分析
  10. 初学python之路-day07-数据类型总结
  11. JAVA第三次实训作业
  12. 20175311 2018-2019-2 《Java程序设计》第四周学习总结
  13. 【LeetCode】两数相加
  14. Struts通配符映射
  15. introsort(内省排序)
  16. 使用swagger 生成 Flask RESTful API
  17. java 中 Integer 传参方式的问题
  18. nginx搭建httpsserver
  19. Mybatis学习(3)关于mybatis全局配置文件SqlMapConfig.xml
  20. 海量数据mysql优化步骤

热门文章

  1. redis神器
  2. Unity3D之UGUI学习笔记(三):EventSystem
  3. 在VB中利用Nuget包使用SQLite数据库和Linq to SQLite
  4. 如何给word 文章的每段段尾添加 脚注
  5. CTF
  6. PostgreSQL的 initdb 源代码分析之三
  7. WIM更新命令(打补丁)
  8. IPv6 sokcet 编程
  9. [连载]JavaScript讲义(04)--- 函数和闭包
  10. Java 计算两个日期相差月数