playbook的逻辑控制语句
- when
- 条件判断语句,类似if
- loop
- 循环语句,类似loop
- block
- 将几个任务组成一个代码块,便于针对一组操作的异常进行处理
block块
使用block模块将多个任务组合
- 使用
block
模块,可以将需要满足同一条件的任务组合在一起,如下:
tasks:
- block:
- command: echo 1
- shell: echo 2
- raw: echo 3
when: ansible_distribution == 'CentOS'
# 当满足条件时,上述三个任务会被执行
block错误处理
- 当block块中的任务执行失败时,可以使用
rescue
模块来处理异常 - 可以配合
always
模块来一同处理
tasks:
- block:
- command: echo 1
- shell: echo 2
- raw: echo 3
rescue:
- command: echo 4
always:
- command: echo 5
# 当block中的任务执行失败时,会执行rescue中的任务
# 当block中的任务执行成功时,不会执行rescue中的任务
# 无论block中的任务执行成功还是失败,都会执行always中的任务