2016-06-08 8 views
9

मैं केवल अपने पैरों को Ansible 2.2 और Debops के साथ गीला कर रहा हूं और मैंने निम्न समस्या में भाग लिया है। मेरे पास एक होस्ट test-host है जिसमें मैंने एक MySQL सर्वर तैनात किया है (geerlingguy.mysql का उपयोग करके)।सेवा मॉड्यूल के बजाय systemd का उपयोग कर उत्तरदायी

--- 
- name: restart mysql 
    service: "name={{ mysql_daemon }} state=restarted sleep=5" 

जो, मैंने सोचा, Ansibles service module सर्वर को पुनः आरंभ करने का उपयोग करता है:

भूमिका सेवा पुन: प्रारंभ करने के लिए निम्न हैंडलर का उपयोग करता है। हालांकि, यह काम नहीं करता:

ansible test-host -b -m service -a 'name=mysql sleep=5 state=restarted' 
एक ही परिणाम के साथ

:

unsupported parameter for module: sleep 

तो सिर्फ इतना है कि कस्टम भूमिका के साथ किसी भी weirdness से इनकार करने के लिए, मैं इतना की तरह सीधे मॉड्यूल पर अमल करने की कोशिश की है।

अधिक वर्बोज़ उत्पादन शो के साथ Ansible चल रहा है (अन्य बातों के अलावा):

Running systemd 
Using module file /usr/local/lib/python2.7/site-packages/ansible-2.2.0-py2.7.egg/ansible/modules/core/system/systemd.py 

तो ऐसा लगता है कि systemd मॉड्यूल service के बजाय प्रयोग किया जाता है (मॉड्यूल में देख पता चलता है कि यह वास्तव में aliased to service है)। और, देखो और देखें, systemdsleep पैरामीटर का समर्थन नहीं करता है।

इसे कैसे ठीक करें?

+1

तो मतलब समय में नीचे दिए कुछ आप कर सकते हैं। सबसे पहले नवीनतम समर्थित रिलीज का उपयोग करना है जो 'v2.1.0.0-1' है। दूसरी बात यह है कि https://github.com/ansible/ansible-modules-core/issues पर कोई समस्या उठाना है यदि यह पहले से मौजूद नहीं है क्योंकि यह स्पष्ट रूप से अपेक्षित व्यवहार नहीं है। –

+3

समस्या उत्पन्न हुई: https://github.com/ansible/ansible-modules-core/issues/3897 – n3rd

+0

संबंधित: यदि आप उबंटू 14.04 जैसे अपस्टार्ट-आधारित सिस्टम पर सिस्टम सेवा स्थापित करते हैं, तो उत्तरदायी सिस्टम मॉड्यूल का उपयोग करेगा सेवा मॉड्यूल, दर्द का कारण बनता है। https://github.com/ansible/ansible/issues/19030 –

उत्तर

2

आप इस तरह अपने प्लेबुक में एक और कदम जोड़कर वैकल्पिक हल कर सकते हैं:

- name: restart mysql 
    service: "name={{ mysql_daemon }} state=restarted" 
    register: mysql_service 

- name: pause after mysql restart 
    pause: "seconds=5" 
    when: mysql_service.changed 
संबंधित मुद्दे