Bootstrap

Ansible中Playbook的逻辑控制语句-block

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中的任务
;