4.2. Facter およびファクトの使用
Facter は Puppet のシステムインベントリーツールで、多くの組み込みファクトが含まれています。Facter は、ローカルホストのコマンドラインで実行して、ファクト名と値を表示できます。カスタムファクトで Facter を拡張し、これを使用してホストのサイト固有の詳細を Puppet マニフェストに公開することができます。Facter が提供するファクトを使用して、Puppet で条件式に通知することもできます。
Puppetは、リソースに基づいてシステム状態を判別します。たとえば、httpd
サービスは常に実行している必要があり、Puppetはそれを処理する方法を知っていることをPuppetに伝えることができます。異なるオペレーティングシステムを管理する場合は、osfamily
ファクトを使用して条件式を作成し、どのサービスを監視するか、どのパッケージをインストールするかを示すことができます。operatingsystemmajrelease
パラメーターおよび versioncmp
パラメーターを使用して、同じオペレーティングシステムの異なるバージョンに基づいて条件式を作成できます。以下の例は、Facts を使用した条件式の使用を示しています。
条件式とファクトの使用
if $::osfamily == 'RedHat' { if $::operatingsystemmajrelease == '6' { $ntp_service_name = 'ntpd' } elseif versioncmp($::operatingsystemmajrelease, '7') >= 0 { $ntp_service_name = 'chrony' } }
この例では、式 versioncmp($::operatingsystemmajrelease, '7') >= 0
を使用して、Red Hat Enterprise Linux のバージョン 7 以降をテストします。このテストを実行するために、式 $::operatingsystemmajrelease >= '7'
を使用しないでください。この関数およびその他のPuppet関数の詳細は、https://docs.puppetlabs.com/references/latest/function.html#versioncmpを参照してください。
また、Puppet は、ファクトが多く動作する他の特別な変数も設定します。詳細は、Special Variables Added by PuppetおよびCore Factsを参照してください。
4.2.1. 特定ホストのファクトの表示
Puppet は Facter の組み込みコアファクトや、Puppet モジュールにあるカスタムまたは外部ファクトにアクセスできます。コマンドライン(facter -p
)および Web UI(Monitor > Facts)から利用可能なファクトを表示できます。ファクトの一覧を参照するか、Search ボックスを使用して特定のファクトを検索できます。たとえば、"facts." と入力して、利用可能なファクトの一覧を表示します。
利用可能なファクトの一覧は非常に長くなります。UI は一度に 20 ファクトのみを表示します。詳細の入力時のファクトの段階的フィルターの一覧です。たとえば、"facts.e" と入力して、"e" で始まるすべてのファクトを表示します。
参加者のホストのファクトの表示
- メインメニューで Hosts > All Hosts をクリックしてから、検査するホストの名前をクリックします。
- Details ペインで Facts をクリックし、ホストに関する既知のファクトをすべて表示します。
- このページに一覧表示されているファクトについて、Chart をクリックし、このファクト名のすべての管理対象ホストにおけるディストリビューションチャートを表示します。
- 検索をブックマークすると、今後簡単に使用できるようになります。検索を改良したら、Searchボタンの横にあるドロップダウン矢印をクリックし、Bookmark this searchをクリックします。ブックマークされた検索は Search ドロップダウンリストに表示され、メインメニューの Administer > Bookmarks の下にも表示されます。