質問

私はまだ人形にとって非常に新しいですが、私はそれを使って展開を書いています。

私は私が既存のシステムフォルダと人形$ {アーキテクチャ}変数の間に不一致を取得していた理由から、シンボリックリンクを正しく得ることができなかった問題に出かけました。

次のように機能するには、次のコードが必要です。

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はファクタを使用してシステムの事実を取得し、コマンドラインでファクタを実行しています。

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
(....)
.

私の質問は、Facaleはどこからの事実を取得しますか?

役に立ちましたか?

解決

Facterのマニュアルには、のDocsが含まれています。

  • アーキテクチャ HardWareModelを使用します。これはuname -mを呼び出してからDebian変換を呼び出します。x86_64
  • へのamd64
  • HARDINSISA 呼び出しuname -p

$hardwaremodelはあなたがここに欲しいものかもしれませんが、32ビットのユーザーランドを持つ64ビットカーネルを使用した場合、x86_64を返すと思います。これはおそらくあなたのユースケースには正しくありません。

他のヒント

人形とファクタのあなたのバージョンは何ですか?

多分<1.6.5ファクタバージョンがあるため、このバグがあります。 http://プロジェクト。puppetlabs.com/issues/11511

アップグレードを試してみてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top