Ansible忽略任务中的错误,若任何任务有错误,则在剧本末尾失败
我正在学英语。我有一个剧本来清理资源,我希望剧本能够忽略每一个错误,一直持续到最后,如果有错误,最后就会失败 我可以忽略错误Ansible忽略任务中的错误,若任何任务有错误,则在剧本末尾失败,ansible,ansible-playbook,Ansible,Ansible Playbook,我正在学英语。我有一个剧本来清理资源,我希望剧本能够忽略每一个错误,一直持续到最后,如果有错误,最后就会失败 我可以忽略错误 ignore_errors: yes 如果这是一项任务,我可以做(从ansible错误捕获) 我最后怎么会失败?我有几个任务,我的“何时”条件是什么?使用模块 对出现错误时需要忽略的每项任务使用“忽略错误” 每当任务执行失败时,设置一个标志(例如,result=false) 在剧本的末尾,检查是否设置了标志,并根据该标志,使执行失败 更新: 使用register存储
ignore_errors: yes
如果这是一项任务,我可以做(从ansible错误捕获)
我最后怎么会失败?我有几个任务,我的“何时”条件是什么?使用模块
- name: Set flag
set_fact: flag = failed
when: "'FAILED' in command_result.stderr"
失败模块工作得很好!谢谢 我必须在检查之前定义我的事实,否则我会得到一个未定义的变量错误 我在用引号和空格设置事实时遇到了问题 这起到了作用:
set_fact: flag="failed"
这引发了以下错误:
set_fact: flag = failed
您可以在块中包装所有可能失败的任务,并对该块使用
ignore\u errors:yes
tasks:
- name: ls
command: ls -la
- name: pwd
command: pwd
- block:
- name: ls non-existing txt file
command: ls -la no_file.txt
- name: ls non-existing pic
command: ls -la no_pic.jpg
ignore_errors: yes
阅读有关块中错误处理的更多信息。谢谢!如何仅在ansible中的错误上设置标志?请参阅更新。基本上,您是在每次任务执行后设置此标志。如果在此剧本末尾,标志设置为失败,则剧本失败。只有当您的任何任务失败时,它才会设置为失败。否则它将不会被设置为失败,playbook执行将成功。当和
命令结果失败时,您可能希望查看失败,\u而不是字符串处理(它将为您提供一些对其他命令更通用的工作).我们有没有办法将其标记为失败,而不是忽略并继续执行。但最终它将如何失败?我认为这并不能回答问题。
set_fact: flag = failed
tasks:
- name: ls
command: ls -la
- name: pwd
command: pwd
- block:
- name: ls non-existing txt file
command: ls -la no_file.txt
- name: ls non-existing pic
command: ls -la no_pic.jpg
ignore_errors: yes