9.4. ホスト情報の保存および維持


Red Hat Satellite 6 は、アプリケーションの組み合わせを使用してマネージドホストに関する情報を収集し、それらのホストが望ましい状態で維持されるようにします。これらのアプリケーションには、以下が含まれます。
  • Foreman: 物理システムと仮想システムのプロビジョニングおよびライフサイクル管理用です。Foreman は、キックスタートや Puppet モジュールなどの各種の方法を使用して、これらのシステムを自動的に設定します。
  • Puppet: ホストを設定するためのクライアント/サーバーアーキテクチャーです。Puppet マスター (サーバー) および Puppet エージェント (クライアント) で設定されます。
  • Facter: Puppet のシステムインベントリーツール。Facter は、ハードウェアの詳細、ネットワーク設定、OS の種類およびバージョン、IP アドレス、MAC アドレス、SSH キーなど、ホストに関する基本的な情報 (ファクト) を収集します。その後、これらのファクトは Puppet マニフェストで変数として利用できます。
Puppet、Facter およびファクトの使用については、以下で詳述します。

9.4.1. Puppet アーキテクチャー

Puppet は通常、エージェント/マスター(クライアント/サーバーとしても知られる)アーキテクチャーで実行されます。ここで、Puppet サーバーは重要な設定情報を管理し、マネージドホスト(クライアント)は独自の設定カタログのみを要求します。Puppet は 2 つの手順でホストを設定します。
  • カタログのコンパイル
  • カタログの該当ホストへの適用
エージェント/マスターの設定では、Puppet クライアントは Facter によって収集されるファクトやその他の情報を Puppet マスターに送信します。Puppet マスターは、これらのファクトに基づいてカタログをコンパイルし、このカタログをクライアントに送信します。クライアントは行ったすべての変更のレポートを送信するか、または the- noop パラメーターを使用した場合は Puppet マスターに結果を送信し、その結果を Foreman に送信します。このカタログは、1 つの特定ホストの必要な状態を記述します。リソース間の依存関係を含む、そのホストで管理するリソースをリスト表示します。エージェントはカタログをホストに適用します。
マスターとエージェント間の通信は、デフォルトで 30 分ごとに実行されます。runinterval パラメーターを使用して、/etc/puppet/puppet.conf ファイルに別の値を指定できます。puppet agent apply を実行して、通信を手動で開始することもできます。

9.4.2. Facter およびファクトの使用

Facter は Puppet のシステムインベントリーツールで、多数の組み込みファクトが含まれています。Facter は、ローカルホストのコマンドラインで実行して、ファクト名と値を表示できます。カスタムファクトで Facter を拡張し、これを使用してホストのサイト固有の詳細を Puppet マニフェストに公開することができます。Facter が提供するファクトを使用して、Puppet で条件式に通知することもできます。
Puppet はリソースに基づいてシステム状態を決定します。たとえば、httpd サービスは常に実行している必要があり、Puppet はそれを処理する方法を知っていることを Puppet に伝えることができます。異なるオペレーティングシステムを管理する場合は、osfamily ファクトを使用して条件式を作成し、どのサービスを監視するか、どのパッケージをインストールするかを Puppet に伝えることができます。operatingsystemmajrelease パラメーターおよび versioncmp パラメーターを使用して、同じオペレーティングシステムの異なるバージョンに基づいて条件式を作成できます。条件式の使用例は、例9.1「条件式とファクトの使用」 を参照してください。

例9.1 条件式とファクトの使用

if $:: osfamily == 'RedHat' {
  if $::operatingsystemmajrelease == '6' {
   $ntp_service_name = 'ntpd'
   }

  elseif versioncmp($::operatingsystemmajrelease, '7') >= 0 {
   $ntp_service_name = 'chrony'
   }
 }
Copy to Clipboard
注記
この例では、式 "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 (詳細情報)

9.4.2.1. 特定ホストのファクトの表示

Puppet は、Facter の組み込まれたコアファクトや、Puppet モジュールに存在するカスタムまたは外部のファクトにアクセスできます。コマンドライン(facter -p)および Web UI (Monitor Fact)から利用可能なファクトを表示できます。ファクトのリストを参照するか、Search ボックスを使用して特定のファクトを検索できます。たとえば、"facts."と入力すると、利用可能なファクトのリストが表示されます。
注記
利用可能なファクトのリストは非常に長くなります。UI は一度に 20 ファクトのみを表示します。詳細の入力時のファクトの段階的フィルターのリストです。たとえば、"facts.e" と入力して、"e" で始まるすべてのファクトを表示します。

手順9.19 特定ホストのファクトを表示するには、以下を実行します。

  1. メインメニューで Hosts All Hosts をクリックし、検査するホストの名前をクリックします。
  2. Details ペインで Facts をクリックし、ホストに関する既知のファクトをすべて表示します。
注記
  • このページにリストされているファクトについて、Chart をクリックし、このファクト名のすべてのマネージドホストにおけるディストリビューションチャートを表示します。
  • 検索をブックマークすると、今後簡単に使用できるようになります。検索を絞り込みたら、Search ボタンの横にあるドロップダウン矢印をクリックし、Bookmark this search をクリックします。ブックマークされた検索は Search ドロップダウンリストに表示され、メインメニューの Administer Bookmarks の下にも表示されます。

9.4.2.2. ファクトに基づくホストの検索

Facter 情報を使用して、特定のホストを検索できます。これは、facts. architecture = x86_64 などの特定のファクト 基準に一致するすべてのホストを検索できることを意味します。

手順9.20 ファクトに基づいてホストを検索するには、以下を実行します。

  1. メインメニューで、Monitor Facts をクリックして Fact Values ページを表示します。
  2. Search フィールドで、フィルタリングするファクトの名前を入力します。特定の名前、名前と値のペアなどで検索できます。
  3. Search をクリックして、一致するホストのリストを取得します。

9.4.2.3. カスタムファクトのレポート

管理ホストからのカスタム情報の取得は、Red Hat Satellite 6 で完全にサポートされています。このセクションでは、Puppet Forge から取得した Puppet モジュールを使用していますが、原則は Puppet モジュールの他のソースに対して同等に適用されます。
標準の Facter インターフェイスを介して報告されるファクトの数は拡張できます。たとえば、モジュールの変数として使用するファクトを収集します。インストールされたパッケージを説明するファクトが利用可能な場合は、このデータを検索し、情報に基づいて設定管理の決定を行うことができるようになります。
ホストにインストールされたパッケージについてのレポートを取得するプロセスは以下のようになります。
  • マニフェスト pkginventory は Puppet Forge から取得され、ベースシステムに保存されます。
  • Puppet モジュールはコンテンツビューに追加され、これはシステムにプロモートされてからそのシステムにデプロイされます。
  • システムのファクトは、パッケージ名を使用してクエリーされます。この例では、hostname という名前のホストと、認証情報のユーザー および パスワード を持つ Satellite ユーザーを使用している場合、以下の API クエリーは検索文字列 "bash" に一致するファクトを返します。
    curl -u username:password -X GET http://localhost/api/hosts/:hostname/facts?search=bash
    {"hostname":{"pkg_bash":"4.2.45-5.el7_0.4"}}
    
    Copy to Clipboard
    検索は、パッケージバージョンを返します。その後、外部データベースの設定に使用していました。

pkginventory Puppet モジュールの追加

pkginventory Puppet モジュールを Red Hat Satellite Server アプリケーションに追加するには、https://forge.puppetlabs.com/ody/pkginventory から Satellite Server アプリケーションがインストールされているベースシステムにモジュールをダウンロードし、以下の手順に従います。
Puppet モジュールは通常、Puppet Modules という名前のカスタムリポジトリーに保存されます。以下の手順は、その名前のカスタムリポジトリーを作成していることを前提としています。Puppet モジュールのカスタムリポジトリーを作成していない場合は、『Red Hat Satellite クイックスタートガイドの カスタム 製品の作成 と リポジトリーの有効化 を参照してください』。

手順9.21 Puppet モジュールをリポジトリーにアップロードするには、以下を実行します。

  1. ベースシステムに Puppet モジュールをダウンロードします。ダウンロードしたモジュールの拡張子は .tar.gz になります。
  2. Content Products をクリックしてから、Puppet モジュールリポジトリーに関連付けられた Name フィールドで製品名をクリックします。たとえば、Custom Products です。
  3. Repositories タブで、変更する Puppet Modules リポジトリーを選択します。たとえば、Puppet Modules です。
  4. Upload Puppet Module セクションで Browse をクリックし、ダウンロードしたモジュールに移動します。
  5. アップロード をクリックします。
Puppet モジュールをクライアントに配布するには、モジュールはコンテンツビューに適用して公開する必要があります。以下の手順に従って、コンテンツビューにモジュールを追加します。

手順9.22 モジュールをコンテンツビューに追加するには、以下を実行します。

  1. ContentViews をクリックして、Name メニューからコンテンツビューを選択します。
  2. Puppet モジュール タブで 新規モジュールの 追加 をクリックします。インストールされたモジュールのリストが表示されます。
  3. Actions コラムから Select a Version をクリックし、追加するモジュールを選択します。利用可能なバージョンの表が表示されます。
  4. 追加するモジュールのバージョンの横にある バージョンの 選択 をクリックします。
  5. 新規バージョンの 公開 をクリック して、新しいコンテンツビューを作成します。
  6. 必要に応じて説明を追加し、Save をクリックします。


[3] https://docs.puppetlabs.com/puppet/3.7/reference/lang_facts_and_builtin_vars.html#special-variables-added-by-puppet
[4] https://docs.puppetlabs.com/facter/latest/core_facts.html
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat