ansible中的playbook
Playbook的功能
playbook 是由一个或多个play组成的列表,playbook配置文件使用YAML语法,具有简洁明了、结构清晰等特点。playbook配置文件类似于shell脚本,是一个YAML格式的文件,用于保存针对特定需求的任务列表。上面介绍的ansible命令虽然可以完成各种任务,但是当配置一些复杂的任务时,逐条输入就显得效率非常底下了。更有效的方案是在playbook配置文件中防止所有的人物代码,利用ansible-playbook命令执行该文件,可以实现自动化运维。Playboot 文件使用.yaml或.yml来写的
YAML
YAML是一种表达资料序列的格式,类似XML
,Yet Another Markup Language,2001年首次发表,www.yaml.org。
**特点:**
可读性好、脚本语言交互性号、易于实现、适用程序执行流梳理方式、可扩展性强
**语法节简介:**
1)在文件中用[---]开始,用[...]结尾。
2)次行一般书写文件内容
3)缩进严格
4)大小写敏感
5)key/value可以多行书写也可一行书写,一行书写用,隔开
6)value可以是个字符串,也可是list
7)一个play需要包括name和task,name 是描述,task 是动作,一个name只能包含一个task,扩展名称yml或者yaml。
playbook执行命令
ansible-playbook xxx.yml …
-C | 预执行 |
---|---|
–syntax-check | 检测语法 |
–list-hosts | 列出hosts |
–list-tags | 列出tag |
–list-tasks | 列出task |
–limit | 指定执行主机 |
-v -vv | 现实过程 |
检测语法
指定主机执行
列出
-vv 显示实现过程
Playbook的核心组件
name | 可选,建议使用多用于说明 |
---|---|
hosts | 受控主机列表 |
tasks | #任务,用与选择执行部分代码 |
vim 设定技巧
autocmd FileType yaml setlocal ai ts=2 sw=2
setlocal ##设定当前文件
ai ##自动退格对齐 auto indent
ts ##tab建长度为2空格 tabstop=2
sw ##缩进长度为2 shiftwidth=2
et ##把tab键变成空格 expandtab
用脚本的方式在/mnt/下面建立三个文件