Change NTP module
Change options: * panic - panic is not boolean, it is integer, actually Add options: * tinker - disable or enable tinker * minpoll - to change ntpd send packages frequency * maxpoll - to change ntpd send packages frequency * stepout - to change stepout interval Change-Id: I8da3a129227061bd436e5343dfcceb8eb7a3aca0 Link to upstream fix: https://tickets.puppetlabs.com/browse/MODULES-1925 Related-bug: #1430482 Related-bug: #1436373
This commit is contained in:
parent
b6fef480e4
commit
09ba80fd93
|
@ -11,6 +11,8 @@ class ntp (
|
|||
$keys_controlkey = $ntp::params::keys_controlkey,
|
||||
$keys_requestkey = $ntp::params::keys_requestkey,
|
||||
$keys_trusted = $ntp::params::keys_trusted,
|
||||
$minpoll = $ntp::params::minpoll,
|
||||
$maxpoll = $ntp::params::maxpoll,
|
||||
$package_ensure = $ntp::params::package_ensure,
|
||||
$package_name = $ntp::params::package_name,
|
||||
$panic = $ntp::params::panic,
|
||||
|
@ -22,6 +24,8 @@ class ntp (
|
|||
$service_ensure = $ntp::params::service_ensure,
|
||||
$service_manage = $ntp::params::service_manage,
|
||||
$service_name = $ntp::params::service_name,
|
||||
$stepout = $ntp::params::stepout,
|
||||
$tinker = $ntp::params::tinker,
|
||||
$udlc = $ntp::params::udlc
|
||||
) inherits ntp::params {
|
||||
|
||||
|
@ -35,9 +39,11 @@ class ntp (
|
|||
validate_re($keys_controlkey, ['^\d+$', ''])
|
||||
validate_re($keys_requestkey, ['^\d+$', ''])
|
||||
validate_array($keys_trusted)
|
||||
validate_re($minpoll, '^([3-9]|1[0-6])$')
|
||||
validate_re($minpoll, '^([3-9]|1[0-6])$')
|
||||
validate_string($package_ensure)
|
||||
validate_array($package_name)
|
||||
validate_bool($panic)
|
||||
validate_re($panic, '^\d+$')
|
||||
validate_array($preferred_servers)
|
||||
validate_array($restrict)
|
||||
validate_array($interfaces)
|
||||
|
@ -46,6 +52,8 @@ class ntp (
|
|||
validate_string($service_ensure)
|
||||
validate_bool($service_manage)
|
||||
validate_string($service_name)
|
||||
validate_re($stepout, '^\d+$')
|
||||
validate_bool($tinker)
|
||||
validate_bool($udlc)
|
||||
|
||||
if $autoupdate {
|
||||
|
|
|
@ -8,20 +8,19 @@ class ntp::params {
|
|||
$keys_requestkey = ''
|
||||
$keys_trusted = []
|
||||
$logfile = undef
|
||||
$minpoll = 6
|
||||
$package_ensure = 'present'
|
||||
$panic = 1000
|
||||
$preferred_servers = []
|
||||
$service_enable = true
|
||||
$service_ensure = 'running'
|
||||
$service_manage = true
|
||||
$stepout = 300
|
||||
$tinker = false
|
||||
$udlc = false
|
||||
$interfaces = []
|
||||
|
||||
# On virtual machines allow large clock skews.
|
||||
$panic = str2bool($::is_virtual) ? {
|
||||
true => false,
|
||||
default => true,
|
||||
}
|
||||
|
||||
|
||||
$default_config = '/etc/ntp.conf'
|
||||
$default_keys_file = '/etc/ntp/keys'
|
||||
$default_driftfile = '/var/lib/ntp/drift'
|
||||
|
@ -46,6 +45,7 @@ class ntp::params {
|
|||
'2.debian.pool.ntp.org',
|
||||
'3.debian.pool.ntp.org',
|
||||
]
|
||||
$maxpoll = 10
|
||||
}
|
||||
'Debian': {
|
||||
$config = $default_config
|
||||
|
@ -66,6 +66,7 @@ class ntp::params {
|
|||
'2.debian.pool.ntp.org',
|
||||
'3.debian.pool.ntp.org',
|
||||
]
|
||||
$maxpoll = 10
|
||||
}
|
||||
'RedHat': {
|
||||
$config = $default_config
|
||||
|
@ -85,6 +86,7 @@ class ntp::params {
|
|||
'1.centos.pool.ntp.org',
|
||||
'2.centos.pool.ntp.org',
|
||||
]
|
||||
$maxpoll = 10
|
||||
}
|
||||
'Suse': {
|
||||
if $::operatingsystem == 'SLES' and $::operatingsystemmajrelease == '12'
|
||||
|
@ -111,6 +113,7 @@ class ntp::params {
|
|||
'2.opensuse.pool.ntp.org',
|
||||
'3.opensuse.pool.ntp.org',
|
||||
]
|
||||
$maxpoll = 10
|
||||
}
|
||||
'FreeBSD': {
|
||||
$config = $default_config
|
||||
|
@ -126,11 +129,12 @@ class ntp::params {
|
|||
$service_name = $default_service_name
|
||||
$iburst_enable = true
|
||||
$servers = [
|
||||
'0.freebsd.pool.ntp.org maxpoll 9',
|
||||
'1.freebsd.pool.ntp.org maxpoll 9',
|
||||
'2.freebsd.pool.ntp.org maxpoll 9',
|
||||
'3.freebsd.pool.ntp.org maxpoll 9',
|
||||
'0.freebsd.pool.ntp.org',
|
||||
'1.freebsd.pool.ntp.org',
|
||||
'2.freebsd.pool.ntp.org',
|
||||
'3.freebsd.pool.ntp.org',
|
||||
]
|
||||
$maxpoll = 9
|
||||
}
|
||||
'Archlinux': {
|
||||
$config = $default_config
|
||||
|
@ -150,6 +154,7 @@ class ntp::params {
|
|||
'1.pool.ntp.org',
|
||||
'2.pool.ntp.org',
|
||||
]
|
||||
$maxpoll = 10
|
||||
}
|
||||
'Solaris': {
|
||||
$config = '/etc/inet/ntp.conf'
|
||||
|
@ -173,6 +178,7 @@ class ntp::params {
|
|||
'2.pool.ntp.org',
|
||||
'3.pool.ntp.org',
|
||||
]
|
||||
$maxpoll = 10
|
||||
}
|
||||
# Gentoo was added as its own $::osfamily in Facter 1.7.0
|
||||
'Gentoo': {
|
||||
|
@ -194,6 +200,7 @@ class ntp::params {
|
|||
'2.gentoo.pool.ntp.org',
|
||||
'3.gentoo.pool.ntp.org',
|
||||
]
|
||||
$maxpoll = 10
|
||||
}
|
||||
'Linux': {
|
||||
# Account for distributions that don't have $::osfamily specific settings.
|
||||
|
@ -218,6 +225,7 @@ class ntp::params {
|
|||
'2.gentoo.pool.ntp.org',
|
||||
'3.gentoo.pool.ntp.org',
|
||||
]
|
||||
$maxpoll = 10
|
||||
}
|
||||
default: {
|
||||
fail("The ${module_name} module is not supported on an ${::operatingsystem} distribution.")
|
||||
|
|
|
@ -86,6 +86,7 @@ describe 'ntp' do
|
|||
describe 'preferred servers' do
|
||||
context "when set" do
|
||||
let(:params) {{
|
||||
:maxpoll => 10,
|
||||
:servers => ['a', 'b', 'c', 'd'],
|
||||
:preferred_servers => ['a', 'b']
|
||||
}}
|
||||
|
@ -189,6 +190,7 @@ describe 'ntp' do
|
|||
describe 'with parameter iburst_enable' do
|
||||
context 'when set to true' do
|
||||
let(:params) {{
|
||||
:maxpoll => 10,
|
||||
:iburst_enable => true,
|
||||
}}
|
||||
|
||||
|
@ -310,7 +312,7 @@ describe 'ntp' do
|
|||
|
||||
it 'uses the freebsd ntp servers by default' do
|
||||
should contain_file('/etc/ntp.conf').with({
|
||||
'content' => /server \d.freebsd.pool.ntp.org maxpoll 9 iburst/,
|
||||
'content' => /server \d.freebsd.pool.ntp.org iburst maxpoll 9/,
|
||||
})
|
||||
end
|
||||
end
|
||||
|
@ -375,25 +377,6 @@ describe 'ntp' do
|
|||
'content' => /server.*127.127.1.0.*fudge.*127.127.1.0 stratum 10/,
|
||||
})
|
||||
end
|
||||
|
||||
it 'allows large clock skews' do
|
||||
should contain_file('/etc/ntp.conf').with({
|
||||
'content' => /tinker panic 0/,
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
describe 'for physical machines' do
|
||||
let :facts do
|
||||
super().merge({ :osfamily => 'Archlinux',
|
||||
:is_virtual => 'false' })
|
||||
end
|
||||
|
||||
it 'disallows large clock skews' do
|
||||
should_not contain_file('/etc/ntp.conf').with({
|
||||
'content' => /tinker panic 0/,
|
||||
})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# ntp.conf: Managed by puppet.
|
||||
#
|
||||
<% if @panic == false -%>
|
||||
<% if @tinker == true -%>
|
||||
# Keep ntpd from panicking in the event of a large clock skew
|
||||
# when a VM guest is suspended and resumed.
|
||||
tinker panic 0
|
||||
tinker panic <%= @panic %><% if @stepout != 300 -%> stepout <%= @stepout %> <% end %>
|
||||
<% end -%>
|
||||
|
||||
<% if @disable_monitor == true -%>
|
||||
|
@ -28,7 +28,7 @@ interface listen <%= interface %>
|
|||
<% end -%>
|
||||
|
||||
<% [@servers].flatten.each do |server| -%>
|
||||
server <%= server %><% if @iburst_enable == true -%> iburst<% end %><% if @preferred_servers.include?(server) -%> prefer<% end %>
|
||||
server <%= server %><% if @iburst_enable == true -%> iburst<% end %><% if @preferred_servers.include?(server) -%> prefer<% end %><% if @minpoll.to_i != 6 -%> minpoll <%= @minpoll %><% end %><% if @maxpoll.to_i != 10 -%> maxpoll <%= @maxpoll %><% end %>
|
||||
<% end -%>
|
||||
|
||||
<% if scope.lookupvar('::is_virtual') == "false" or @udlc -%>
|
||||
|
|
Loading…
Reference in New Issue