# Install and configure NTP daemon. # # === Global variables # # $ntp_server: # Array of NTP servers. # # $ntp_client_networks: # Array of networks that are allowed to query this server in format # [ "192.168.1.0/255.255.255.0", "192.168.2.0/255.255.255.0", ]. # class ntpd { if !$ntp_server { $ntp_server = ["pool.ntp.org"] } case $operatingsystem { "fedora": { case $operatingsystemrelease { /^1[0-5]/: { include ntpd::isc-ntpd } default: { include ntpd::chrony } } } "openbsd": { include ntpd::openntpd } default: { include ntpd::isc-ntpd } } case $operatingsystem { "centos","fedora": { augeas { "disable-peerntp": context => "/files/etc/sysconfig/network", changes => "set PEERNTP no", } } } } # Install and configure Chrony NTP client. # class ntpd::chrony { package { "chrony": ensure => installed, } file { "/etc/chrony.conf": ensure => present, mode => "0644", owner => "root", group => "root", content => template("ntpd/chrony.conf.erb"), require => Package["chrony"], notify => Service["chronyd"], } service { "chronyd": ensure => running, enable => true, } } # Install and configure ISC NTP. # class ntpd::isc-ntpd { package { "ntp": ensure => installed, } file { "/etc/ntp.conf": ensure => present, mode => "0644", owner => root, group => root, content => template("ntpd/ntp.conf.erb"), require => Package["ntp"], notify => Service["ntpd"], } service { "ntpd": ensure => running, enable => true, name => $operatingsystem ? { ubuntu => "ntp", debian => "ntp", default => "ntpd", }, } } # Install and configure OpenNTPD. # class ntpd::openntpd { file { "/etc/ntpd.conf": ensure => present, mode => "0644", owner => root, group => wheel, content => template("ntpd/openntpd.conf.erb"), notify => Service["ntpd"], } service { "ntpd": ensure => running, enable => true, binary => "ntpd", start => "ntpd -s", stop => "pkill -u _ntp", status => "pgrep -u _ntp", require => File["/etc/ntpd.conf"], } }