我有一個簡單的劇本是副本的nginx服務器的一些配置文件,然後發出service nginx reload
命令出現錯誤後運行命令:如何ansible處理
---
- hosts: mirrors
tasks:
- name: Installs nginx web server
apt: pkg=nginx state=installed update_cache=true
notify:
- start nginx
- name: Copy vhost file
copy: src=vhost/test.vhost dest=/etc/nginx/sites-available/ mode=0644
- name: Symlink vhost file to enabled sites
file: src=/etc/nginx/sites-available/test.vhost dest=/etc/nginx/sites-enabled/test.vhost state=link
notify:
- reload nginx
handlers:
- name: start nginx
service: name=nginx state=started
- name: reload nginx
service: name=nginx state=reloaded
現在的問題是,它可能會發生的test.host
文件包含錯誤,nginx將無法正確重新載入。如果發生,我想運行一個命令systemctl status nginx.service
,並在執行完成的劇本時查看它的輸出。我怎樣才能添加這個「錯誤處理程序」?
這是一個不錯的解決方案,但似乎「驗證」在複製到位之前運行。所以我不能用它來驗證nginx配置([這是爲什麼](http://serverfault.com/a/637476))。 – SiliconMind