システムに関する情報を収集するには、Facter ユーティリティーを使用します。これらの情報は Puppet マスターに送信されたあと、各ノードに適用されるべき構成の変更を指定するカタログをコンパイルするために Puppet のリソースプロバイダによって使用されます。
カタログではまた、各リソースのあるべき状態を指定することもできます。これらの定義に基づいて、各システムは必要に応じて独自の構成を適用できます。カタログがシステムに適用されたあと、エージェントはレポートを生成し、そのレポートを Puppet マスターに送信します。このレポートには、ターゲットノード上で現在どのリソースが管理されているかに関する情報のほか、望ましい状態を実現するためにそのノードに加えられたすべての変更が含まれています。Puppet の動作のしくみを参照してください。
特定のノードで使用可能なすべてのファクトを一覧表示するには、次のコマンドを入力します。
# facter -p architecture => i86pc facterversion => 2.1.0 hardwareisa => i386 hardwaremodel => i86pc hostname => myhost id => root interfaces => lo0,net0 ipaddress => 10.0.0.15 ipaddress6 => :: ipaddress_lo0 => 127.0.0.1 ipaddress_net0 => 10.0.0.5 ipaddress_net1 => 10.0.1.5 ... uptime => 0:22 hours uptime_days => 0 uptime_hours => 0 uptime_seconds => 1320 virtual => virtualbox
または、特定のノード (たとえば、hostname) の個々のファクトを次のように表示できます。
# facter hostname myhost
システムに関するファクトの収集は、特定のシステム上で適用できる構成のタイプを決定するために役立ちます。たとえば、特定のファイルにプラットフォーム固有の内容を設定するファイルリソースを宣言できます。
次の例では、osfamily ファクトを使用してファイル内でプラットフォームを宣言しています。
$file_contents = $osfamily ? {
'solaris' => "Hello Oracle Solaris",
'redhat' => "Hello RHEL",
}
file { '/custom-file.txt':
ensure => 'present',
content => $file_contents,
}
前の例では、osfamily ファクトを使用して新しい $file_contents 変数が作成され、条件付きチェックが提供されました。そのあと、プラットフォームに応じて、このファイルに別の内容を割り当てます。
詳細は、https://docs.puppet.com/facter/ を参照してください。