ansible创建工作cronjobs

时间:2015-01-19 11:32:26

标签: cron ansible

我想在数据挖掘的同时在各种服务器上设置cronjobs。我也已经按照Ansible and crontabs中的步骤进行了操作,但到目前为止还没有任何效果。 无论我做什么,我都会收到错误信息:

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/

我想知道我必须遵循哪些准确的步骤让Ansible在crontab文件中安装新的cronjob。

  1. 剧本如何精确地安装cronjob?
  2. 启动此剧本的命令行是什么?
  3. 我问这个奇怪的问题,因为cron的文档不足,而且示例不起作用。也许我的安装也是错的,我想用cron的一个工作示例来测试。

3 个答案:

答案 0 :(得分:17)

我在./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

'工作'中列出的shell脚本是在main.yml文件中稍早创建的。

此任务将在/etc/cron.d/mysqlbackup-WeeklyBackups中创建一个文件:

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

答案 1 :(得分:2)

如果您要将其设置为在用户的Cron选项卡上运行:

- 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

参考文献[1]:https://docs.ansible.com/ansible/latest/cron_module.html

答案 2 :(得分:2)

---
- hosts: servers
  tasks:
   - name: "Cronjob Entry"
     cron:
      name: "### recording mixing/compressing/ftping scripts"
      minute: 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57
      hour: "*"
      day: "*"
      month: "*"
      weekday: "*"
      job: /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl

我也低于输出。

#Ansible: ### recording mixing/compressing/ftping scripts
0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl