在虚拟环境(VMware ESXi)上部署 Maas 和 Openstack 的 Canonical Distribution 后,我发现 Maas 服务器具有正确的时钟时间,而用于 Openstack 的节点具有不同的时间。在 VMware 上,NTP 服务器设置为 ntp.ubuntu.com。
从 juju status 中我看到容器 ntpmaster/0 及其 ntp.conf 配置如下:
ubuntu@juju-eba318-3-lxd-1:~$ more /etc/ntp.conf
# juju generated ntp configuration
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1
# SERVERS
# LOCAL time source
server 127.127.1.0
fudge 127.127.1.0 stratum 5
# PEERS
为什么时钟不同?
答案1
我遇到了同样的问题,但没有找到任何“优雅”或“内置”的解决方案。所以我只是做了一个变通方法:
在文件中/etc/maas/preseeds/curtin_userdata
,紧接着以下几行:
late_commands:
maas: [wget, '--no-proxy', {{node_disable_pxe_url|escape.json}}, '--post-data', {{node_disable_pxe_data|escape.json}}, '-O', '/dev/null']
添加如下内容:
late_commands:
maas: [wget, '--no-proxy', {{node_disable_pxe_url|escape.json}}, '--post-data', {{node_disable_pxe_data|escape.json}}, '-O', '/dev/null']
setup_timezone_01: ["curtin", "in-target", "--", "sh", "-c", "rm /etc/localtime && ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime"]
...并将其调整Europe/Berlin
为“欧洲/罗马”或您的控制器正在运行的任何地方。
这样,maas 将在安装过程中将时区设置(硬编码)到目标机器中。
再次重申,这可能不是最好的解决方案,但它对我来说还是有用的。
答案2
您检查过时区设置吗?
例如
$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 27 Jun 28 12:37 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC
$ cat /etc/timezone
Etc/UTC
如果配置的时区不同,您将获得不同的时间。