1、yaml的基础语法:
pip install pyyaml
>>> import yaml
>>> f = open("/home/hadoop/yaml/test.yml")
>>> res = yaml.load(f)
>>> print(res)
案例一:
---
name:xiaowei
age: 20
sex: male
对应json结果:{'age': 20, 'name': 'xiaowei', 'sex': 'male'} #一个字典,包含三个元素,每一元素都是一个k/v键值对
案例二:
---
name:
id: 001
age: 20
sex: male
对应json结果:{'name': {'age': 20, 'id': 1, 'sex': 'male'}} # 也是一个字典,只包含一个元素,key为name,value是一个字典包含三个k/v对
案例三:
---
- 1
- 2
- hello
- world
对应json结果:[1, 2, 'hello', 'world'] #一个列表包含四个元素, 用减号"- "分隔的都是属于同一个列表的
案例四:
---
1
2
hello
world
对应json结果:1 2 hello world #四个字符串
案例五:
--- # yaml格式文件的首行必须以三个"-"开始
- name: add profile info fo user # "-"减号表示列表中一个元素的开始,直到出现下一个减号为止
copy:
src: example_profile
dest: /home/hadoop/.profile
owner: hadoop
group: hadoop
mode: 0744
- name: add private keys for user
copy: #这种":"冒号后面换行的表示下面的一整块都是这个key对应的value
src: item_src #这种整齐的放在一起的,左对齐的key:value块属于同一字典map
dest: /home/.ssh/item_src
owner: hadoop
group: hadoop
mode: 0600
when:ansible_os_family == "Redhat"
sudo: yes
对应json结果: [
{
'copy': {'dest': '/home/hadoop/.profile', 'src': 'example_profile', 'group': 'hadoop', 'mode': 484, 'owner': 'hadoop'},
'name': 'add profile info fo user'
},
{
'copy': {'dest': '/home/.ssh/item_src', 'src': 'item_src', 'group': 'hadoop', 'mode': 384, 'owner': 'hadoop'},
'name': 'add private keys for user',
'when': 'ansible_os_family == "Redhat"',
'sudo': 'yes'
}
]