# **NOTE: THIS IS A [PRIVATE](https://github.com/puppetlabs/puppetlabs-stdlib#assert_private) CLASS** # # 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'], } } }