要学好Ansible,Playbook是必须的,
playbook是yaml文件格式,这令很多初次接触yaml文件的朋友痛苦不堪,什么时候会用到 "-" 什么时候不用到"-" 头大
不废话,本文将结合python来问做yaml文件的详解
首先我们写简单的yaml,此段yaml语言和playbook无关,但是对于认识yaml非常有帮助
这是我写的一个简单的yaml,但是对认识yaml很有帮组,闲话不说我们看是解析,这个yaml
运用python对yaml解析了以后
看着是不是很眼熟,对是一个json字符串
也就是key-value的形式,大部分编程语言都可以将json翻译成自己的数据类型
首先我们来解析这串字符串
app这个key所对应的值是另外一组json字符串,这个字符串,又包含了三组键值对
(key-hostname,value-centos),(key-hosts,value-[‘10.0.0.1‘,‘10.0.0.2‘,‘10.0.0.3‘]),(key-name,value-‘test dev prd‘)
于是我们得知
1.app对应的值是一个json字符串
2. hostname对应的是一个字符串
3.”-“ ip地址,表示的是一个列表,或者叫数组。
4.而不加“-” 的解析出来是带空格的字符串
那我们再看一个yaml:
比上次那个稍稍复杂了一些
这个我给排下版:
{‘app‘:
‘[{‘hostname‘:.....},
{’hostname‘:.....}]‘
}
这个json字符串
app 的value 是一个数组(列表),
数组是由两个json字符串
在json字符串中有一个特点,很重要的特点就是key不允许有重复。
数组的特性,允许重复,但是实际工作中我们要用到重复的key怎么办,把它变成数组
于是我们就可以需要在写yaml的时候在需要用重复的key前面加 “-” 至于值什么时候需要加 -,就看你希望以那种数据类型来解析这个值了
原文:https://www.cnblogs.com/juanNote/p/12327331.html