本文系统centos6.0 puppet 版本:2.6.18
master端:master.monitor.com 192.168.100.134
client端:client1.monitor.com 192.168.100.133
相关安装请看 http://lansgg.blog.51cto.com/5675165/1299604
先来看下cron的相关参数:
除了用户和command两个参数以外,其他的参数都是可选项. command crontab要执行的命令, 环境变量按照系统本地规则进行管理,推荐使用绝对路径. ensure 指定该资源是否启用,可设置成present或absent environment: 在 crontab环境里面指定环境变量,例如 PATH=/bin:/usr/bin:/usr/sbin. hour: 运行crontab的小时,可设置成0-23 minute: 运行crontab的分钟,可设置成0-59 month: 设置crontab运行的月份,1-12 monthday: 一个月份中的日子,1-31 name: 该crontab的名字,这个名字用于管理员区分不同的crontab,以及puppet管理各种资源关系. provider: 指定provider,可用的provider有 crontab 默认的crontab程序 special 特殊的管理程序,只能在freebsd上面用 target: crontab 作业存放的位置。 user: 把该crontab加到那个用户的crontab列表,默认是运行puppet的用户 weekday: 运行crontab的星期数,0-7,周日是为0.
案例1、设置两个cron;见下pp写法:
[root@master ~]# vim /etc/puppet/manifests/site.pp import "service.pp" import "cron.pp"
[root@master ~]# vim /etc/puppet/manifests/service.pp cron { "echo": command => "/bin/echo aaa >> /tmp/cron.txt", ensure => 'present', user => root, minute => '*/1', }
[root@master ~]# vim /etc/puppet/manifests/cron.pp cron { logrotate: command => "/usr/sbin/logrotate", user => root, hour => 2, minute => 0 }
然后在client端:执行
puppetd --test --server master.monitor.com
可以看到是正常的;
案例2、将client端的某一个cron删掉;
在master端修改:
[root@master ~]# vim /etc/puppet/manifests/service.pp cron { "echo": command => "/bin/echo aaa >> /tmp/cron.txt", ensure => 'absent', user => root, minute => '*/1', }
puppetrun -p 10 --host client.monitor.com Ps:此为在服务器端主动去推送配置,2.6以后为puppet kict了;当然推荐使用MC了
在client端查看:
[root@client1 ~]# crontab -l |grep -v ^# 0 2 * * * /usr/sbin/logrotate
发现其中一个cron已经不见;
谢谢~
转载于:https://blog.51cto.com/lansgg/1317898