0

私はまだ人形に慣れていませんが、それを使っていくつかの展開を書いています。

何らかの理由で、既存のシステム フォルダーと 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 を使用してシステム ファクトを取得し、コマンド ラインで factorer を実行すると、次の結果が得られます。

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 がその事実をどこから入手したかということです。

4

2 に答える 2

2

Facter のドキュメントに、コア ファクトの解決方法に関するドキュメントが含まれるようになりました。

  • アーキテクチャはハードウェアモデルを使用し、これが呼び出しuname -m、Debian では次のように変換x86_64されますamd64
  • ハードウェアの呼び出しuname -p

$hardwaremodelここで必要なものかもしれませんが、32 ビットのユーザーランドで 64 ビットのカーネルを使用した場合、x86_64 が返されると思います。これはおそらくユースケースには適していません。

于 2012-10-02T19:18:48.010 に答える
0

Puppet と Facter のバージョンは何ですか?

1.6.5 未満の Facter バージョンを使用しているため、次のバグが発生している可能性があります: http://projects.puppetlabs.com/issues/11511

可能であればアップグレードしてみてください。

于 2012-10-02T15:32:02.547 に答える