本文系统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的相关参数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
除了用户和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写法:
1
2
3
|
[root@master ~]# vim /etc/puppet/manifests/site.pp
import
"service.pp"
import
"cron.pp"
|
1
2
3
4
5
6
7
|
[root@master ~]# vim /etc/puppet/manifests/service.pp
cron {
"echo"
:
command =>
"/bin/echo aaa >> /tmp/cron.txt"
,
ensure =>
'present'
,
user => root,
minute =>
'*/1'
,
}
|
1
2
3
4
5
6
7
|
[root@master ~]# vim /etc/puppet/manifests/cron.pp
cron { logrotate:
command =>
"/usr/sbin/logrotate"
,
user => root,
hour =>
2
,
minute =>
0
}
|
然后在client端:执行
1
|
puppetd --test --server master.monitor.com
|
可以看到是正常的;
案例2、将client端的某一个cron删掉;
在master端修改:
1
2
3
4
5
6
7
|
[root@master ~]# vim /etc/puppet/manifests/service.pp
cron {
"echo"
:
command =>
"/bin/echo aaa >> /tmp/cron.txt"
,
ensure =>
'absent'
,
user => root,
minute =>
'*/1'
,
}
|
1
2
|
puppetrun -p
10
--host client.monitor.com
Ps:此为在服务器端主动去推送配置,
2.6
以后为puppet kict了;当然推荐使用MC了
|
在client端查看:
1
2
|
[root@client1 ~]# crontab -l |grep -v ^#
0
2
* * * /usr/sbin/logrotate
|
发现其中一个cron已经不见;
本文转自 西索oO 51CTO博客,原文链接:http://blog.51cto.com/lansgg/1317898