【发布时间】:2021-05-26 16:24:30
【问题描述】:
我们有一个类似下面的 ansible 任务
- name: Check if that created
script: verification.sh
register: verification
changed_when: verification.rc == 1
上述任务运行一个脚本,如果失败或成功返回退出信号。一个示例部分是
if [[ "$item" == "$name" ]]; then
printf "TEST"
exit 1
fi
问题在于,当返回 0 值以外的退出信号时,ansible 中的 ssh 似乎终止并给出错误
TASK [Test Task] ******************
fatal: [default]: FAILED! => {"changed": true, "failed": true, "rc": 1, "stderr": "Shared connection to 127.0.0.1 closed.\r\n", "stdout": "TEST", "stdout_lines": ["TEST"]}
但是,当我们在脚本中返回 0 的退出信号时,这会起作用
我猜这是因为“exit”在远程主机上运行,然后它终止了 ssh 连接。
我们如何绕过这个并在不出现错误的情况下返回退出信号。
【问题讨论】: