gpt4 book ai didi

shell 命令返回零的 Ansible 错误

转载 作者:行者123 更新时间:2023-12-04 14:38:37 25 4
gpt4 key购买 nike

Ansible 似乎无法处理 shell 命令的结果“0”。这个

- name: Check if swap exists
shell: "swapon -s | grep -ci dev"
register: swap_exists

返回错误

"msg": "non-zero return code"



但是当我用“type”替换“dev”时,实际上总是发生并且计数至少为1,那么命令成功并且没有抛出错误。

我也试过 command:而不是 shell: - 它没有给出错误,但是命令也没有执行。

最佳答案

因为你想运行一系列涉及管道的命令,你应该使用 ansible 状态 shell而不是 command ,正如你所做的那样。

所以,问题在于 grep 返回 1(在 swapon 输出上没有找到匹配项),ansible 认为这是一个失败。由于您确定没有问题,只需添加 ignore_errors: true并完成它。

- name: Check if swap exists
shell: "swapon -s | grep -ci non_existent_string"
register: swap_exists
ignore_errors: true

或:

如果您想缩小范围以返回代码 0 和 1,请指示 ansible 不要考虑这两个 rcs 的失败:
- name: Check if swap exists
shell: "swapon -s | grep -ci non_existent_string"
register: swap_exists
# ignore_errors: true
failed_when: swap_exists.rc != 1 and swap_exists.rc != 0

关于shell 命令返回零的 Ansible 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50440515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com