【发布时间】:2022-12-28 17:35:36
【问题描述】:
如果有一个 Ansible 任务,有时会因为创建用户帐户期间的一些错误而失败。特别是如果用户帐户已经在使用中并且用户已登录。如果任务失败并显示特定错误消息,例如“用户帐户正在使用”,则播放必须继续。那时不需要失败,而只是在预定义的错误消息上。任务看起来像这样。
- name: modify user
user:
state: "{{ user.state | default('present') }}"
name: "{{ user.name }}"
home: "{{ user_base_path }}/{{ user.name }}"
createhome: true
因为它不是 shell 命令,所以我不能简单地注册一个 var 并检查 .rc 的输出。当我注册一个 var 并在调试模式下打印它时,我也没有得到 stderr 或 stdout。这是我检查错误消息的第一种方法。我的想法用完了,如何过滤特定错误并通过任务,但其他一切都失败了。 ignore_errors: yes 不是一个好的解决方案,因为在某些情况下任务应该会失败。
【问题讨论】:
-
Register 可以在没有 shell 模块的情况下使用。
-
这是正确的,但我没有将 rc 作为返回值,并且出于某种原因我也没有看到用户模块的 stdout 或 stderr。这使得很难过滤特定错误。
标签: ansible