diff options
author | Ashley Penney <ashley.penney@puppetlabs.com> | 2013-07-29 16:02:50 -0400 |
---|---|---|
committer | Ashley Penney <ashley.penney@puppetlabs.com> | 2013-07-29 17:09:26 -0400 |
commit | 0235486d2d6de477bfa93487b03e6ca37cb2d24c (patch) | |
tree | 7a8e7e1efcf0ce72382182661b9e7c581d7b67fa | |
parent | c5408ae4b17bc3b395b13d10c9473e15661d2d38 (diff) |
Add new parameters to allow more flexible configuration.
`driftfile` [String]: Allows the setting of the driftfile location.
`keys_enable` [Boolean]: Should the ntp keys option be enabled?
`keys_file` [String]: Where are the keys stored?
`keys_trusted` [Array]: List of keys to trust.
`keys_requestkey` [String]: Request key to use.
`keys_controlkey` [String]: Control key to use.
If keys_enable is set then the directory that keysfile is stored in is
created (recursively). Currently we don't manage the keys file but that
is an option to be added.
-rw-r--r-- | manifests/config.pp | 17 | ||||
-rw-r--r-- | manifests/init.pp | 23 | ||||
-rw-r--r-- | manifests/params.pp | 41 |
3 files changed, 66 insertions, 15 deletions
diff --git a/manifests/config.pp b/manifests/config.pp index 0a4a710..45279be 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -1,11 +1,28 @@ class ntp::config ( $config = $ntp::config, $config_template = $ntp::config_template, + $driftfile = $ntp::driftfile, + $keys_enable = $ntp::keys_enable, + $keys_file = $ntp::keys_file, + $keys_controlkey = $ntp::keys_controlkey, + $keys_requestkey = $ntp::keys_requestkey, + $keys_trusted = $ntp::keys_trusted, $panic = $ntp::panic, $restrict = $ntp::restrict, $servers = $ntp::servers, ) inherits ntp { + if $keys_enable { + $directory = dirname($keys_file) + file { $directory: + ensure => directory, + owner => 0, + group => 0, + mode => '0755', + recurse => true, + } + } + file { $config: ensure => file, owner => 0, diff --git a/manifests/init.pp b/manifests/init.pp index 61a5ad9..d406fb3 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -2,6 +2,12 @@ class ntp ( $autoupdate = $ntp::params::autoupdate, $config = $ntp::params::config, $config_template = $ntp::params::config_template, + $driftfile = $ntp::params::driftfile, + $keys_enable = $ntp::params::keys_enable, + $keys_file = $ntp::params::keys_file, + $keys_controlkey = $ntp::params::keys_controlkey, + $keys_requestkey = $ntp::params::keys_requestkey, + $keys_trusted = $ntp::params::keys_trusted, $package_ensure = $ntp::params::package_ensure, $package_name = $ntp::params::package_name, $panic = $ntp::params::panic, @@ -13,6 +19,23 @@ class ntp ( $service_name = $ntp::params::service_name, ) inherits ntp::params { + validate_absolute_path($config) + validate_string($config_template) + validate_absolute_path($driftfile) + validate_bool($keys_enable) + validate_re($keys_controlkey, ['^\d+$', '']) + validate_re($keys_requestkey, ['^\d+$', '']) + validate_array($keys_trusted) + validate_string($package_ensure) + validate_array($package_name) + validate_bool($panic) + validate_bool($restrict) + validate_array($servers) + validate_bool($service_enable) + validate_string($service_ensure) + validate_bool($service_manage) + validate_string($service_name) + if $autoupdate { notice('autoupdate parameter has been deprecated and replaced with package_ensure. Set this to latest for the same behavior as autoupdate => true.') } diff --git a/manifests/params.pp b/manifests/params.pp index 45551a8..9e91cce 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -1,22 +1,28 @@ class ntp::params { - $autoupdate = false - $package_ensure = 'present' - $restrict = true - $service_enable = true - $service_ensure = 'running' - $service_manage = true + $autoupdate = false + $config_template = 'ntp/ntp.conf.erb' + $keys_enable = false + $keys_controlkey = '' + $keys_requestkey = '' + $keys_trusted = [] + $package_ensure = 'present' + $restrict = true + $service_enable = true + $service_ensure = 'running' + $service_manage = true # On virtual machines allow large clock skews. - $panic = $::is_virtual ? { - 'true' => false, + $panic = str2bool($::is_virtual) ? { + true => false, default => true, } case $::osfamily { 'Debian': { $config = '/etc/ntp.conf' - $config_template = 'ntp/ntp.conf.debian.erb' + $keysfile = '/etc/ntp/keys' + $driftfile = '/var/lib/ntp/drift' $package_name = [ 'ntp' ] $service_name = 'ntp' $servers = [ @@ -28,7 +34,8 @@ class ntp::params { } 'RedHat': { $config = '/etc/ntp.conf' - $config_template = 'ntp/ntp.conf.el.erb' + $driftfile = '/var/lib/ntp/drift' + $keysfile = '/etc/ntp/keys' $package_name = [ 'ntp' ] $service_name = 'ntpd' $servers = [ @@ -39,7 +46,8 @@ class ntp::params { } 'SuSE': { $config = '/etc/ntp.conf' - $config_template = 'ntp/ntp.conf.suse.erb' + $driftfile = '/var/lib/ntp/drift/ntp.drift' + $keysfile = '/etc/ntp/keys' $package_name = [ 'ntp' ] $service_name = 'ntp' $servers = [ @@ -51,7 +59,8 @@ class ntp::params { } 'FreeBSD': { $config = '/etc/ntp.conf' - $config_template = 'ntp/ntp.conf.freebsd.erb' + $driftfile = '/var/db/ntpd.drift' + $keysfile = '/etc/ntp/keys' $package_name = ['net/ntp'] $service_name = 'ntpd' $servers = [ @@ -63,8 +72,9 @@ class ntp::params { } 'Archlinux': { $config = '/etc/ntp.conf' - $config_template = 'ntp/ntp.conf.archlinux.erb' - $package_name = ['ntp'] + $driftfile = '/var/lib/ntp/drift' + $keysfile = '/etc/ntp/keys' + $package_name = [ 'ntp' ] $service_name = 'ntpd' $servers = [ '0.pool.ntp.org', @@ -77,7 +87,8 @@ class ntp::params { case $::operatingsystem { 'Gentoo': { $config = '/etc/ntp.conf' - $config_template = 'ntp/ntp.conf.gentoo.erb' + $driftfile = '/var/lib/ntp/drift' + $keysfile = '/etc/ntp/keys' $package_name = ['net-misc/ntp'] $service_name = 'ntpd' $servers = [ |