diff --git a/README.md b/README.md index a1bab91..fb26368 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Time management in Linux is important. The underlying protocol is ntp, the servi This module differentiates between client- and server configuration. If the `FQDN` of the puppet client matches the value of `cy_server_fqdn`, it assumes this to be an ntp time server, else it will be a client. -If you have no local time server(s), leave the default for `cy_server_fqdn`. +If you have no local time server(s), leave `cy_use_lan_server` at `false` (default), else set it to `true`. This affects only client configurations. The value for `cy_server_fqdn` is a string rather array, assuming either a single time server or a round-robin DNS entry for this, returning several values for the time server (not configured by this module). diff --git a/manifests/params.pp b/manifests/params.pp index cc4db18..4548c37 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -17,37 +17,39 @@ # @param [String] cy_leapsectz Leap second timezone file to use. # @param [String] cy_loginfo Log information to record. Valid values are # 'measurements', 'statistics', and 'tracking'. +# @param [Boolean] cy_use_lan_server Whether to use a local LAN server or external pool. ############################################################################### class confdroid_ntp::params ( # installation - Array $cy_reqpackages = ['chrony'], - String $cy_pkg_ensure = 'present', + Array $cy_reqpackages = ['chrony'], + String $cy_pkg_ensure = 'present', # configuration - String $cy_server_fqdn = 'ntp.example.local', - Array $cy_conf_servers = ['0.pool.ntp.org', '1.pool.ntp.org', '2.pool.ntp.org', '3.pool.ntp.org'], - String $cy_min_sources = '3', - String $cy_client_allow = '192.168.1.0/24', - String $cy_leapsec_mode = 'slew', - String $cy_leapsectz = 'right/UTC', - String $cy_loginfo = 'measurements statistics tracking', + Boolean $cy_use_lan_server = false, + String $cy_server_fqdn = 'ntp.example.local', + Array $cy_conf_servers = ['0.pool.ntp.org', '1.pool.ntp.org', '2.pool.ntp.org', '3.pool.ntp.org'], + String $cy_min_sources = '3', + String $cy_client_allow = '192.168.1.0/24', + String $cy_leapsec_mode = 'slew', + String $cy_leapsectz = 'right/UTC', + String $cy_loginfo = 'measurements statistics tracking', ) { # facts - $fqdn = $facts['networking']['fqdn'] - $domain = $facts['networking']['domain'] - $os_name = $facts['os']['name'] - $os_release = $facts['os']['release']['major'] + $fqdn = $facts['networking']['fqdn'] + $domain = $facts['networking']['domain'] + $os_name = $facts['os']['name'] + $os_release = $facts['os']['release']['major'] # dirs # files - $cy_conf_file = '/etc/chrony.conf' - $cy_conf_erb = 'confdroid_ntp/chrony.conf.erb' + $cy_conf_file = '/etc/chrony.conf' + $cy_conf_erb = 'confdroid_ntp/chrony.conf.erb' # service - $cy_service = 'chronyd' + $cy_service = 'chronyd' # includes must be last include confdroid_ntp::main::config diff --git a/templates/chrony.conf.erb b/templates/chrony.conf.erb index 412b9d1..48419e0 100644 --- a/templates/chrony.conf.erb +++ b/templates/chrony.conf.erb @@ -63,7 +63,13 @@ log <%= @cy_loginfo %> <% if @fqdn != @cy_server_fqdn -%> # This is a time client configuration file +<% if @cy_use_lan_server -%> server <%= @cy_server_fqdn %> iburst +<% else -%> +# Use public servers from the pool.ntp.org project. +<% @cy_conf_servers.each do |this_server| -%> +server <%= this_server %> iburst +<% end -%> # Use NTP servers from DHCP. sourcedir /run/chrony-dhcp