puppet写ntp模块
root@debian:/etc/puppet/modules# mkdir -p ntp/{manifests,files,templates}root@debian:/etc/puppet# cat modules/ntp/manifests/init.pp # Class:ntp## This class installs/configures/manages NTP. Only Debian-derived and RedHat-derived are supported.## Parameters:# -$servers:# An array of ntp servers.Default to OS's defaults.# -$enable:# Whether to start the NTP service on boot.Valid values are:# true and false.# -$ensure:# Whether to run the NTP service.Valid values are:# running and stopped.# Requires:# Nothing.## Sample Usage:## class {'ntp':# server=>['0.cn.pool.ntp.org',# '1.cn.pool.ntp.org',# ]# }# class {'ntp':# enable=>false,# ensure=>stopped,# }class ntp ($servers = undef, $enable = true, $ensure = running) { case $operatingsystem {centos,redhat:{ $service_name = 'ntpd'
$service_conf = 'ntp.conf.e1.erb'
$default_servers= ['0.centos.pool.ntp.org', '1.centos.pool.ntp.org', '2.centos.pool.ntp.org',
]
} debian: { $service_name = 'ntp'
$service_conf = 'ntp.conf.debian.erb'
$default_servers= ['0.debian.pool.ntp.org', '1.debian.pool.ntp.org', '2.debian.pool.ntp.org',
]
}
}
if $servers == undef { $servers_real = $default_servers
}
else { $servers_real = $servers
}
package {'ntp': ensure=>installed}
service {$service_name:
ensure=>$ensure,
enable=>$enable,
subscribe=> File['/etc/ntp.conf'],
}
file {'/etc/ntp.conf':
ensure=>file,
require =>Package['ntp'],
content =>template("ntp/${service_conf}"),
}
}
root@debian:/etc/puppet# cat modules/ntp/templates/ntp.conf.debian.erb # /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for helpdriftfile /var/lib/ntp/ntp.drift# Enable this if you want statistics to be logged.#statsdir /var/log/ntpstats/statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable# You do need to talk to an NTP server or two (or three).#server ntp.your-provider.example# pool.ntp.org maps to about 1000 low-stratum NTP servers.Your server will# pick a different set every time it starts up.Please consider joining the# pool: <http://www.pool.ntp.org/join.html># server 0.debian.pool.ntp.org iburst# server 1.debian.pool.ntp.org iburst# server 2.debian.pool.ntp.org iburst# server 3.debian.pool.ntp.org iburst# 这里是我添加的部分,注意不需要加$<% servers_real.each do |server| -%>
server <%= server %>
<% end -%># Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for# details.The web page <http://support.ntp.org/bin/view/Support/Acce***estrictions># might also be helpful.## Note that "restrict" applies to both servers and clients, so a configuration# that might be intended to block requests from certain clients could also end# up blocking replies from your own upstream servers.# By default, exchange time with everybody, but don't allow configuration.restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery# Local users may interrogate the ntp server more closely.restrict 127.0.0.1restrict ::1# Clients from this (example!) subnet have unlimited access, but only if# cryptographically authenticated.#restrict 192.168.123.0 mask 255.255.255.0 notrust# If you want to provide time to your local subnet, change the next line.# (Again, the address is an example only.)#broadcast 192.168.123.255# If you want to listen to time broadcasts on your local subnet, de-comment the# next lines.Please do this only if you trust everybody on the network!#disable auth#broadcastclient# 最后去清单文件包含这个模块ntproot@debian:/etc/puppet# cat manifests/nodes/liuliancao.ppnode 'liuliancao' { include ntp
}
页:
[1]