我目前正在编写一个遵循这种通用格式并通过 cron 作业运行的 Ansible 游戏:
pre_tasks:
-Configuration / package installation
tasks:
-Work with installed packages
post_tasks:
-Cleanup / uninstall packages
上面的问题是,有时节中的命令tasks
失败,当它失败时,post_tasks
节不运行,使系统处于混乱状态。post_tasks
即使发生故障或致命错误,是否可以强制命令运行?
我目前的方法是应用于ignore_errors: yes
该部分下的所有tasks
内容,然后when:
对每个任务应用条件以单独检查先前的命令是否成功。
这个解决方案似乎是一个 hack,但它变得更糟,因为即使使用ignore_errors: yes
set,如果一个任务遇到致命错误,整个游戏仍然会立即失败,所以我还必须运行一个 cron'd bash 脚本来手动检查事情达到播放执行后。
我想要的只是保证即使tasks
失败,post_tasks
仍然会运行。我确信有一种方法可以做到这一点,而无需求助于 bash 脚本包装器。