是否有一些相当于 "failed_when" 的 Ansible 成功

Is there some Ansible equivalent to "failed_when" for success

查看有关错误处理的文档Ansible error handling

我只看到一种使配置失败的方法 fail_when,我想知道是否有相反的方法。

看起来像这样的东西:

- name: ping pong redis
  command: redis-cli ping
  register: command_result
  success_when: "'PONG' in command_result.stderr"

谢谢。

似乎没有这个功能,至少我在邮件列表上的建议没有得到回应:

https://groups.google.com/forum/#!topic/ansible-project/cIaQTmY3ZLE

知道 failed_when 的行为与其语义不同可能会有帮助:

- name: ping pong redis
  command: redis-cli ping
  register: command_result
  failed_when: 
    - "'PONG' not in command_result.stderr"
    - "command_result.rc != 0"
如果 return 代码为 0 且 stderr 中没有 'PONG',

不会 失败。 因此,如果列表中的任何一个是 False

,它就会通过

我想也许 assert module 就是您想要的。

New in version 1.5

Examples:

- assert: { that: "ansible_os_family != 'RedHat'" }