我是 Ansible 的新手。我创建了一个使用 PowerShell 重置管理员帐户密码的剧本。该脚本有一个检查,只有在帐户启用时才会重置密码。当帐户被禁用时,它会显示一条write-host
消息,提示他们应该创建一张票。
一切都运行正常,但是,作业以绿色状态结束。从技术上讲,这是正确的,因为整个剧本都正确运行。但对于最终用户来说,他/她会认为密码已重置。(是的,消息清楚地表明没有,但我知道用户是什么样的,他们不阅读,只看颜色)。
所以我的问题是win_shell
我怎样才能将作业的颜色从绿色改为橙色或红色?
我知道可以用,ansible.windows.win_powershell
但是我们没有那个模块。所以只能用win_shell
。
希望这是一个简单的问题。谢谢。
编辑,解决方案:
感谢下面的 Hendrik Pingel。我确保在完成所有需要的更改后才包含下面的短语。因此,除非脚本吐出这个,否则就会出错,我可以安全地将颜色更改为红色。
- 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
任务的失败情况可以通过以下方式控制失败时有條件的。
如果某项任务总是失败,则可以执行以下操作:
- 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
}