循环
循环迭代任务
简单循环loop
loop:赋值列表
{{item}}:迭代变量名称
实例:
vim loop.yml
运行
循环散列或字典列表
运行
条件判断
when:
- 条件1
- 条件2
判断符号
=:value == “字符串”,value == 数字
<:value < 数字
>:value > 数字
<=:value <= 数字
>=:value >= 数字
!=: value != 数字
is defined value:value is defined
is not defined: value is not defined
bool变量为true:value
bool变量false:not value
实例:
vim when.yml
运行
vim when.yml
运行
vim when.yml
运行
vim when.yml
运行
多条条件组合
when:
条件1 and 条件2
- 条件1
- 条件2
when:
条件1 or 条件2
when:
条件1
or
条件2
实例:
cat inventory
vim when.yml
运行
vim when.yml
运行
vim when.yml
运行
vim when.yml
运行
触发器
notify:触发器当遇到更改是触发handlers
handlers:触发器触发后执行的动作
实例
vim when.yml
如果created user发生改变
如果没有发生改变
处理任务失败继续执行
ignore_errors
ignore_errors:yes 将会忽略任务失败使下边的任务继续运行
实例:
vim error.yml
任务失败,执行终止
vim error.yml
任务失败,不中断
force_handlers
当任务失败后play被终止也会调用触发器进程
vim when.yml
运行失败也会执行handlers
changed_when
控制任务在何时报告它已经进行更改
vim file.yml
运行
vim file.yml
运行
failed_when
当符合条件时任务失败
实例:
vim file.yml
运行
block:定义要运行的任务
rescue: 定义当block句子中出现失败后运行的任务
always: 定义最终独立运行的任务
测试练习
建立playbook ~/westos.yml要求如下:
建立大小为1500M名为/dev/vdb1的设备
如果/dev/vdb不存在请输出:
/dev/vdb is not exist
如果/dev/vdb大小不足1500M请输出:
/dev/vdb is less then 1500M
并建立800M大小的/dev/vdb1
此设备挂载到/westos上
vim westos.yml
运行
查看