Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
- Puppet >= 7.0.0 < 9.0.0
- SLES, Archlinux, Gentoo , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'puppet-chrony', '3.0.0'
Learn more about managing modules with a PuppetfileDocumentation
puppet-chrony
Table of Contents
- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with chrony
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Copyright and License
Overview
Chrony Puppet Module
Manage chrony time daemon on Archlinux and Redhat
Module Description
The Chrony module handles running chrony in Archlinux and Redhat systems with systemd.
Setup
What chrony affects
- chrony package.
- chrony configuration file.
- chrony key file.
- chrony service.
Requirements
Please review metadata.json
for a list of requirements.
Beginning with chrony
include 'chrony'
is all you need to get it running. If you
wish to pass in parameters like which servers to use
then you can use:
class { 'chrony':
servers => ['ntp1.corp.com', 'ntp2.corp.com' ],
}
Usage
All interaction with the chrony module can be done through the main chrony class.
I just want chrony, what's the minimum I need?
include 'chrony'
I just want to tweak the servers, nothing else
class { 'chrony':
servers => [ 'ntp1.corp.com', 'ntp2.corp.com', ],
}
I'd like to make sure a secret password is used for chronyc
class { 'chrony':
servers => [ 'ntp1.corp.com', 'ntp2.corp.com', ],
chrony_password => 'secret_password',
}
I'd like to use NTP authentication
class { 'chrony':
keys => ['25 SHA1 HEX:1dc764e0791b11fa67efc7ecbc4b0d73f68a070c'],
servers => {
'ntp1.corp.com' => ['key 25', 'iburst'],
'ntp2.corp.com' => ['key 25', 'iburst'],
},
}
I'd like chronyd to auto generate a command key at startup
class { 'chrony':
chrony_password => 'unset',
config_keys_manage => false,
}
Allow some hosts
class { 'chrony':
queryhosts => [ '192.168/16', ],
}
How to configure leap second
class { 'chrony':
leapsecmode => 'slew',
smoothtime => '400 0.001 leaponly',
maxslewrate => 1000.0
}
Enable chrony-wait.service
RedHat and Suse provide a default disabled chrony-wait.service
to block the time-sync.target
until node is synchronised.
To enable it:
class { 'chrony':
wait_enable => true,
wait_ensure => true,
}
Reference
Reference documentation for the chrony module is generated using puppet-strings and available in REFERENCE.md
Limitations
This module has been built on and tested against Puppet 5.5 and higher.
The module has been tested on:
- Arch Linux
- Red Hat
- Debian 9, 10
- Ubuntu 18.04, 20.04
- Suse 12.3
- Gentoo 2.7
Copyright and License
This module is distributed under the Apache License 2.0. Copyright belongs to the module's authors, including Niels Abspoel and others.
The module was originally written by Niels Abspoel and released as aboe76/chrony. Since version 0.4.0, it is maintained by Vox Pupuli.
Reference
Table of Contents
Classes
Public Classes
chrony
: Installs and configures chrony
Private Classes
chrony::config
: Configures chronychrony::install
: Installs chronychrony::service
: Manages the chrony service
Functions
Private Functions
chrony::server_array_to_hash
: Function to normalise servers/pools/peers
Data types
Chrony::Servers
: Type for theservers
,pools
andpeers
parameters.
Classes
chrony
Installs and configures chrony
- See also
Examples
Install chrony with default options
include chrony
Use specific servers (These will be configured with the iburst
option.)
class { 'chrony':
servers => [ 'ntp1.corp.com', 'ntp2.corp.com', ],
}
Two specific servers without iburst
class { 'chrony':
servers => {
'ntp1.corp.com' => [],
'ntp2.corp.com' => [],
},
}
Ensure a secret password is used for chronyc
class { 'chrony':
servers => [ 'ntp1.corp.com', 'ntp2.corp.com', ],
chrony_password => 'secret_password',
}
Use NTP authentication
class { 'chrony':
keys => [
'25 SHA1 HEX:1dc764e0791b11fa67efc7ecbc4b0d73f68a070c',
],
servers => {
'ntp1.corp.com' => ['key 25', 'iburst'],
'ntp2.corp.com' => ['key 25', 'iburst'],
},
}
Have chronyd autogenerate a command key at startup
class { 'chrony':
chrony_password => 'unset',
config_keys_manage => false,
}
Allow some hosts
class { 'chrony':
queryhosts => ['192.168/16'],
}
Configure the leap second mode
class { 'chrony':
leapsecmode => 'slew',
smoothtime => '400 0.001 leaponly',
maxslewrate => 1000.0
}
Configure makestep
# Step the system clock if the adjustment is larger than 1000 seconds, but only in the first ten clock updates.
class { 'chrony':
makestep_seconds => 1000,
makestep_updates => 10,
}
Parameters
The following parameters are available in the chrony
class:
bindaddress
bindcmdaddress
initstepslew
sourcedir
confdir
cmdacl
cmdport
commandkey
chrony_password
config
config_template
config_keys
config_keys_manage
config_keys_template
config_keys_owner
config_keys_group
config_keys_mode
keys
driftfile
local_stratum
ntpsigndsocket
stratumweight
log_options
logbanner
logchange
package_ensure
package_name
package_source
package_provider
peers
servers
pools
minsources
minsamples
refclocks
makestep_seconds
makestep_updates
queryhosts
denyqueryhosts
port
service_enable
service_ensure
service_manage
service_name
wait_enable
wait_ensure
wait_manage
wait_name
smoothtime
mailonchange
threshold
lock_all
sched_priority
leapsecmode
leapsectz
maxdistance
maxslewrate
ntsserverkey
ntsservercert
ntsport
maxntsconnections
ntsprocesses
ntsdumpdir
ntsntpserver
ntsrotate
clientlog
clientloglimit
rtcsync
rtconutc
hwtimestamps
dumpdir
maxupdateskew
acquisitionport
bindaddress
Data type: Array[Stdlib::IP::Address]
Array of addresses of interfaces on which chronyd will listen for NTP traffic. Listens on all addresses if left empty.
Default value: []
bindcmdaddress
Data type: Array[String]
Array of addresses of interfaces on which chronyd will listen for monitoring command packets.
Default value: ['127.0.0.1', '::1']
initstepslew
Data type: Optional[String]
Allow chronyd to make a rapid measurement of the system clock error at boot time, and to correct the system clock by stepping before normal operation begins.
Default value: undef
sourcedir
Data type: Optional[Stdlib::Absolutepath]
The confdir directive includes configuration files with the .conf suffix from a directory.
Default value: undef
confdir
Data type: Optional[Stdlib::Absolutepath]
The sourcedir directive is identical to the confdir directive, except the configuration files have the .sources suffix, they can only specify NTP sources.
Default value: undef
cmdacl
Data type: Array[String]
An array of ACLs for monitoring access. This expects a list of directives, for
example: ['cmdallow 1.2.3.4', 'cmddeny 1.2.3']
. The order will be respected at
the time of generating the configuration. The argument of the allow or deny
commands can be an address, a partial address or a subnet (see manpage for more
details).
Default value: []
cmdport
Data type: Optional[Stdlib::Port]
The cmdport directive allows the port that is used for run-time monitoring (via the chronyc program) to be altered from its default (323).
Default value: undef
commandkey
Data type: NotUndef
This sets the key ID used by chronyc to authenticate to chronyd.
Default value: 0
chrony_password
Data type: Variant[Sensitive[String[1]], String[1]]
This sets the chrony password to be used in the key file. By default a short fixed string is used. If set explicitly to 'unset' then no password will be added to the keys file by puppet.
Default value: 'xyzzy'
config
Data type: Stdlib::Unixpath
This sets the file to write chrony configuration into.
Default value: '/etc/chrony/chrony.conf'
config_template
Data type: String[1]
This determines which template puppet should use for the chrony configuration.
Default value: 'chrony/chrony.conf.epp'
config_keys
Data type: Variant[Stdlib::Unixpath,String[0,0]]
This sets the file to write chrony keys into. Set to '' to remove keyfile
attribute from the config.
Default value: '/etc/chrony/chrony.keys'
config_keys_manage
Data type: Boolean
Determines whether puppet will manage the content of the keys file after it has been created for the first time.
Default value: true
config_keys_template
Data type: String[1]
This determines which template puppet should use for the chrony key file.
Default value: 'chrony/chrony.keys.epp'
config_keys_owner
Data type: Variant[Integer[0],String[1]]
Specify unix owner of chrony keys file, defaults to 0.
Default value: 0
config_keys_group
Data type: Variant[Integer[0],String[1]]
Specify unix group of chrony keys files, defaults to 0 on ArchLinux and chrony on Redhat.
Default value: 0
config_keys_mode
Data type: Stdlib::Filemode
Specify unix mode of chrony keys files, defaults to 0644 on ArchLinux and 0640 on Redhat.
Default value: '0640'
keys
Data type: Array[String[1]]
An array of key lines. These are printed as-is into the chrony key file.
Default value: []
driftfile
Data type: Stdlib::Unixpath
A file for chrony to record clock drift in.
Default value: '/var/lib/chrony/drift'
local_stratum
Data type: Variant[Boolean[false],Integer[1,15]]
Override the stratum of the server which will be reported to clients
when the local reference is active. Use false
to not set local_stratum in
chrony configuration.
Default value: 10
ntpsigndsocket
Data type: Optional[Stdlib::Unixpath]
This sets the location of the Samba ntp_signd socket when it is running as a Domain Controller (DC).
Default value: undef
stratumweight
Data type: Optional[Numeric]
Sets how much distance should be added per stratum to the synchronisation distance when chronyd selects the synchronisation source from available sources. When not set, chronyd's default will be used, which since version 2.0 of chrony, is 0.001 seconds.
Default value: undef
log_options
Data type: Optional[String[1]]
Specify which information is to be logged.
Default value: undef
logbanner
Data type: Optional[Integer[0]]
Specify how often the log banner is placed in the logfile.
Default value: undef
logchange
Data type: Float
Sets the threshold for the adjustment of the system clock that will generate a syslog message. Clock errors detected via NTP packets, reference clocks, or timestamps entered via the settime command of chronyc are logged.
Default value: 0.5
package_ensure
Data type: String[1]
This can be set to 'present' or 'latest' or a specific version to choose the chrony package to be installed.
Default value: 'present'
package_name
Data type: String[1]
This determines the name of the package to install.
Default value: 'chrony'
package_source
Data type: Optional[String]
Source for the package when not wanting to install from a package repository. This is required if
package_provider
is set to rpm
or dpkg
.
Default value: undef
package_provider
Data type: Optional[String]
Override the default package provider with a specific backend to use when installing the chrony package.
Also see package_source
.
Default value: undef
peers
Data type: Chrony::Servers
This selects the servers to use for NTP peers (symmetric association). It can be an array of peers or a hash of peers with their respective options.
Default value: []
servers
Data type: Chrony::Servers
This selects the servers to use for NTP servers. It can be an array of servers
or a hash of servers to their respective options. If an array is used, iburst
will be configured for each server.
If you don't want to use iburst
, use a hash instead.
Default value:
{
'0.pool.ntp.org' => ['iburst'],
'1.pool.ntp.org' => ['iburst'],
'2.pool.ntp.org' => ['iburst'],
'3.pool.ntp.org' => ['iburst'],
}
pools
Data type: Chrony::Servers
This is used to specify one or more pools of NTP servers to use instead of individual NTP servers.
Similar to server
, it can be an array of pools, (using iburst), or a hash of pools to their respective options.
See pool
Default value: {}
minsources
Data type: Optional[Integer[1]]
Sets the minimum number of sources that need to be considered as selectable in the source selection algorithm before the local clock is updated.
Default value: undef
minsamples
Data type: Optional[Integer[1]]
Specifies the minimum number of readings kept for tracking of the NIC clock.
Default value: undef
refclocks
Data type: Array
This should be a Hash of hardware reference clock drivers to use. They hash can either list a single list of options for the driver, or any array of multiple options if the same driver is used for multiple hardware clocks.
Example:
refclocks => { 'PPS' => [ '/dev/pps0 lock NMEA refid GPS',
'/dev/pps1:clear refid GPS2' ],
'SHM' => '0 offset 0.5 delay 0.2 refid NMEA noselect' }
Default value: []
makestep_seconds
Data type: Numeric
Configures the makestep
threshold
.
Normally chronyd will cause the system to gradually correct any time offset, by slowing down or speeding up the clock as required.
If the adjustment is larger than makestep_seconds
, chronyd will step the clock.
Also see makestep_updates
.
Default value: 10
makestep_updates
Data type: Integer
Configures the makestep
limit
.
Chronyd will step the time only if there have been no more than makestep_updates
clock updates.
Set to a negative value to disable the limit (useful for virtual machines and laptops that may get suspended for a prolonged time).
Also see makestep_seconds
.
Default value: 3
queryhosts
Data type: Array[String[0]]
This adds the networks, hosts that are allowed to query the daemon.
Default value: []
denyqueryhosts
Data type: Array[String[0]]
Similar to queryhosts, except that it denies NTP client access to a particular subnet or host, rather than allowing it.
Default value: []
port
Data type: Optional[Stdlib::Port]
Port the service should listen on. Module default is undef
which means that port
isn't added to chrony.conf, and chrony listens to the default ntp port 123 if
queryhosts
is used.
Default value: undef
service_enable
Data type: Boolean
This determines if the service should be enabled at boot.
Default value: true
service_ensure
Data type: Stdlib::Ensure::Service
This determines if the service should be running or not.
Default value: 'running'
service_manage
Data type: Boolean
This selects if puppet should manage the service in the first place.
Default value: true
service_name
Data type: String[1]
This selects the name of the chrony service for puppet to manage.
Default value: 'chronyd'
wait_enable
Data type: Boolean
This determines if the chrony-wait service should be enabled at boot.
Default value: false
wait_ensure
Data type: Stdlib::Ensure::Service
This determines if the chrony-wait service should be running or not.
Default value: 'stopped'
wait_manage
Data type: Boolean
This selects if puppet should manage the chrony-wait service in the first place.
Default value: false
wait_name
Data type: String[1]
This selects the name of the chrony-wait service for puppet to manage.
Default value: 'chrony-wait.service'
smoothtime
Data type: Optional[String]
Specify the smoothing of the time parameter as a string, for example smoothtime 50000 0.01
.
Default value: undef
mailonchange
Data type: Optional[String[1]]
Specify the mail you wanna alert when chronyd executes a sync grater than the threshold
.
Default value: undef
threshold
Data type: Float
Specify the time limit for triggering events.
Default value: 0.5
lock_all
Data type: Boolean
Force chrony to only use RAM & prevent swapping.
Default value: false
sched_priority
Data type: Optional[Integer[0,100]]
Set the CPU thread scheduler, this value is OS specific.
Default value: undef
leapsecmode
Data type: Optional[Enum['system', 'step', 'slew', 'ignore']]
Configures how to insert the leap second mode.
Default value: undef
leapsectz
Data type: Optional[String]
Specifies a timezone that chronyd can use to determine the offset between UTC and TAI.
Default value: undef
maxdistance
Data type: Optional[Float]
Sets the maximum root distance of a source to be acceptable for synchronisation of the clock.
Default value: undef
maxslewrate
Data type: Optional[Float]
Maximum rate for chronyd to slew the time. Only float type values possible, for example: maxslewrate 1000.0
.
Default value: undef
ntsserverkey
Data type: Optional[Stdlib::Absolutepath]
This directive specifies a file containing a private key in the PEM format for chronyd to operate as an NTS server.
Default value: undef
ntsservercert
Data type: Optional[Stdlib::Absolutepath]
This directive specifies a file containing a certificate in the PEM format for chronyd to operate as an NTS server.
Default value: undef
ntsport
Data type: Optional[Stdlib::Port]
This directive specifies the TCP port on which chronyd will provide the NTS Key Establishment (NTS-KE) service.
Default value: undef
maxntsconnections
Data type: Optional[Integer[0]]
This directive specifies the maximum number of concurrent NTS-KE connections per process that the NTS server will accept.
Default value: undef
ntsprocesses
Data type: Optional[Integer[0]]
This directive specifies how many helper processes will chronyd operating as an NTS server start for handling client NTS-KE requests in order to improve performance with multi-core CPUs and multithreading.
Default value: undef
ntsdumpdir
Data type: Optional[Stdlib::Absolutepath]
This directive specifies a directory where chronyd operating as an NTS server can save the keys which encrypt NTS cookies provided to clients.
Default value: undef
ntsntpserver
Data type: Optional[String]
This directive specifies the hostname (as a fully qualified domain name) or address of the NTP server(s) which is provided in the NTS-KE response to the clients.
Default value: undef
ntsrotate
Data type: Optional[Integer[0]]
This directive specifies the rotation interval (in seconds) of the server key which encrypts the NTS cookies.
Default value: undef
clientlog
Data type: Boolean
Determines whether to log client accesses.
Default value: false
clientloglimit
Data type: Optional[Integer]
When set, specifies the maximum amount of memory in bytes that chronyd is allowed to allocate for logging of client accesses. If not set, chrony's, default will be used. In modern versions this is 524288 bytes. Older versions defaulted to have no limit. See clientloglimit
Default value: undef
rtcsync
Data type: Boolean
Sync system clock to RTC periodically
Default value: true
rtconutc
Data type: Boolean
Keep RTC in UTC instead of local time. If not set, chrony's, default will be used. On Arch Linux the default is true instead. See rtconutc
Default value: false
hwtimestamps
Data type: Variant[Hash,Array[String]]
This selects interfaces to enable hardware timestamps on. It can be an array of interfaces or a hash of interfaces to their respective options.
Default value: []
dumpdir
Data type: Optional[Stdlib::Unixpath]
Directory to store measurement history in on exit.
Default value: undef
maxupdateskew
Data type: Optional[Float]
Sets the threshold for determining whether an estimate might be so unreliable that it should not be used
Default value: undef
acquisitionport
Data type: Optional[Integer[1,65535]]
Sets the acquisitionport for client queries
Default value: undef
Data types
Chrony::Servers
This type is for the servers
, pools
and peers
parameters.
Examples
A hash of servers
{
'ntp1.example.com => [
'minpoll 3',
'maxpoll 6',
],
'ntp2.example.com => [
'iburst',
'minpoll 4',
'maxpoll 8',
],
}
An array of servers
[
'ntp1.example.com',
'ntp2.example.com',
]
Alias of Variant[Hash[Stdlib::Host, Optional[Array[String]]], Array[Stdlib::Host]]
Changelog
All notable changes to this project will be documented in this file. Each new release typically also includes the latest modulesync defaults. These should not affect the functionality of the module.
v3.0.0 (2023-06-21)
Breaking changes:
- Drop EoL Debian 9 #173 (traylenator)
- Drop Puppet 6 support #170 (bastelfreak)
Implemented enhancements:
- puppetlabs/stdlib: Allow 9.x #175 (bastelfreak)
- Add puppet 8 support #174 (bastelfreak)
- add RHEL 9 to supported OS #168 (tuxmea)
Fixed bugs:
Merged pull requests:
v2.6.0 (2022-11-16)
Implemented enhancements:
v2.5.0 (2022-08-11)
Implemented enhancements:
- make config_keys option optional #156 (bastelfreak)
v2.4.1 (2022-08-02)
Implemented enhancements:
- Add more config settings and prep EL9 support #151 (jcpunk)
- Allow the password to be a Sensitive string. #150 (jcpunk)
Merged pull requests:
v2.4.0 (2022-04-19)
Implemented enhancements:
Merged pull requests:
v2.3.0 (2022-03-20)
Implemented enhancements:
- Add support for several NTS settings. #145 (Heidistein)
- Add confdir (chrony.cond.d) support #144 (Heidistein)
- Add support for ntpsigndsocket #139 (ipoddubny)
Closed issues:
v2.2.0 (2022-03-07)
Implemented enhancements:
Fixed bugs:
- Arch Linux: also manage chrony-wait.service #141 (bastelfreak)
v2.1.0 (2021-11-23)
Implemented enhancements:
- Manage chrony-wait.service on RedHat and Suse #127 (traylenator)
- Add Ubuntu support #125 (kenyon)
- Add support for maxdistance #122 (hoffie)
Fixed bugs:
- Actually test services are running #128 (traylenator)
Merged pull requests:
v2.0.0 (2021-07-08)
Breaking changes:
Implemented enhancements:
- Add initstepslew #116 (jasonknudsen)
- Allow users to not set local stratum #113 (unixsurfer)
- Add support for maxupdateskew #112 (unixsurfer)
- add bindaddress option #110 (jhunt-steds)
Fixed bugs:
Closed issues:
- Make a new release #115
Merged pull requests:
- Allow stdlib version 7.x #119 (smortex)
- Add support for Debian 10 #118 (smortex)
- Drop text pointing to previous repo/version #108 (jcpunk)
v1.0.0 (2021-01-05)
Breaking changes:
- Drop EoL Debian 8 support #105 (bastelfreak)
- Drop Eol CentOS 6 support #104 (bastelfreak)
Fixed bugs:
- Restore behaviour of
servers
andpools
parameters #103 (alexjfisher) - queryhosts: enforce Array[String] data type #101 (kenyon)
Merged pull requests:
- Fix tests to work with rspec-puppet 2.8.0 #93 (alexjfisher)
v0.4.0 (2020-10-25)
This is the first release of this module under Vox Pupuli's puppet namespace. It was migrated to Vox Pupuli from oboe76/chrony.
Implemented enhancements:
- Add new
driftfile
,hwtimestamps
,rtcsync
, anddumpdir
parameters #82 (chrekh) - Add support for Gentoo #80 (chrekh)
- Support
rtconutc
option #68 (Bluewind) - Add
leapsectz
option config option #65 (adrienthebo)
Fixed bugs:
- Fix Arch Linux configuration #77 (0x6d617474)
Closed issues:
- avoid changing configuration when adding optional parameters #64
peer
parameter doesn't do anything on ArchLinux #57
Merged pull requests:
- Replace litmus with Beaker #98 (alexjfisher)
- Remove unnecessary test on $service_ensure #88 (chrekh)
- Change occurrences of 'if !' to 'unless' where possible. #87 (chrekh)
- Add tests for gentoo #86 (chrekh)
- Fix wrong end-tag resulting in blank line. #85 (chrekh)
- Fix documentation about parameter port. #84 (chrekh)
- Convert template for chrony.keys from erb to epp #83 (chrekh)
- Remove default value of 0 for $port and allow $port to be unset #81 (chrekh)
- Consolidate templates and convert to epp() #79 (chrekh)
- Enhance parameter validation with more data types #63 (alexjfisher)
- Move static defaults out of params.pp #61 (alexjfisher)
v0.3.2 (2020-01-14)
Merged pull requests:
- Remove 'Coverage status' badge [#58|(https://github.com/aboe76/puppet-chrony/pull/58) (alexjfisher)
- Use full Apache 2.0 License text and add badge [#57|(https://github.com/aboe76/puppet-chrony/pull/57) (alexjfisher)
- Use puppet-strings for reference docs [#56|(https://github.com/aboe76/puppet-chrony/pull/56) (alexjfisher)
- Add stratumweight parameter [#55|(https://github.com/aboe76/puppet-chrony/pull/55) (alexjfisher)
- Treat keys file content as Sensitive [#54|(https://github.com/aboe76/puppet-chrony/pull/54) (alexjfisher)
- Support custom package source and provider [#53|(https://github.com/aboe76/puppet-chrony/pull/53) (JannikJ)
- Doc update [#52|(https://github.com/aboe76/puppet-chrony/pull/52) (przemas75)
- skew second [#51|(https://github.com/aboe76/puppet-chrony/pull/51) (przemas75)
v0.3.1 (2019-10-12)
Merged pull requests:
- cmdport parameter [#50|(https://github.com/aboe76/puppet-chrony/pull/50) (przemas75)
v0.3.0 (2019-08-05)
Merged pull requests:
- Confirmed RHEL 8 functionality [#46|(https://github.com/aboe76/puppet-chrony/pull/46) (stevekay)
- Add parameter $cmdacl (#47|(https://github.com/aboe76/puppet-chrony/pull/47) (nbarrientos)
v0.2.6 (2019-08-02)
Merged pull requests:
- Allow configuring bindcmdaddress [#45|(https://github.com/aboe76/puppet-chrony/pull/45) (nbarrientos)
- remove dependency on puppetlabs-stdlib [#42|(https://github.com/aboe76/puppet-chrony/pull/43) (vchepkov)
- Don't ignore port setting [#40|(https://github.com/aboe76/puppet-chrony/pull/40) (bzed)
v0.2.5 (2019-04-25)
Merged pull requests:
- Add support for pools [#37|(https://github.com/aboe76/puppet-chrony/pull/37) (giggsey)
v0.2.4 (2019-01-07)
Merged pull requests:
v0.2.3 (2018-10-05)
Merged pull requests:
v0.2.2 (2018-09-26)
Merged pull requests:
- add log_options for logging support #31 (Warblefly)
- Add configuration of clientlog and clientloglimit. #30 (olifre)
- Implement "makestep" config parameter. #27 (olifre)
- add debian in readme tested os #26 (othalla)
v0.2.1 (2018-05-26)
Merged pull requests:
v0.2.0 (2018-05-12)
Merged pull requests:
- Adding Debian support #23 (othalla)
- Add OS support in Metadata & use contain instead of anchor #22 (othalla)
- improve CI & test with puppet 4/5 #21 (othalla)
- Add refclocks configuration parameter #17 (islepnev)
v0.1.2 (2017-10-31)
Merged pull requests:
- Removed unsupported options #15 (4N7)
- Remove unsupported options #14 (4N7)
- make sure we iterate predictable over the hash #11 (duritong)
- Make keys more configurable #10 (roysjosh)
v0.1.1(2016-03-11)
- Allow chrony to create its own keys in chrony.keys
- configure owner,group and mode of chrony keys file
- test will run now
- skip older ruby version in test
- small fixes for travis
v0.1.0(2015-03-08)
- fix future parser
v0.0.9(2014-10-19)
- Secure default installation
- fix travis
- queryhost should be empty
- basic set of tests running
v0.0.8(2014-07-17)
- Fix key params
- chrony.keys not world readable
v0.0.7(2014-06-09)
- Fix path for config_key
- Set Red Hat chrony params
- Fix template Red Hat
v0.0.6(2014-04-27)
- Add Red Hat support
- Add chrony params with queryhost
- Fix build
v0.0.5(2013-03-21)
- Add license
v0.0.4(2013-06-20)
- Fix travis button and testing
v0.0.3(2013-06-20)
- Update Readme and spec test
v0.0.2(2013-06-19)
- Update module forge with more information
v0.0.1(2013-06-19)
- First release on forge
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/stdlib (>= 4.25.1 < 10.0.0)
Copyright 2013 Niels Abspoel Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.