在ansible中,使用win_shell(Powershell),如何強製作業狀態為失敗

在ansible中,使用win_shell(Powershell),如何強製作業狀態為失敗

我是 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
}

相關內容