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