MAAS servers have two NTP clients
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Fix Released
|
High
|
Bill Wear | ||
MAAS documentation |
Fix Committed
|
High
|
Bill Wear |
Bug Description
Ubuntu comes with systemd-timesyncd to server as an NTP client. Apparently this has been the case since 16.04.
When you snap install MAAS, you end up with two NTP clients. systemd-timesyncd and chrony (which also act as a server).
This could potentially lead to problems with time synchronization. If MAAS (chrony) is configured with a local time server that is out of sync with ntp.ubuntu.com, you could experience dueling NTP clients. At the very least, you will see time sync requests heading to ntp.ubuntu.com despite MAAS being configured to use different NTP servers.
It seems to me that MAAS should be disabling the existing NTP client when installing a new one but I'm not sure how it would go about doing that. I suppose this would require apparmor rules to allow the snap to communicate with systemctl. Or maybe we just need to call this out in the documentation.
As a work-around, I've added the following to my deployment guide:
sudo systemctl disable systemd-timesyncd
sudo systemctl stop systemd-timesyncd
I've experience this on MAAS 3.2.6 but I expect this is on ALL MAAS versions that use chrony.
Changed in maas: | |
status: | New → Confirmed |
tags: | added: bug-council |
Changed in maas-doc: | |
assignee: | nobody → Bill Wear (billwear) |
Changed in maas-doc: | |
milestone: | none → 3.4.0 |
Changed in maas: | |
assignee: | nobody → Bill Wear (billwear) |
Changed in maas: | |
milestone: | 3.4.0 → 3.4.x |
Changed in maas: | |
milestone: | 3.4.x → 3.4.0-rc1 |
Changed in maas: | |
status: | Fix Committed → Fix Released |
MAAS snap is confined not classic so it doesn't have ability to adjust the system(host) clock out of the box if I'm not mistaken.
$ snap list maas g.19812b4da 23947 3.2/stable canonical✓ -
Name Version Rev Tracking Publisher Notes
maas 3.2.6-12016-
Then, the snap is connected to "time-control" slot. And at least the doc says "the system date and time to be changed (...) via systemd-timedated". /snapcraft. io/docs/ time-control- interface
https:/
$ snap connections maas observe :hardware-observe - module- observe maas:kernel- module- observe :kernel- module- observe - control :network-control - observe :network-observe - control maas:snap- refresh- control :snap-refresh- control -
Interface Plug Slot Notes
avahi-observe maas:avahi-observe :avahi-observe -
content - maas:maas-logs -
content[maas-cli] maas:maas-cli maas-cli:maas-cli -
content maas:test-db-socket - -
hardware-observe maas:hardware-
home maas:home :home -
kernel-
mount-observe maas:mount-observe :mount-observe -
network maas:network :network -
network-bind maas:network-bind :network-bind -
network-control maas:network-
network-observe maas:network-
snap-refresh-
system-observe maas:system-observe :system-observe -
time-control maas:time-control :time-control -