星期一, 1月 11, 2016

Ansible notify

notify 很方便,可以先不執行 task,等到都執行完了才執行 handler 裡的 task。
但我遇到明明有 notify ,handler 裡的 task 卻沒有執行到,試了很久,找了好久才知道,必須 task 的狀態有改變的時候才會 notify ,而 ansible 的每個 task 的狀態並不是都會改變的,例如 ansible 發現檔案跟要變更的一致就不會改變狀態。
如果要強制改變,可以加上 changed_when: true ,這樣在執行完 task 時,永遠都把狀態設定為改變,也就會 notify 了。
- name: Install nginx configuration
  template: src=nginx.conf.j2 dest=/etc/nginx/sites-enabled/default
  notify:
    - reload nginx
  changed_when: true

沒有留言: