playbook中的block rescue always

15 篇文章 0 订阅
13 篇文章 0 订阅

1、块的划分

playbook中会定义三种块,三种块的作用方式分别如下:

block:定义运行的主任务;

rescue:定义在block任务失败后,执行的任务;

always:任何时候都独立执行的任务。

企业中当产品更新时,新产品出在block中,原来产品处于rescue中,如果新产品没有问题,可直接运行,当新产品更新出现问题可继续运行原来产品,对新产品进行检修,达到系统运行稳定。

2、示例说明

##block,rescue,always的演示
  1 ---
  2 - name: Task Failure
  3   hosts: all
  4   vars:
  5     web_pkg: httpd
  6     db_pkg: mariadb-server
  7     db_service: mariadb
  8   tasks:
  9     - name: Check time
 10       command: date
 11       register: command_result
 12       changed_when: false
 13     - name: Print time
 14       debug:
 15         var: command_result.stdout
 16     - name: set up web
 17       block:      ##主程序块
 18         - name: Install {{ web_pkg }} packages
 19           yum:
 20             name: "{{ web_pkg }}"
 21             state: present
 22#           failed_when: web_pkg == "httpd"  ##设置失败条件,事block和resuce块同时运行
 23       rescue:   ##失败时运行的程序
 24         - name:  Install {{ db_pkg }} packages
 25           yum:
 26             name: "{{ db_pkg }}"
 27             state: present
 28       always:   ##任何时候都会执行的程序
 29         - name: Start {{ db_service }} services
 30           service:
 31             name: "{{ db_service }}"
 32             state: started
                                                        
结果分析

 若在block加上失败条件判断,将原执行成功之后的结果改为失败,则resuce也会执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值