puppet很重要的一点就是时间同步,所以在搭建puppet服务器时首先要保证每台客户端和服务器的时间要一致。可以在puppet服务器上配置一个cron模块,所有客户端每隔数分钟同步一次时间,时间服务器可以是任何一个可用的ntp,本文用的是上海交大的时间服务器ntp.sjtu.edu.cn。
新建一个cron模块
[root@master modules]# tree cron/
cron/
`-- manifests
|-- addcron.pp
|-- base.pp
`-- init.pp
1 directory, 3 files
[root@master modules]#
定义添加cron类,指明同步的时间服务器,更新频率。
[root@master manifests]# cat addcron.pp
class cron::addcron {
cron {
ntpdate:
command => "/sbin/ntpdate ntp.sjtu.edu.cn",
ensure => "present",
user=> "root",
minute => "*/5",
}
}
定义cron服务类,crond服务要保持在运行状态
[root@master manifests]# cat base.pp
class cron::base {
service {
crond:
ensure => running,
enable => true,
pattern => cron,
}
}
初始化
[root@master manifests]# cat init.pp
class cron {
include cron::base
include cron::addcron
}
导入cron模块
[root@master puppet]# cat /etc/puppet/manifests/modules.pp
import "cron"
......
在每个节点文件中,引入cron类
[root@master puppet]# cat /etc/puppet/manifests/nodes.pp
node 'agent1.andy.com' {
include cron
include java
include mysql
}
node 'agent2.andy.com' {
include cron
include java
include mysql
}
node 'agent3.andy.com' {
include cron
include java
include mysql
}
客户端手动执行puppet agent --server master.andy.com --test 或配置定时更新可以在每个客户端都添加一个crontab。
客户端定时同步更新配置如下,每10分钟同步更新一次
[root@agent1 ~]# cat /etc/puppet/puppet.conf
[main]
# The Puppet log directory.
# The default value is '$vardir/log'.
logdir = /var/log/puppet
# Where Puppet PID files are kept.
# The default value is '$vardir/run'.
rundir = /var/run/puppet
# Where SSL certificates are kept.
# The default value is '$confdir/ssl'.
ssldir = $vardir/ssl
server = master.andy.com
[agent]
# The file in which puppetd stores a list of the classes
# associated with the retrieved configuratiion. Can be loaded in
# the separate ``puppet`` executable using the ``--loadclasses``
# option.
# The default value is '$confdir/classes.txt'.
classfile = $vardir/classes.txt
# Where puppetd caches the local configuration. An
# extension indicating the cache format is added automatically.
# The default value is '$confdir/localconfig'.
localconfig = $vardir/localconfig
runinterval = 600
[root@agent1 ~]#
结果如下
[root@agent1 ~]# crontab -l
# HEADER: This file was autogenerated at Mon Dec 02 12:20:16 +0800 2013 by puppet.
# HEADER: While it can still be managed manually, it is definitely not recommended.
# HEADER: Note particularly that the comments starting with 'Puppet Name' should
# HEADER: not be deleted, as doing so could cause duplicate cron jobs.
# Puppet Name: ntpdate
*/5 * * * * /sbin/ntpdate ntp.sjtu.edu.cn
新建一个cron模块
[root@master modules]# tree cron/
cron/
`-- manifests
|-- addcron.pp
|-- base.pp
`-- init.pp
1 directory, 3 files
[root@master modules]#
定义添加cron类,指明同步的时间服务器,更新频率。
[root@master manifests]# cat addcron.pp
class cron::addcron {
cron {
ntpdate:
command => "/sbin/ntpdate ntp.sjtu.edu.cn",
ensure => "present",
user=> "root",
minute => "*/5",
}
}
定义cron服务类,crond服务要保持在运行状态
[root@master manifests]# cat base.pp
class cron::base {
service {
crond:
ensure => running,
enable => true,
pattern => cron,
}
}
初始化
[root@master manifests]# cat init.pp
class cron {
include cron::base
include cron::addcron
}
导入cron模块
[root@master puppet]# cat /etc/puppet/manifests/modules.pp
import "cron"
......
在每个节点文件中,引入cron类
[root@master puppet]# cat /etc/puppet/manifests/nodes.pp
node 'agent1.andy.com' {
include cron
include java
include mysql
}
node 'agent2.andy.com' {
include cron
include java
include mysql
}
node 'agent3.andy.com' {
include cron
include java
include mysql
}
客户端手动执行puppet agent --server master.andy.com --test 或配置定时更新可以在每个客户端都添加一个crontab。
客户端定时同步更新配置如下,每10分钟同步更新一次
[root@agent1 ~]# cat /etc/puppet/puppet.conf
[main]
# The Puppet log directory.
# The default value is '$vardir/log'.
logdir = /var/log/puppet
# Where Puppet PID files are kept.
# The default value is '$vardir/run'.
rundir = /var/run/puppet
# Where SSL certificates are kept.
# The default value is '$confdir/ssl'.
ssldir = $vardir/ssl
server = master.andy.com
[agent]
# The file in which puppetd stores a list of the classes
# associated with the retrieved configuratiion. Can be loaded in
# the separate ``puppet`` executable using the ``--loadclasses``
# option.
# The default value is '$confdir/classes.txt'.
classfile = $vardir/classes.txt
# Where puppetd caches the local configuration. An
# extension indicating the cache format is added automatically.
# The default value is '$confdir/localconfig'.
localconfig = $vardir/localconfig
runinterval = 600
[root@agent1 ~]#
结果如下
[root@agent1 ~]# crontab -l
# HEADER: This file was autogenerated at Mon Dec 02 12:20:16 +0800 2013 by puppet.
# HEADER: While it can still be managed manually, it is definitely not recommended.
# HEADER: Note particularly that the comments starting with 'Puppet Name' should
# HEADER: not be deleted, as doing so could cause duplicate cron jobs.
# Puppet Name: ntpdate
*/5 * * * * /sbin/ntpdate ntp.sjtu.edu.cn
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27181165/viewspace-1062118/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27181165/viewspace-1062118/