puppet: Allow choice of timesync tool.

This commit is contained in:
Alex Vandiver 2023-01-31 11:24:16 -05:00 committed by Tim Abbott
parent 20841d9b65
commit 68f4071873
3 changed files with 32 additions and 5 deletions

View File

@ -625,6 +625,14 @@ you will need to add **`zulip::apache_sso`** to the list.
Set to true if enabling the [multi-language PGroonga search Set to true if enabling the [multi-language PGroonga search
extension](../subsystems/full-text-search.md#multi-language-full-text-search). extension](../subsystems/full-text-search.md#multi-language-full-text-search).
#### `timesync`
What time synchronization daemon to use; defaults to `chrony`, but also supports
`ntpd` and `none`. Installations should not adjust this unless they are aligning
with a fleet-wide standard of `ntpd`. `none` is only reasonable in containers
like LXC which do not allow adjustment of the clock; a Zulip server will not
function correctly without an accurate clock.
### `[deployment]` ### `[deployment]`
#### `deploy_options` #### `deploy_options`

View File

@ -3,6 +3,7 @@
# This class should only be included by classes that are intended to # This class should only be included by classes that are intended to
# be able to be deployed on their own host. # be able to be deployed on their own host.
class zulip::profile::base { class zulip::profile::base {
include zulip::timesync
include zulip::common include zulip::common
case $::os['family'] { case $::os['family'] {
'Debian': { 'Debian': {
@ -28,8 +29,6 @@ class zulip::profile::base {
'procps', 'procps',
# Used to read /etc/zulip/zulip.conf for `zulipconf` Puppet function # Used to read /etc/zulip/zulip.conf for `zulipconf` Puppet function
'crudini', 'crudini',
# Accurate time is essential
'chrony',
# Used for tools like sponge # Used for tools like sponge
'moreutils', 'moreutils',
# Nagios monitoring plugins # Nagios monitoring plugins
@ -49,7 +48,6 @@ class zulip::profile::base {
'curl', 'curl',
'jq', 'jq',
'crudini', 'crudini',
'chrony',
'moreutils', 'moreutils',
'nmap-ncat', 'nmap-ncat',
'nagios-plugins', # there is no dummy package on CentOS 7 'nagios-plugins', # there is no dummy package on CentOS 7
@ -60,8 +58,6 @@ class zulip::profile::base {
fail('osfamily not supported') fail('osfamily not supported')
} }
} }
package { 'ntp': ensure => purged, before => Package['chrony'] }
service { 'chrony': require => Package['chrony'] }
package { $base_packages: ensure => installed } package { $base_packages: ensure => installed }
group { 'zulip': group { 'zulip':

View File

@ -0,0 +1,23 @@
# @summary Allows configuration of timesync tool.
class zulip::timesync {
$timesync = zulipconf('machine', 'timesync', 'chrony')
case $timesync {
'chrony': {
package { 'ntp': ensure => purged, before => Package['chrony'] }
package { 'chrony': ensure => installed }
service { 'chrony': require => Package['chrony'] }
}
'ntpd': {
package { 'chrony': ensure => purged, before => Package['ntp'] }
package { 'ntp': ensure => installed }
service { 'ntp': require => Package['ntp'] }
}
'none': {
package { ['ntp', 'chrony']: ensure => purged }
}
default: {
fail('Unknown timesync tool: $timesync')
}
}
}