2012-10-02 23 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_不適合某些人。 –