2015-01-19 13 views
7

बनाने में उत्तरदायी मैं डेटा खनन के लिए एक ही समय में विभिन्न सर्वरों पर cronjobs सेट करना चाहता हूं। मैं पहले से ही Ansible and crontabs में चरणों का पालन कर रहा था लेकिन अब तक कुछ भी काम नहीं किया है। जो कुछ भी मैं करता हूँ, मैं मिलता है त्रुटि संदेश:उत्तरदायी cronjobs

ERROR: cron is not a legal parameter at this level in an Ansible Playbook 

मेरे पास है: Ansible 1.8.1

और कुछ अज्ञात कारणों के लिए, मेरे मॉड्यूल में स्थित हैं: /usr/lib/python2.6/site-packages/ansible/modules/

मैं चाहूँगा यह जानने के लिए कि उत्तरदायी crontab फ़ाइल में एक नया cronjob स्थापित करने के लिए मुझे कौन से सटीक कदमों का पालन करना है।

  1. एक प्लेबुक को क्रोनबॉब स्थापित करने के लिए कितना सटीक होना चाहिए?
  2. इस प्लेबुक को शुरू करने के लिए कमांड लाइन क्या है?

मैं इस अजीब सवाल पूछ रहा हूं क्योंकि क्रॉन का दस्तावेज अपर्याप्त है और उदाहरण काम नहीं कर रहे हैं। शायद मेरी स्थापना भी गलत है, जिसे मैं क्रॉन के एक कामकाजी उदाहरण के साथ परीक्षण करना चाहता हूं।

+0

उस प्लेबुक को सूचीबद्ध करें जिसे आप प्रयास कर रहे हैं और मुझे इसका जवाब देने में खुशी है। – tedder42

उत्तर

16

मुझे मिल गया है एक ./roles/cron/tasks/main.yml फ़ाइल में (बहुत ज्यादा की तरह कुछ) इस:

- name: Creates weekly backup cronjob 
    cron: minute="20" hour="5" weekday="sun" 
     name="Backup mysql tables (weekly schedule)" 
     cron_file="mysqlbackup-WeeklyBackups" 
     user="root" 
     job="/usr/local/bin/mysqlbackup.WeeklyBackups.sh" 
    tags: 
    - mysql 
    - cronjobs 

'काम' में सूचीबद्ध खोल स्क्रिप्ट एक छोटे से बनाया गया था पहले main.yml फ़ाइल में।

#Ansible: Backup mysql tables (weekly schedule) 
20 5 * * sun root /usr/local/bin/mysqlbackup.WeeklyBackups.sh 
+0

क्या यह सिर्फ फ़ाइल बनाता है या इसे निष्पादित करने के लिए भी सेट करता है? मैंने अपनी प्लेबुक में ऐसा करने की कोशिश की। फाइल का उल्लेख जगह में बनाया गया है। लेकिन जब मैं 'crontab -l' निष्पादित कर रहा हूं, तो मुझे संदेश' उपयोगकर्ता के लिए कोई क्रॉन्टाब नहीं मिला ' – Ishan

+2

'crontabs -l' केवल'/var/spool/cron/crontabs/{username} 'में दिखता है। –

1

आप उपयोगकर्ता के Crontab पर चलने के लिए उसे सेट अप कर रहे हैं:

- name: Install Batchjobs on crontab 
    cron: 
    name: "Manage Disk Space" 
    minute: "30" 
    hour: "02" 
    weekday: "0-6" 
    job: "home/export/manageDiskSpace.sh > home/export/manageDiskSpace.sh.log 2>&1" 
    #user: "admin" 
    disabled: "no" 
    become_user: "{{ admin_user }}" 
    tags: 
    - cronjobs 

इस कार्य /etc/cron.d/mysqlbackup-WeeklyBackups में एक फ़ाइल पैदा करेगा

संदर्भ [1]: https://docs.ansible.com/ansible/latest/cron_module.html