ansible的系统模块<7>,ansible系统模块


其实前面学习了那么多的模块,我有个感悟,ansible的各类模块都依赖于甚至说跟我们的linux常用功能极为相似,下面我继续学习ansible的定时任务模块,类似于linux下的contrab模块
image
以上的命令表示
每天的一点零五分执行echo test
每三天的一点一分执行echo test
重启后执行echo test
每个小时执行echo test
来看一下corn模块的参数:
image
image

ansible test177 -m cron -a "name='test crontab' minute=1 job='echo test'"

上面的命令表示在177的受管机上创建一个名字叫做test crontab的任务,任务内容是每一分钟输出echo test
image
在受管主机上指定用户查看一下任务
image
如果不想要这个定时任务就用crontab -e打开系统定时文件,找到对应的定时任务删除即可

ansible test177 -m cron -a "name='test crontab' minute=1 hour=1 day=*/3 job='echo test'"

这个命令表示在177上每三天的一点一分执行echo test
minute=1表示几点的几分钟,并不表示每一分钟,刚才的理解有误,每分钟用/ *表示

ansible test177 -m cron -a "name='test special time' special_time=reboot job='echo time'"

上面的命令表示在177上创建一个test special time的任务,在每次开机时执行echo time
image

ansible test177 -m cron -a "name='test special time' special_time=hourly job='echo test' backup=yes"

表示每一个小时执行echo test 如果受管机上存在special time这个任务就替换掉
image
可以看到原来的重启任务已经不见了

ansible test177 -m cron -a "name='test special time' state=absent backup=yes"

表示在177上删除这个任务,并且进行备份
image
从返回的状态可以看出我们的备份位置

ansible test177 -m cron -a "user=mysql name='test special time' special_time=hourly job='echo test'"

默认情况下是指定root用户,如果想指定用户就直接加user就行

ansible test177 -m cron -a "name='test crontab' minute=1 hour=1 day=*/3 job='echo test' disabled=yes backup=yes"

将我们三天一次的任务注释掉,同时做备份文件
image
image
如果你执行disabled的时候,打错了时间,比如把minute=1打成了minute=2,那么在注释掉后,它的时间也会随之改变
所以要在后面加上backup参数以免造成不必要的麻烦

service

image
service模块可以帮助我们启动受管主机上的服务,例如mysql,nginx等,但是只能启动有service功能的受管机,包括systemctl启动,

ansible test177 -m service -a "name=httpd state=started"

将177中的httpd处于启动状态

ansible test177 -m service -a "name=nginx state=stopped"

将177中的nginx处于停止状态

ansible test177 -m service -a " name='nginx' enabled=yes"

将177的nginx服务变成开机启动

相关内容