通过 puppet 在 Ubuntu 12.04 中设置了错误的时区

通过 puppet 在 Ubuntu 12.04 中设置了错误的时区

我正在使用 Ubuntu 10.04,并在服务器启动时使用 puppet 将时区从 UTC 更改为 PST。我正在使用的 Puppet 时区配方如下: 木偶时间食谱

在 Ubuntu 10.04 上一切正常,现在我们转向 Ubuntu 12.04,这个 Puppet 配方不起作用。我发现的原因是,在 10.04 中 /etc/localtime 是一个内容为 PST8PDT 的文件,而在 12.04 中它是一个符号链接(因为 puppet 配方),它链接到 SystemV/,但 SystemV 目录的路径不正确。当我在 /etc 中执行 ls -l 时

lrwxrwxrwx 1 root root 18 Oct 18 18:38 localtime -> ../SystemV/PST8PDT

但是 /etc 上没有 SystemV 文件夹。我将 puppet 配方改为:

class timezone::pacific inherits timezone {
file { "/etc/localtime":
    require => Package["tzdata"],
 #   source => "file:///usr/share/zoneinfo/US/Pacific",
    source => "file:///usr/share/zoneinfo/SystemV/PST8PDT",

并且它工作正常,本地时间不再是链接。有人能帮我理解为什么我继承的 puppet 配方在 10.04 上运行良好,但在 12.04 上却无法运行,以及为什么将配方更改为新的 SystemV 目标可以修复此问题。

答案1

这有点奇怪。在我的 12.04 VM 上,和都是/usr/share/zoneinfo/SystemV/PST8PDT/usr/share/zoneinfo/US/Pacific符号链接/usr/share/zoneinfo/America/Los_Angeles。无论你使用哪种路径,都应该得到 ,/etc/localtime它是 的链接../America/Los_Angeles

你考虑过做一个吗links => follow?这样,puppet 就会解析符号链接并复制内容,而不是复制符号链接。

相关内容