我們有一個ansible任務,它看起來像下面有ansible運行腳本,而不退出代碼停止ssh連接
- 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連接。
我們如何繞過這一點,讓退出信號返回而不會出現錯誤。