2016-02-16 45 views
2

對於一些初始化服務來說,我有一個很好的操作手冊,它們與一些調整大致相似。在頂級的劇本,包括我的角色的兩倍,像只有當參數化角色通知一次運行處理程序時纔會運行一次

roles: 
    - {role: "my-service", service: webserver} 
    - {role: "my-service", service: scheduler} 

的我的服務角色都有任務,編寫init腳本,和處理程序,(重新)啓動該服務。 tasks/main.yml看起來是這樣的:

- name: setup init scripts 
    template: src=../../service-common/templates/my-service.conf dest=/etc/init/my-{{ service }}.conf 
    notify: 
    - restart my service 

handlers/main.yml有這樣的內容:

- name: restart my services 
    service: name=my-{{ service }} state=restarted 

但劇本開始運行,我們只剩下一webserver服務運行,並調度是stop/waiting。我如何讓處理程序將這些視爲兩個單獨的通知來處理?

+0

布魯斯已經解釋了這個問題。對於一個解決方案,你可能會看看這個github問題:https://github.com/ansible/ansible/issues/4853 - 不知道現在是否可能。最後的評論是一個用戶測試它,它不工作。 – udondan

回答

1

Ansible documentation狀態:

處理程序是任務列表,沒有真正從常規任務,由一個全球唯一的名稱引用的任何不同。

因此,在確定何時/如何調用處理程序時,它不使用任何參數,變量等。只有名字被使用。