Puppet 创建了一个损坏的符号链接

Puppet creates a broken symlink

例如,我有一个指向 etc/foo/folder12/some/file.txt 的符号链接 /etc/foo/folder11/some/link.txt。 在木偶中我有以下

ensure_resource('file', "/etc/bar/link.txt", {
  owner  => $someUser,
  mode   => '0444',
  source => `/etc/foo/folder11/some/link.txt`,
})

在 puppet 运行 之后它创建了一个损坏的符号链接 /etc/bar/link.txt 指向 ../../folder12/some/file.txt.
为什么它会创建如此奇怪的符号链接?我如何强制人偶创建 /etc/foo/link.txt 符号链接,它应该指向 /etc/foo/folder11/some/link.txt 指向的同一个文件?

请注意,我不使用 ensure => link,因为有时 /etc/foo/folder11/some/link.txt 可能是一个常规文件,在这种情况下 /etc/bar/link.txt 应该是该文件的副本。

事实证明问题出在 /etc/foo/folder11/some/link.txt 中,这是一个相对符号链接。我把它改成了绝对的,现在它工作正常。