Ansible中的playbook

playbook功能
playbook是由一个或多个play组成的列表
playbook文件使用YAML来写
YAML
是一种表达资料序列的格式,类似XML
全名Yet Another Markup Language
2001年首次发表
www.yaml.org
特点
可读性好
和脚本语言交互性好
易于实现
使用程序执行流梳理方式
可扩展性强
语法简介
在文件中用—开始,用…结尾
次行一般书写文件内容
缩进严格
大小写敏感
key/value可以多行书写也可以一行书写,一行书写用“,”隔开
value可以是个字符串,也可以是list
一个play需要包括name和tasks
name是描述
tasks时动作
一个name只能包含一个tasks
扩展名称yml或yaml
YAML列表
[user1,user2,user3,user4]
- user1
- user2
- user3
- user4
YAML字典
字典的作用:存放键值
name: westos
age: 12
jobs: linux
{name: “westos”, age: “12”, jobs: “linux”}
playbook执行命令
ansible-playbook xxxxx.yml …
- -check|C:检测
- -syntax-check:检测语法
- -list-hosts:列出hosts
- -list-tags:列出tag
- -list-tasks:列出tasks
- -limit:指定执行主机
- v -vv:显示过程
例如
编写实验文件
vim user.yml
Ansible中的playbook
ansible-playbook user.yml(执行playbook)
Ansible中的playbook
ansible-playbook user.yml --check(检测执行)
Ansible中的playbook
ansible-playbook user.yml --syntax-check(检测语法)
Ansible中的playbook
ansible-playbook user.yml --list-hosts(列出hosts)
Ansible中的playbook
ansible-playbook user.yml --list-tags(列出tag)
Ansible中的playbook
ansible-playbook user.yml --list-tasks(列出tasks)
Ansible中的playbook
ansible-playbook user.yml --limit(指定执行主机,必须时在playbook中指定过的主机)
Ansible中的playbook
ansible-playbook user.yml -v(显示执行过程)
Ansible中的playbook
ansible-playbook user.yml -vv(显示更详细的执行过程)
Ansible中的playbook
playbook的核心组件
name:可选,建议使用,多用于说明
hosts:受控主机列表
tasks:任务,用于执行部分代码
playbook的格式设定技巧
autocmd FileType yaml setlocal ai ts=2 sw=2 et
setlocal:设定当前文件
ai:自动退格对其(auto indent)
ts:设定tab建等于空格数 (tabstop=2)
sw:缩进长度为2(shiftwidth=2)
et:把tab建变成空格(expandtab)
vim .vimrc(必须在当前操作用户的家目录下设定)
Ansible中的playbook