ansible的block任务块
block任务块
就是一组逻辑tasks
block,rescue,always三件套
block里是主要的tasks,如果运行正确,不会运行rescue;
block里的tasks运行失败了,才会运行rescue里的tasks;
block和rescue里的tasks无论是否运行成功,都会运行always里的tasks。
---
- name: block_rescue_always演示
hosts: all
tasks: tasks1
- name: 更新数据库
block:
- name: 执行更新数据库
shell:
cmd: /usr/local/lib/upgrade_database
# 如果执行更新数据库失败,就会执行回滚数据库进行补救
rescue:
- name: 回滚数据库
shell:
cmd: /usr/local/lib/revert_database
# 不管block和rescue的执行结果,都会重启数据库服务
always:
- name: 总是重启数据库服务
service:
name: mariadb
state: restarted
rescue
英文意思是救援,补救
rescue的作用:类似于python中的except(异常处理),block运行出错时才会执行的代码。
always
always的作用:类似于python中的finally(语句无论是否发生异常都将执行最后的代码)