-
-
Notifications
You must be signed in to change notification settings - Fork 142
/
timesyncd.pp
65 lines (61 loc) · 1.93 KB
/
timesyncd.pp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# @api private
#
# This class provides an abstract way to trigger systemd-timesyncd
#
# @param ensure
# The state that the ``networkd`` service should be in
#
# @param ntp_server
# A space-separated list of NTP servers, will be combined with interface specific
# addresses from systemd-networkd. requires puppetlabs-inifile
#
# @param fallback_ntp_server
# A space-separated list of NTP server host names or IP addresses to be used
# as the fallback NTP servers. Any per-interface NTP servers obtained from
# systemd-networkd take precedence over this setting. requires puppetlabs-inifile
class systemd::timesyncd (
Enum['stopped','running'] $ensure = $systemd::timesyncd_ensure,
Optional[Variant[Array,String]] $ntp_server = $systemd::ntp_server,
Optional[Variant[Array,String]] $fallback_ntp_server = $systemd::fallback_ntp_server,
) {
assert_private()
$_enable_timesyncd = $ensure ? {
'stopped' => false,
'running' => true,
default => $ensure,
}
service { 'systemd-timesyncd':
ensure => $ensure,
enable => $_enable_timesyncd,
}
if $ntp_server {
if $ntp_server =~ String {
$_ntp_server = $ntp_server
} else {
$_ntp_server = join($ntp_server, ' ')
}
ini_setting { 'ntp_server':
ensure => 'present',
value => $_ntp_server,
setting => 'NTP',
section => 'Time',
path => '/etc/systemd/timesyncd.conf',
notify => Service['systemd-timesyncd'],
}
}
if $fallback_ntp_server {
if $fallback_ntp_server =~ String {
$_fallback_ntp_server = $fallback_ntp_server
} else {
$_fallback_ntp_server = join($fallback_ntp_server, ' ')
}
ini_setting { 'fallback_ntp_server':
ensure => 'present',
value => $_fallback_ntp_server,
setting => 'FallbackNTP',
section => 'Time',
path => '/etc/systemd/timesyncd.conf',
notify => Service['systemd-timesyncd'],
}
}
}