Ansible 小手册系列 十五(Blocks 分组)

当我们想在满足一个条件下,执行多个任务时,就需要分组了。而不再每个任务都要用when。

  tasks: 
   - block:
     - command: echo 1
     - shell: echo 2
     - raw: echo 3
     when: ansible_distribution == 'CentOS'

错误处理

tasks:
  - block:
      - debug: msg='i execute normally'
      - command: /bin/false
      - debug: msg='i never execute, cause ERROR!'
    rescue:
      - debug: msg='I caught an error'
      - command: /bin/false
      - debug: msg='I also never execute :-('
    always:
      - debug: msg="this always executes"

block中的任务在执行中,如果有任何错误,将执行rescue中的任务。 无论在block和rescue中发生或没有发生错误,always部分都运行。

发生错误后,运行handlers

 tasks:
  - block:
      - debug: msg='i execute normally'
        notify: run me even after an error
      - command: /bin/false
    rescue:
      - name: make sure all handlers run
        meta: flush_handlers
 handlers:
   - name: run me even after an error
     debug: msg='this handler runs even on error'

测试的时候,设置meta: flush_handlers时,handlers 不执行,rescue的任务还是执行的。


更多文章请看 Ansible 专题文章总览

推荐阅读更多精彩内容

  • 作为背锅侠运维工作的基本流程 运维工具的分类 : ansible的模块化: ansible密钥登陆 ansible...
    二郎5阅读 3,770评论 0 10
  • 本文主要内容均收集于网络上的博文资料,仅以此文作为学习总结。BTW,目前Ansible对python3的支持还不是...
    qiuyi943阅读 17,587评论 1 15
  • ###### Ansible总结 ##### 运维工作: 系统安装(物理机、虚拟机)-->程序包安装、配置、服务启...
    二郎5阅读 1,752评论 0 4
  • ansible-playbook playbook简介 playbook是ansible用于配置,部署,和管理被控...
    bdslinux阅读 9,827评论 1 12
  • 在项目中有很多地方用到ansible。最初使用ansible只是为了方便代码部署和模板配置,毕竟手动去30+台机器...
    __七把刀__阅读 10,316评论 6 80
  • 昨天晚上,手机突然各种应用开始闪退,电量也迅速的消退直至没电关机,我一如往常的插上充电器充电,今早起来电已经充满但...
    宇凡谦谦阅读 79评论 0 1
  • 从字面上来理解,就是相关类型。意思也就是被associatedtype关键字修饰的变量,相当于一个占位符,而不能表...
    TomatosX阅读 5,768评论 4 6
  • 陆 清晨,天微微亮,朴珍荣便出了门。 坐上第一班公交车,车上还没有乘客,朴珍荣走到最后一排的角落里坐下。 零零散散...
    7essie阅读 283评论 0 0
  • 前段时间有这样的一段小视频刷爆了我的朋友圈,一开始我并没太在意,只当自己是个路人经过而已,直到我妈也受到了这...
    万物至理阅读 308评论 3 3