From 0235486d2d6de477bfa93487b03e6ca37cb2d24c Mon Sep 17 00:00:00 2001 From: Ashley Penney Date: Mon, 29 Jul 2013 16:02:50 -0400 Subject: 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. --- manifests/config.pp | 17 +++++++++++++++++ manifests/init.pp | 23 +++++++++++++++++++++++ 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 = [ -- cgit v1.2.3