2015-01-19 10 views
7

Voglio configurare cronjobs su vari server allo stesso tempo per il data mining. Stavo già seguendo i passaggi in Ansible and crontabs ma finora nulla ha funzionato. Qualunque cosa che faccio, il messaggio di errore:ansible creazione di cronjobs di lavoro

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

ho: Ansible 1.8.1

E per alcuni motivi sconosciuti, i miei moduli si trovano in: /usr/lib/python2.6/site-packages/ansible/modules/

Vorrei per sapere quali passi precisi devo seguire per consentire ad Ansible di installare un nuovo cronjob nel file crontab.

  1. Con quale precisione un playbook sembra installare un cronjob?
  2. Qual è la riga di comando per avviare questo libro?

Sto chiedendo questa strana domanda perché la documentazione di cron è insufficiente e gli esempi non funzionano. Forse anche la mia installazione è sbagliata, cosa che voglio testare con un esempio funzionante di cron.

+0

elencare il playbook che si sta tentando e sono felice di rispondere a questo. – tedder42

risposta

16

Ho (qualcosa di molto simile) questo in un file ./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 

Lo script di shell elencato nel 'lavoro' è stato creato un po ' prima nel file main.yml.

Questo compito sarà creare un file in /etc/cron.d/mysqlbackup-WeeklyBackups:

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

Questo crea solo il file o lo imposta anche per eseguirlo? Ho provato a fare lo stesso nel mio playbook. Il file è stato creato nel posto indicato. Ma quando eseguo 'crontab -l' ottengo il messaggio' no crontab per utente' – Ishan

+2

'crontabs -l' cerca solo in '/ var/spool/cron/crontabs/{username}'. –

1

Se stai configurando fino a correre sulla Crontab dell'utente:

- 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 

Riferimento [1]: https://docs.ansible.com/ansible/latest/cron_module.html

Problemi correlati