Par*_*hot 1 deployment ansible
据我所知, ansible 只在 tasks 级别进行错误处理,这对于我希望它能够做的事情来说真的不够。
具体来说,我的用例是一个普通的部署,所以我需要做的是:
除了我希望能奏效的错误处理方法之外,一切都很好。
- include: deploy.yml
ignore_errors: yes
register: deploy
- include: rollback.yml
when: deploy | failed
Run Code Online (Sandbox Code Playgroud)
......没有。
现在,我可以理解为什么它不会 - 包含任务只会测试它是否可以包含文件,而不是它包含的文件是否可以运行完成。我已经接受了这一点。
不幸的是,这让我陷入了困境。每个操作的自动错误检查,结合高级操作库,是我使用 ansible 的全部原因。但是,在没有成熟的恢复机制的情况下,收到故障通知就不再有用了。
任何人都有(理智的)解决方法?我可以include为它下的每个任务添加一个处理程序,并尝试让它以这种方式工作,但是......真的吗?那不可能是解决方案——或者,更确切地说,我不能继续对人性抱有信心并让它成为解决方案。
http://www.ansible.com/blog/ansible-2.0-launch
块将异常处理的概念引入剧本,并模仿 Python(和许多其他语言)的 try/except/finally 结构建模。这简化了剧本和任务的开发,在单个剧本中可以比以前更简单地捕获和处理任务失败。
| 归档时间: |
|
| 查看次数: |
9118 次 |
| 最近记录: |