2012-10-02 37 views
0

我对puppet仍然很陌生,但是我正在用它编写一些部署。木偶和Facter默认系统事实

我遇到了一个问题,我无法获得符号链接,因为某些原因,我在现有系统文件夹和puppet $ {architecture}变量之间出现不匹配。

我需要将下面的代码如下工作:

在Ubuntu 12.04 x86_64的我得到前人的精力从/usr/lib/libz.so链接到/usr/lib/x86_64-linux-gnu/libz.so但是,我越来越insted的到/usr/lib/amd64-linux-gnu/libz.so不存在产生比断开链接。

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

木偶使用Facter得到系统的事实,和我的命令行中运行facter我得到如下:

[email protected]:/root# facter 
architecture => amd64 
facterversion => 1.6.5 
hardwareisa => x86_64 
(....) 

运行lscpu我得到:

[email protected]:/root# lscpu 
Architecture:   x86_64 
CPU op-mode(s):  32-bit, 64-bit 
(....) 

我的问题是, Facter从哪里得到它的事实?

回答

2

Facter文档现在包含有关how core facts are resolved的文档。

  • architecture使用hardwaremodel,这就要求uname -m,然后在Debian转换x86_64amd64
  • hardwareisa电话uname -p

$hardwaremodel可能是你想要的这里,但是我想如果你将返回x86_64的使用带有32位用户空间的64位内核,这可能对您的用例不正确。

0

什么是您的Puppet和Facter版本?

也许你有一个< 1.6.5版本Facter,因此有这样的错误:如果你能http://projects.puppetlabs.com/issues/11511

尝试升级。

+0

感谢您的回答。但它似乎不是原因 root @ myhost:〜#facter --version 1.6.5 – andrefsp

+0

仔细阅读错误报告,1.6.5也可能会受到影响。似乎可以解决问题的补丁已经集成在Facter 1.6.9中。如果你能升级到这个版本,我会很高兴知道结果! – mbarthelemy

+0

我认为andrefsp不会因为某些原因而受到影响。在Debian衍生产品中有$ am架构解析为amd64,而bug报告称这个_doesn't_不适合某些人。 –