2015-12-01 7 views
20

Belirtilen IP adresinde yapılandırılması gereken bir oyun kitabım var ve içerideki öğeleri yapılandırmak için bu uygulamaya bağlanın.İşleyici Ansible'da bir görevi yürütmeden önce nasıl çalıştırılır?

Sorunum var: Uygulama yapılandırmasında herhangi bir şey değiştirdikten sonra uygulamayı yeniden başlatmam gerekiyor ve uygulamayı yeniden başlatmazsam, bağlantı başarısız oldu (bağlantı yeni uygulama ile ilgili hiçbir şey bilmediği için bağlantı kurulamadı IP adresi erişmeye çalışıyorum).

Benim şu anki oyun kitabı:

tasks: 
- name: Configure app 
    template: src=app.conf.j2 dest=/etc/app.conf 
    notify: restart app 

- name: Change data in app 
    configure_app: host={{new_ip}} data={{data}} 

handlers: 
- name: restart app 
    service: name=app state=restarted 

Ben configure_app 'uygulamasında değiştirme verilerini' çalıştırmadan önce değiştirdiyseniz çalıştırmak için işleyici zorlamak gerekir. Eğer iki görev arasındaki yerine oyunun sonunda çalıştırmak için işleyici zorlamak istiyorsanız

cevap

40

, iki görevler arasında bu koymak gerekir: alınan

- meta: flush_handlers

Örnek yanıtlayıcı 'documentation: Bu tüm bekleyen işleyicileri sadece belirli bir, o noktada çalışmasına neden olacağını

tasks: 
    - shell: some tasks go here 
    - meta: flush_handlers 
    - shell: some other tasks 

Not.