linux - Puppet 和 Facter 默认系统事实

标签 linux ubuntu x86-64 ubuntu-12.04 puppet

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

我遇到了一个问题,我无法获得正确的符号链接(symbolic link),因为出于某种原因,我发现现有系统文件夹与 puppet ${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 获取系统事实,并在我的命令行上运行 facter 我得到以下信息:

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 文档现在包括关于 how core facts are resolved 的文档.

  • architecture使用硬件模型,调用 uname -m 然后在 Debian 上将 x86_64 转换为 amd64
  • hardwareisa调用 uname -p

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

关于linux - Puppet 和 Facter 默认系统事实,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12693359/

相关文章:

linux - 如何将多个参数通过管道传递给 unix 命令?

opencv - 在 ubuntu 上包含非自由的 openCV 2.4.10

linux - JACK midi 事件在 64 位机器上丢失

从 x86_64 程序集调用 memset

C++ Chrono 32/64 位 + 发布/调试

c++ - 使用 C/C++ 代码识别平台 linux 或 windows

php - 最适合 PHP 编程的 Linux 发行版是什么?

linux - Bash脚本移动具有特定名称的前N个文件

python - vim:符号查找错误:/lib/x86_64-linux-gnu/libpython3.8.so.1.0: undefined symbol :XML_SetHashSalt

bash - 在 bash 脚本中使用空格拆分句子