В ansible, с помощью win_shell (Powershell), как принудительно перевести задание в состояние failed

В ansible, с помощью win_shell (Powershell), как принудительно перевести задание в состояние failed

Я новичок в 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'

С.

решение1

Условия отказа задачи можно контролировать с помощьюfailed_whenусловный.

Если задача всегда терпит неудачу, можно сделать следующее:

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

Связанный контент