《Ansible Playbook扩展:block块》

一、用块分组任务

block任务块就是一组逻辑的tasks。使用block可以将多个任务合并为一个组。

示例如下:

- block:
  - name: 检查{{ service }}服务{{ role }}节点端口
    shell: nc -vz {{ MYSQL_MASTER_HOST }} {{ MYSQL_MASTER_PORT }} && echo "Found" || echo "Notfound"
    register: check_port_status

  - name: 输出{{ service }}服务{{ role }}节点状态结果
    assert:
      that:
        - "'Found' in check_port_status.stdout"
      fail_msg: "The {{ service }} service {{ role }} node is abnormal"
      success_msg: "The {{ service }} service {{ role }} node is running normal"
      
  tags: check
  ignore_errors: False

说明:tags和ignore_errors,都将应用于块中的每个任务上。


二、使用块处理错误

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

# block:block里的tasks,如果运行正确,则不会运行rescue;
# rescue:block里的tasks,如果运行失败,才会运行rescue里的tasks
# always:block和rescue里的tasks无论是否运行成功,都会运行always里的tasks

示例如下:

  - name: modify config and test
    # block中的任务是首先要执行的
    block:
      - name: backup config file
        command: cp /etc/nginx/nginx.conf /etc/nginx/conf-backup/nginx.conf
 
      - name: nginx config file add "include"
        lineinfile:
          path: /etc/nginx/nginx.conf
          insertafter: 'include /etc/nginx/conf.d/'
          line: 'include /etc/nginx/site-enabled/*.conf;'
 
      - name: nginx config test
        command: nginx -t
    # block执行失败会执行rescue
    rescue:
      - name: move failed config file
        command: mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf-failed
      - name: copy backup file
        command: mv /etc/nginx/conf-backup/nginx.conf /etc/nginx/
    # 无论block执行成功还是失败,都会执行always
    always:
      - name: add operation recode
        shell: echo `date` modify config >> /etc/nginx/conf-backup/modify-config.log

说明:block中的任务是首先要执行的,block执行失败会执行rescue,无论block执行成功还是失败,都会执行always。


总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值