summaryrefslogtreecommitdiff
path: root/manifests/init.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/init.pp')
-rw-r--r--manifests/init.pp203
1 files changed, 27 insertions, 176 deletions
diff --git a/manifests/init.pp b/manifests/init.pp
index af1f8d5..6d594c3 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -1,182 +1,33 @@
-# Class: ntp
-#
-# This module manages the ntp service.
-#
-# Jeff McCune <jeff@puppetlabs.com>
-# 2011-02-23
-#
-# Tested platforms:
-# - Debian 6.0 Squeeze
-# - CentOS 5.4
-# - Amazon Linux 2011.09
-# - FreeBSD 9.0
-# - Archlinux
-#
-# Parameters:
-#
-# $servers = [ '0.debian.pool.ntp.org iburst',
-# '1.debian.pool.ntp.org iburst',
-# '2.debian.pool.ntp.org iburst',
-# '3.debian.pool.ntp.org iburst', ]
-#
-# $restrict = true
-# Whether to restrict ntp daemons from allowing others to use as a server.
-#
-# $autoupdate = false
-# Whether to update the ntp package automatically or not.
-#
-# $enable = true
-# Automatically start ntp deamon on boot.
-#
-# $template = '${module_name}/${config_tpl}'
-# Override with your own explicit template.
-#
-# Actions:
-#
-# Installs, configures, and manages the ntp service.
-#
-# Requires:
-#
-# Sample Usage:
-#
-# class { "ntp":
-# servers => [ 'time.apple.com' ],
-# autoupdate => false,
-# }
-#
-# [Remember: No empty lines between comments and class definition]
-class ntp($servers='UNSET',
- $ensure='running',
- $enable=true,
- $restrict=true,
- $config_template=undef,
- $autoupdate=false
-) {
-
- if ! ($ensure in [ 'running', 'stopped' ]) {
- fail('ensure parameter must be running or stopped')
- }
-
- if $autoupdate == true {
- $package_ensure = latest
- } elsif $autoupdate == false {
- $package_ensure = present
- } else {
- fail('autoupdate parameter must be true or false')
- }
-
- case $::osfamily {
- Debian: {
- $supported = true
- $pkg_name = [ 'ntp' ]
- $svc_name = 'ntp'
- $config = '/etc/ntp.conf'
- $config_tpl = 'ntp.conf.debian.erb'
- if ($servers == 'UNSET') {
- $servers_real = [ '0.debian.pool.ntp.org iburst',
- '1.debian.pool.ntp.org iburst',
- '2.debian.pool.ntp.org iburst',
- '3.debian.pool.ntp.org iburst', ]
- } else {
- $servers_real = $servers
- }
- }
- RedHat: {
- $supported = true
- $pkg_name = [ 'ntp' ]
- $svc_name = 'ntpd'
- $config = '/etc/ntp.conf'
- $config_tpl = 'ntp.conf.el.erb'
- if ($servers == 'UNSET') {
- $servers_real = [ '0.centos.pool.ntp.org',
- '1.centos.pool.ntp.org',
- '2.centos.pool.ntp.org', ]
- } else {
- $servers_real = $servers
- }
- }
- SuSE: {
- $supported = true
- $pkg_name = [ 'ntp' ]
- $svc_name = 'ntp'
- $config = '/etc/ntp.conf'
- $config_tpl = 'ntp.conf.suse.erb'
- if ($servers == 'UNSET') {
- $servers_real = [ '0.opensuse.pool.ntp.org',
- '1.opensuse.pool.ntp.org',
- '2.opensuse.pool.ntp.org',
- '3.opensuse.pool.ntp.org', ]
- } else {
- $servers_real = $servers
- }
- }
- FreeBSD: {
- $supported = true
- $pkg_name = ['net/ntp']
- $svc_name = 'ntpd'
- $config = '/etc/ntp.conf'
- $config_tpl = 'ntp.conf.freebsd.erb'
- if ($servers == 'UNSET') {
- $servers_real = [ '0.freebsd.pool.ntp.org iburst maxpoll 9',
- '1.freebsd.pool.ntp.org iburst maxpoll 9',
- '2.freebsd.pool.ntp.org iburst maxpoll 9',
- '3.freebsd.pool.ntp.org iburst maxpoll 9', ]
- } else {
- $servers_real = $servers
- }
- }
-
- Linux: {
- if ($::operatingsystem == 'Archlinux') {
- $supported = true
- $pkg_name = ['ntp']
- $svc_name = 'ntpd'
- $config = '/etc/ntp.conf'
- $config_tpl = 'ntp.conf.archlinux.erb'
-
- if ($servers == 'UNSET') {
- $servers_real = [ '0.pool.ntp.org',
- '1.pool.ntp.org',
- '2.pool.ntp.org' ]
- } else {
- $servers_real = $servers
- }
- } else {
- fail("The ${module_name} module is not supported on an ${::operatingsystem} system")
- }
- }
-
- default: {
- fail("The ${module_name} module is not supported on ${::osfamily} based systems")
- }
+class ntp(
+ $autoupdate = $ntp::params::autoupdate,
+ $config = $ntp::params::config,
+ $config_template = $ntp::params::config_template,
+ $package_ensure = $ntp::params::package_ensure,
+ $package_name = $ntp::params::package_name,
+ $panic = $ntp::params::panic,
+ $restrict = $ntp::params::restrict,
+ $servers = $ntp::params::servers,
+ $service_enable = $ntp::params::service_enable,
+ $service_ensure = $ntp::params::service_ensure,
+ $service_manage = $ntp::params::service_manage,
+ $service_name = $ntp::params::service_name,
+) inherits ntp::params {
+
+ if $autoupdate {
+ notice('autoupdate parameter has been deprecated and replaced with ensure_package. Set this to latest for the same behavior as autoupdate => true.')
}
- if ($config_template == undef) {
- $template_real = "${module_name}/${config_tpl}"
- } else {
- $template_real = $config_template
- }
+ include '::ntp::install'
+ include '::ntp::config'
+ include '::ntp::service'
- package { 'ntp':
- ensure => $package_ensure,
- name => $pkg_name,
- }
+ # Anchor this as per #8140 - this ensures that classes won't float off and
+ # mess everything up. You can read about this at:
+ # http://docs.puppetlabs.com/puppet/2.7/reference/lang_containment.html#known-issues
+ anchor { 'ntp::begin': }
+ anchor { 'ntp::end': }
- file { $config:
- ensure => file,
- owner => 0,
- group => 0,
- mode => '0644',
- content => template($template_real),
- require => Package[$pkg_name],
- }
+ Anchor['ntp::begin'] -> Class['::ntp::install'] -> Class['::ntp::config']
+ ~> Class['::ntp::service'] -> Anchor['ntp::end']
- service { 'ntp':
- ensure => $ensure,
- enable => $enable,
- name => $svc_name,
- hasstatus => true,
- hasrestart => true,
- subscribe => [ Package[$pkg_name], File[$config] ],
- }
}