我对木偶还很陌生,但是我正在用它编写一些部署。

我遇到了一个问题,我无法正确获得符号链接,因为由于某种原因,我发现现有系统文件夹和木偶 ${architecture} 变量之间不匹配。

我需要以下代码才能按如下方式工作:

在 Ubuntu 12.04 x86_64 上我应该得到一个链接 /usr/lib/libz.so/usr/lib/x86_64-linux-gnu/libz.so 但是,我正在安装 /usr/lib/amd64-linux-gnu/libz.so 不存在创建一个损坏的链接。

file {"/usr/lib/libz.so":
    ensure => link,
    target => "/usr/lib/${architecture}-linux-gnu/libz.so",
}

Puppet 使用 Facter 来获取系统事实,并在命令行上运行 Factor,我得到以下信息:

root@somehost:/root# facter
architecture => amd64
facterversion => 1.6.5
hardwareisa => x86_64
(....)

跑步 lscpu 我得到:

root@tsomehost:/root# lscpu 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
(....)

我的问题是,Facter 从哪里获取事实?

有帮助吗?

解决方案

Facter 文档现在包含有关以下内容的文档 核心事实如何解决.

  • 建筑学 使用硬件模型,它调用 uname -m 然后在 Debian 上进行转换 x86_64amd64
  • 硬件是 来电 uname -p

$hardwaremodel 可能是您想要的,但是我认为如果您使用带有 32 位用户区的 64 位内核,它将返回 x86_64,这可能不适合您的用例。

其他提示

您的 Puppet 和 Facter 版本是什么?

也许您的 Facter 版本低于 1.6.5,因此存在以下错误: http://projects.puppetlabs.com/issues/11511

如果可以的话尝试升级。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top