Em ansible, com win_shell (Powershell), como forçar o status do trabalho para falha

Em ansible, com win_shell (Powershell), como forçar o status do trabalho para falha

Sou novo no Ansible. Criei um manual que usa o PowerShell para redefinir a senha da sua conta de administrador. O script possui uma verificação que só redefine a senha SE a conta estiver habilitada. Quando a conta é desativada, aparece uma write-hostmensagem dizendo que eles deveriam criar um ticket.

Tudo isso funciona bem, porém o trabalho termina com status verde. Tecnicamente, isso está correto porque todo o manual foi executado corretamente. Mas para o usuário final, ele pensará que a senha foi redefinida. (Sim, a mensagem afirma claramente que não, mas eu sei como são os usuários, eles não lêem e apenas olham as cores).

Então minha pergunta é comwin_shell como posso mudar a cor do trabalho de verde para laranja ou vermelho?

Eu sei que é possível, ansible.windows.win_powershellmas não temos esse módulo. Então tem que ser com win_shell.

Espero que esta seja uma pergunta fácil. Obrigado gentilmente.

Editar, solução:

Agradecimentos a Hendrik Pingel abaixo. Certifiquei-me de incluir apenas a frase abaixo depois que todas as alterações necessárias forem feitas. Então, a menos que o script diga isso, algo deu errado e posso mudar a cor para vermelho com segurança.

- 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.

Responder1

As condições de falha de uma tarefa podem ser controladas com ofalhou_quandocondicional.

Se uma tarefa sempre falhar, é possível fazer apenas:

    - name: fail always
      ansible.builtin.debug:
        msg: "Failed"
      failed_when: always

Se a condição de falha for baseada em uma saída de comando específica, faça algo assim:

- 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'

Responder2

Saia do seu script com um código de erro.

if ($account.disabled) {
    Write-Host "Account is disabled"
    Exit 1
}

informação relacionada