1.Ad-Hoc的问题
通过对 AD-HOC 的学习,我们发现 AD-HOC 每次只能在被管理节点上执⾏简单的命令。
⽽⽇常⼯作中,我们往往⾯临的是⼀系列的复杂操作,例如我们有可能需要安装软件、更新配置、启动服务等等⼀系列操作的结合。此时再通过 AD-HOC 去完成任务就有些⼒不从⼼了在这种场景下,Ansible引进了 PLAYBOOK 来帮忙我们解决这样复杂问题。
2.YAML
a.特点
YAML ⽂件
- 以 # 为注释符
- 以 .yml 或者.yaml 结尾
- 以 — 开始 , 以 … 结束, 但开始和结束标志都是可选的
b.基本语法
- ⼤⼩写敏感
- 使⽤缩进表示层级关系
- 缩进时是使⽤Tab键还是使⽤空格⼀定要达到统⼀,建议使⽤
- 空格。
- 相同层级的元素必须左侧对⻬即可
YAML支持的数据结构有三种
- 字符串
- 列表
- 字典
c.字符串
YAML 中的字符串可以不使⽤引号,即使⾥⾯存在空格的时候,当然了使⽤单引号和双引号也没有错。
例如:
this is a string
'this is a string'
"this is a string"
YAML 中若⼀⾏写不完你要表述的内容的时候,可以进⾏折⾏。
例如:
long_line: |
Example 1
Example 2
Example 3
#或者
long_line: >
Example 1
Example 2
Example 3
d.列表
若熟悉 Python 的话, 可以认为它就是Python中的List。
如何定义?
以短横线开头 + 空格 + 具体的值
例如:
- red
- green
- blue
e.字典
若熟悉 Python 的话, 可以认为它就是 Python 中的 Dict
如何定义?
key + 冒号(😃 + 空格 + 值(value)
即----key:value
例如:
name: Using Ansible
code: D1234
#转换为 python 的 Dict
{'name': 'Using Ansibel', 'code': 'D1234'}
f.混合结构
例子:
使⽤列表和字典的形式去描述⼀个班级的组成。
---
class:
- name: stu1
num: 001
- name: stu2
num: 002
- name: stu3
num: 003
# {'class': [{'name': 'stu1', 'num': 1},{'name':
'stu2', 'num': 2},...]}
...
h.验证YAML语法
将YAML⽂件,通过 Python 的YAML 模块验证, 若不正确则报错。若正确则会输出 YAML ⾥的内容。
注意使⽤时,⼀定确保安装了yaml 软件包。
python -c 'import yaml,sys;print yaml.load(sys.stdin)' < myyaml.yml
python3 -c 'import yaml,sys;print(yaml.load(sys.stdin))' < myyaml.yml
现在设置myyaml.yml的值:
一定要记得格式是-+空格+值文章来源:https://www.toymoban.com/news/detail-495671.html
python -c 'import yaml,sys;
print yaml.safe_load(sys.stdin)' < myyaml.yml
为什么一定要记得格式呢,给大家看一个错误的例子:
设置myyaml.yml:
那么执行命令会是什么效果呢?
文章来源地址https://www.toymoban.com/news/detail-495671.html
到了这里,关于Ansible之YAML的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!