Ich bin neu bei Ansible. Ich habe ein Playbook erstellt, das PowerShell verwendet, um Ihr Passwort für Ihr Administratorkonto zurückzusetzen. Das Skript verfügt über eine Prüfung, die das Passwort nur zurücksetzt, WENN das Konto aktiviert ist. Wenn das Konto deaktiviert ist, wird eine write-host
Meldung ausgegeben, dass ein Ticket erstellt werden soll.
Das funktioniert alles einwandfrei, der Job endet jedoch mit einem grünen Status. Technisch gesehen ist das korrekt, da das gesamte Playbook korrekt ausgeführt wurde. Der Endbenutzer wird jedoch denken, dass das Kennwort zurückgesetzt wurde. (Ja, die Meldung besagt eindeutig, dass dies nicht der Fall war, aber ich weiß, wie Benutzer sind, sie lesen nicht und achten nur auf Farben.)
Meine Frage ist also,win_shell
Wie kann ich die Farbe des Jobs von grün auf orange oder rot ändern??
Ich weiß, dass es mit möglich ist, ansible.windows.win_powershell
aber wir haben dieses Modul nicht. Also muss es mit sein win_shell
.
Ich hoffe, das ist eine einfache Frage. Vielen Dank.
Bearbeiten, Lösung:
Vielen Dank an Hendrik Pingel. Ich habe darauf geachtet, den folgenden Satz erst einzufügen, nachdem alle erforderlichen Änderungen vorgenommen wurden. Wenn das Skript dies also nicht ausspuckt, ist etwas schiefgelaufen und ich kann die Farbe bedenkenlos auf Rot ändern.
- 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.
Antwort1
Die Fehlerbedingungen einer Aufgabe können kontrolliert werden mit demfehlgeschlagen_wannbedingt.
Wenn eine Aufgabe immer fehlschlagen sollte, können Sie Folgendes tun:
- name: fail always
ansible.builtin.debug:
msg: "Failed"
failed_when: always
Wenn der Fehlerzustand auf einer bestimmten Befehlsausgabe basieren soll, gehen Sie etwa wie folgt vor:
- 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'
Antwort2
Beenden Sie Ihr Skript mit einem Fehlercode.
if ($account.disabled) {
Write-Host "Account is disabled"
Exit 1
}