可以通过在Ansistrano中添加错误处理步骤来检测部署失败。以下是一个示例:
在deploy.yml文件中添加可选步骤:
- name: "Rollback on deploy failure"
block:
- name: "Deploy application"
ansible.builtin.shell: "php artisan migrate --force"
- name: "Verify deployment success"
ansible.builtin.uri:
url: http://{{ inventory_hostname }}
status_code: 200
method: GET
rescue:
- name: "Rolling back deploy"
ansistrano.rollback:
在上面的例子中,如果Deploy application
或Verify deployment success
步骤返回任何错误,将调用ansistrano.rollback
步骤来回滚部署。
在这种情况下,Ansistrano可以在应用程序的当前版本与上一个版本之间交替或切换。在Ansistrano的源代码库中可以找到更多的错误处理(error-handling)示例代码和参考文档。