首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Anisble塔将使用max_fail_percentage的playbook标记为失败

Anisble塔将使用max_fail_percentage的playbook标记为失败
EN

Stack Overflow用户
提问于 2021-11-16 04:17:19
回答 1查看 39关注 0票数 0

有没有人有使用Ansible playbook选项的经验:塔中的max_fail_percentage?

我目前正在使用此选项,因此只要不超过50%的主机出现故障,我的配置攻略就可以继续。例如,有两个主机,如果一个通过了,一个失败了,尽管失败了,游戏仍将继续,并将一直运行到完成。我已经测试了这个功能,它正在工作。

出乎意料的是,即使一半的主机失败了,游戏一直运行到最后,Ansible to也会将整个游戏标记为失败……这对我来说是一个问题,因为当游戏完成时,我会根据总体成功/失败状态发送通知。

这是预期的行为吗?有没有人知道我如何改变这种行为,并将游戏标记为成功?

Play status

播放重述*********************************************************************

HOST1 : ok=25 changed=0 unreachable=0 failed=2 skipped=8

本地主机: ok=4 changed=2 unreachable=0 failed=0 skipped=0

HOST2 : ok=23 changed=2 unreachable=0 failed=0 skipped=8

EN

回答 1

Stack Overflow用户

发布于 2021-11-16 04:40:30

这是预期的行为,因为您的一个主机出现故障。其余主机结束是正常行为(max_fail_percentage允许您提前结束游戏,它不会阻止游戏结束),然后塔看到一些事情失败,因此它将游戏标记为失败。

据我所知,唯一能清除错误的就是使用rescue。这可能不适用于塔,因为任务在技术上仍然是失败的,但它值得一试。

代码语言:javascript
复制
- hosts: localhost
  gather_facts: false
  tasks:
    - block:
        - assert:
            that:
              - inventory_hostname.startswith('s')
      rescue:
        - debug:
            msg: It's all good
代码语言:javascript
复制
PLAY [localhost] ***************************************************************

TASK [assert] ******************************************************************
fatal: [localhost]: FAILED! => {
    "assertion": "inventory_hostname.startswith('s')",
    "changed": false,
    "evaluated_to": false,
    "msg": "Assertion failed"
}

TASK [debug] *******************************************************************
ok: [localhost] => {
    "msg": "It's all good"
}

PLAY RECAP *********************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=1    ignored=0   
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69983702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档