2015-06-02 11 views
5

में संपूर्ण क्रॉन्टाब फ़ाइलों को प्रबंधित करें मेरे पास एक क्रॉन्टाब है जिसमें सर्वर पर लगभग 80 प्रविष्टियां हैं। और मैं Ansible का उपयोग कर उस crontab का प्रबंधन करना चाहता हूँ।Ansible

आदर्श रूप में मैं सर्वर की क्रॉन्टाब को मेरी उत्तरदायी निर्देशिका में कॉपी करता हूं और यह सुनिश्चित करने के लिए एक उत्तरदायी कार्य करता हूं कि सर्वर पर crontab सेट हो।

लेकिन cron module केवल व्यक्तिगत क्रॉन प्रविष्टियों का प्रबंधन करने और पूरे क्रोंटब फ़ाइलों को प्रबंधित करने के लिए प्रतीत होता है।

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

कोई विचार है कि मैं उत्तरदायी का उपयोग करके उस बड़े क्रोंटैब को कैसे संभाल सकता हूं?

+0

क्रॉन्टाब को उपयुक्त स्थान पर कॉपी करने के लिए बस 'कॉपी' मॉड्यूल का उपयोग करें? – larsks

+0

मेरे पास रूट विशेषाधिकार नहीं हैं। – Ale

+0

शायद http://docs.ansible.com/assemble_module.html का उपयोग करें? यदि आपके पास रूट नहीं है, तो आप क्रॉन्टाब को कैसे संशोधित करने जा रहे हैं? – Mxx

उत्तर

9

मुझे ऐसा करने का एक आसान तरीका खोजने में कामयाब रहा। मैं crontab फ़ाइल को सर्वर पर कॉपी करता हूं और फिर फ़ाइल बदलते समय खोल मॉड्यूल के साथ crontab को अद्यतन करता हूं।

crontab कार्य:

--- 
- name: Ensure crontab file is up-to-date. 
    copy: src=tasks/crontab/files/{{ file }} dest={{ home }}/cronfile 
    register: result 
- name: Ensure crontab file is active. 
    shell: crontab cronfile 
    when: result|changed 

मेरी प्लेबुक में: एक के लिए लिख बनाम

- name: Save out Crontabs 
    copy: src=../files/crontabs/{{ item }} dest=/var/spool/cron/{{ item }} owner={{item}} mode=0600 
    notify: restart cron 
    with_items: 
    - root 
    - ralph 
    - jim 
    - bob 

इस विधि का लाभ (:

- include: tasks/crontab/main.yml file=backend.cron 
+0

उपरोक्त! युक्ति: यदि उत्तर के बाहर मैन्युअल संपादन किए गए थे तो आपको पहले पुराने क्रॉन का बैकअप लेना चाहिए। –

0

मैं इस तरह इस समस्या का समाधान इंटरमीडिएट फ़ाइल) यह है कि लाइव क्रोंटैब के किसी भी मैन्युअल संपादन को हटा दिया जाता है और उत्तर नियंत्रित नियंत्रित बनाम के साथ प्रतिस्थापित किया जाता है एन। नुकसान यह है कि यह कुछ हद तक क्रॉन प्रक्रिया हैकिंग है।

+0

"लाभ ... लाइव क्रोंटैब के किसी भी मैन्युअल संपादन को हटा दिया जाता है" - मैं इसे एक बग के रूप में देखता हूं। इसे पहले मौजूदा क्रॉन का समर्थन करके आसानी से हल किया जा सकता है। –