2015-12-01 5 views
20

मेरे पास एक प्लेबुक है जो निर्दिष्ट आईपी पर कॉन्फ़िगर करना चाहिए, और अंदरूनी चीजों को कॉन्फ़िगर करने के लिए इस ऐप से कनेक्ट होना चाहिए।उत्तर में किसी कार्य को निष्पादित करने से पहले हैंडलर को चलाने के लिए कैसे मजबूर करें?

मुझे कोई समस्या है: ऐप कॉन्फ़िगरेशन में कुछ भी बदलने के बाद मुझे ऐप को पुनरारंभ करने की आवश्यकता है, और यदि मैं ऐप को पुनरारंभ नहीं करता हूं, तो कनेक्शन विफल हो गया है (कोई कनेक्शन नहीं है क्योंकि ऐप नए कॉन्फ़िगरेशन के बारे में कुछ भी नहीं जानता है आईपी ​​पता मैं एक्सेस करने की कोशिश कर रहा हूँ)।

मेरे वर्तमान प्लेबुक:

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 

मैं अगर configure_app 'अनुप्रयोग में डेटा परिवर्तन' को क्रियान्वित करने से पहले बदल चलाने के लिए हैंडलर के लिए मजबूर करने की जरूरत है।

उत्तर

40

आप दो कार्यों के बीच के बजाय खेल के अंत में में चलाने के लिए हैंडलर लिए बाध्य करना चाहते हैं, तो आप दो कार्यों के बीच इस रखना होगा:

- meta: flush_handlers

उदाहरण से लिया ansible documentation:

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

ध्यान दें कि यह सभी लंबित संचालकों नहीं सिर्फ इतना है कि विशिष्ट एक उस बिंदु पर चलाने के लिए, कारण होगा।

संबंधित मुद्दे

 संबंधित मुद्दे