我是 Ansible 的新手。我建立了一個使用 PowerShell 重設管理員帳戶密碼的劇本。該腳本有一項檢查,僅在啟用帳戶時才重設密碼。當帳戶被停用時,它會提示write-host
他們應該建立票證。
這一切都工作正常,但是,作業以綠色狀態結束。從技術上講,這是正確的,因為整個劇本運行正確。但對於最終用戶來說,他/她會認為密碼被重置了。 (是的,該訊息明確指出沒有,但我知道用戶的情況,他們不閱讀,只看顏色)。
所以我的問題是win_shell
如何將作業的顏色從綠色變更為橙色或紅色?
我知道這是可能的,ansible.windows.win_powershell
但我們沒有那個模組。所以它必須與win_shell
.
希望這是一個簡單的問題。非常感謝你。
編輯,解決方案:
感謝下面的亨德里克·平格爾。我確保只在完成所有需要的更改後才包含下面的短語。因此,除非腳本將其吐出,否則就會出現問題,我可以安全地將顏色變更為紅色。
- name: Change flag to red if there was no success in the message output.
debug:
msg: "{{lookupResult.stdout_lines}}"
failed_when: '"Password reset was a success" not in lookupResult.stdout'
S。
答案1
任務的失敗條件可以透過以下方式控制失敗_時間有條件的。
如果任務總是失敗,可以這樣做:
- name: fail always
ansible.builtin.debug:
msg: "Failed"
failed_when: always
如果失敗條件應基於命令的特定輸出,請執行以下操作:
- name: Check if a file exists in temp and fail task if it does
ansible.builtin.command: ls /tmp/this_should_not_be_here
register: result
failed_when: '"No such" not in result.stdout'
答案2
退出腳本並顯示錯誤代碼。
if ($account.disabled) {
Write-Host "Account is disabled"
Exit 1
}