ansible模块-计划任务模块
ansible查看帮助方法
# 查看所有模块帮助信息
ansible-doc -l   
# 指定查看某个模块参数用法
ansible-doc copy  
1.cron计划任务模块
1.1 新增计划任务
正常使用crond服务
$ crontab -l
* * * * *  /bin/sh /server/scripts/yum.sh
使用ansible添加一条计划任务
ansible all -m cron -a "minute=* hour=* day=* month=* weekday=*  job='/bin/sh /server/scripts/test.sh'"
等同于
ansible all -m cron -a "job='/bin/sh /server/scripts/test.sh'"
执行完后查看,可以看到,当不指定 name 参数时,默认的注释为 #Ansible: None
$ crontab -l
#Ansible: None
* * * * * /bin/sh /server/scripts/test.sh
设置计划任务注释信息,需要使用 name 参数
ansible all -m cron -a "name='cron01' job='/bin/sh /server/scripts/test.sh'"
执行完后查看,可以看到,当指定 name 参数时,会有指定名称的注释
$ crontab -l
#Ansible: cron01
* * * * * /bin/sh /server/scripts/test.sh
指定用户
ansible all -m cron -a "name='cron01' job='/bin/sh /server/scripts/test.sh' user=hehe"
查看 hehe 用户的计划任务
$ crontab -l -u hehe
#Ansible: cron01
* * * * * /bin/sh /server/scripts/test.sh
1.2 删除计划任务
删除注释名称为
cron01的计划任务
ansible all -m cron -a "name=cron01 state=absent"
1.3 注释计划任务
查看计划任务
$ crontab -l
#Ansible: cron01
* * * * * /bin/sh /server/scripts/test.sh
注释计划任务
注释之后想要取消注视需要指定
disabled=no
ansible all -m cron -a "name='cron01' minute=* hour=* day=* month=* weekday=* job='/bin/sh /server/scripts/test.sh' disabled=yes"
再次查看
$ crontab -l
#Ansible: cron01
#* * * * * /bin/sh /server/scripts/test.sh
1.4 修改计划任务
查看计划任务
$ crontab -l
#Ansible: cron01
* * * * * /bin/sh /server/scripts/test.sh
修改计划任务
因为已经存在注释名称为
cron01的计划任务,因此再次执行会修改,添加backup参数备份计划任务
$ ansible all -m cron -a "name='cron01' minute=10 hour=10 day=* month=* weekday=* job='/bin/sh /server/scripts/test.sh' backup=yes"
devops02 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "backup_file": "/tmp/crontab7HtoRG", 
    "changed": true, 
    "envs": [], 
    "jobs": [
        "cron01"
    ]
}
查看备份
$ cat /tmp/crontabeXW_Jf 
#Ansible: cron01
* * * * * /bin/sh /server/scripts/test.sh
cron模块参数
| 参数 | 说明 | 
|---|---|
| minute | 分钟 | 
| hour | 小时 | 
| day | 日期 | 
| month | 月份 | 
| weekday | 星期 | 
| job | 要执行的命令或脚本 | 
| name | 指定计划任务名称 | 
| disabled | 是否注视 | 
| state | absent表示删除计划任务 | 
| user | 指定运行用户 | 
| disabled | 注释计划任务,必须指定名称、时间、job | 
| backup | 如果为yes,则修改或者删除计划任务前会先备份 | 

