Ansible - ignore_errors WHEN

时间:2017-03-07 16:41:50

标签: ansible

Ansible 2.0.4.0

大约有三个任务随机失败。失败的输出是:

OSError: [Errno 32] 
Broken pipefatal: [machine1]: FAILED! => {"failed": true, "msg": "Unexpected failure during module execution.", "stdout": ""}

如果错误输出中有Errno 32,是否可以忽略错误。

- name: This task sometimes fails
  shell: fail_me!
  ignore_errors: "{{ when_errno32 }}"

我知道这是一种解决方法。 解决“真实”问题可能会占用更多时间。

2 个答案:

答案 0 :(得分:9)

您可以使用failed_when来控制任务在Ansible中何时失败,但您不能将ignore_errors用于特定的返回码,这是一个简单的是/否切换。

因此,在您的情况下,您可以添加表达式:

<record model="ir.ui.view" id="sale_order_webcounter_form_view">
    <field name="name">order.webcounter</field>
    <field name="model">sale.order</field>
    <field name="inherit_id" ref="sale.view_order_form"/>
    <field name="arch" type="xml">
        <notebook position="inside">
            <page string="Other information">
                <field name="attachment_file" string="Attachment" widget='image' class="oe_avatar oe_right" />
            </page>
        </notebook>
    </field>
</record>

答案 1 :(得分:-2)

您也可以尝试使用ignore_errors

- name: This task sometimes fail & igonre that tasks and execute next task

  shell: fail_me!

  ignore_errors: true