第11章 Satellite でのベアメタルホストの検出
Red Hat Satellite 6.2 には、Discovery プラグインがすでにインストールされている機能が同梱されています。Discovery プラグインを使用すると、プロビジョニングネットワーク上の不明なホストのベアメタルの自動検出が可能になります。これらの新規ホストは、シリアル ID、ネットワークインターフェイス、メモリー、およびディスク情報などの Facter が収集するクライアントアップロードシステムのファクトに基づいて Satellite Server および Puppet エージェントに登録されます。登録後、ホストは Satellite Web UI の Discovered Hosts ページに表示されます。その後、手動で(Web UI、CLI、または API を使用)、または事前定義された検出ルールを使用して自動的にプロビジョニングを開始できます。
Discovery プラグインは、プロビジョニングネットワークと Satellite Server インスタンスの両方に直接アクセスできる Satellite Capsule Server 経由で通信します。Satellite Server から直接ホストを検出することは可能ですが、Red Hat では以下のスキームを使用することを推奨します。
Satellite Server (Satellite Server Discovery plug-in) <--> Satellite Capsule (Satellite Capsule Discovery plug-in) <--> Discovered Host (Satellite Discovery image)
Satellite Server (Satellite Server Discovery plug-in) <--> Satellite Capsule (Satellite Capsule Discovery plug-in) <--> Discovered Host (Satellite Discovery image)
Satellite Discovery プラグインは 3 つの異なるコンポーネントで設定されています。
- Satellite Server Discovery プラグイン
- これは Satellite Server で実行され、検出されたホストと連携するための API および UI 機能を提供します。tfm-rubygem-foreman_discovery パッケージには、このプラグインが含まれます。
- Satellite Capsule Server Discovery プラグイン
- これは、プロビジョニングネットワークで検出されたホストと Satellite Server 間の通信プロキシーです。rubygem-smart_proxy_discovery パッケージには、このプラグインが含まれます。
- Satellite Discovery イメージ
- これは、初期のハードウェア情報を取得し、Satellite Server にチェックインするためにホスト上で PXE で起動した Red Hat Enterprise Linux ベースの最小オペレーティングシステムです。検出されたホストは、Anaconda で再起動されるまで Satellite Discovery イメージを実行し続け、プロビジョニングプロセスを開始します。foreman-discovery-image パッケージには、このイメージが含まれます。TFTP サービスを提供する Satellite Capsule Server にインストールしておく。
11.1. Satellite Discovery プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションでは、Satellite Discovery プラグインを設定する方法および Satellite Server で PXE 起動テンプレートを準備する方法について説明します。
11.1.1. Satellite Discovery イメージのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Satellite Discovery イメージを含むパッケージを、TFTP サービスを提供する Satellite Capsule Server (Satellite Server 自体ではない) にインストールします。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
yum install foreman-discovery-image
# yum install foreman-discovery-image
このパッケージには、Linux カーネルと、PXE ブートの検出されたホストに使用される起動可能な ISO ファイルとしての初期 RAM ディスクイメージが含まれます。以下のコマンドを実行して、パッケージの内容を調べます。これにより、以下のような出力が生成されます。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
rpm -ql foreman-discovery-image
$ rpm -ql foreman-discovery-image
/usr/share/foreman-discovery-image
/usr/share/foreman-discovery-image/fdi-image-rhel_7-2.1.0-20150212.1.iso
このパッケージをインストールすると、ISO ファイルからカーネルおよびイメージを TFTP ディレクトリーに抽出し、イメージおよびカーネルの最新バージョンへのシンボリックリンクを作成します。PXE ブートプロビジョニングテンプレートのシンボリックリンクを使用して、foreman-discovery-image パッケージがアップグレードされるたびにテンプレートのバージョンを変更する必要はありません。以下に例を示します。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
上記の出力の最後の 2 行には、PXE ブートプロビジョニングテンプレートで使用するシンボリックリンクが含まれます。詳細は、「PXE 起動の設定」 を参照してください。
注記
現時点では、Red Hat Enterprise Linux 6 の Satellite 6 インストールであっても、Red Hat Enterprise Linux 7 Discovery イメージのみが提供されます。foreman-discovery-image パッケージのアップグレード中に検出されたホストがある場合は、すぐに再起動してイメージの更新されたバージョンを読み込みます。これは、Satellite 6 Web UI、CLI、または API を介して実行できます。
11.1.2. PXE 起動の設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
不明なホストがプロビジョニングネットワークで起動する場合、Satellite Server は、ローカルハードドライブから起動する 1 つのオプションを含む PXELinux ブートメニューを提供します。以下の手順では、ハードウェア検出を有効にするためにこの動作を変更する方法を説明します。これには、PXE Linux global default テンプレートで複数の変数を変更する必要があります。これらの変数の説明を以下に示します。
- テンプレートの KERNEL および APPEND 行は、foreman-discovery-image パッケージのインストール時に作成されるシンボリックリンクを使用します( 「Satellite Discovery イメージのデプロイ」を参照)。URL は、
/var/lib/tftpboot/ディレクトリーに相対しています。APPENDパラメーターが 1 行で指定されていることを確認します。 proxy.type変数は、proxy(推奨)またはforemanに設定できます。変数がproxyに設定されている場合には、すべての通信は Satellite Capsule Server を経由します。変数がforemanに設定されると、通信は直接 Satellite Server に送信されます。本章の例では、proxy.typeがプロキシーに設定されていることを前提としています。proxy.url変数は、proxy.type設定に応じて、Satellite Capsule Server または Satellite Server の URL を指定します。HTTPおよびHTTPSスキームの両方がサポートされます。デフォルトのポートは、Satellite Capsule Server (proxy.type=proxy)にアクセスするための 9090、Satellite Server と直接通信する場合は 80 です(proxy.type=foreman)。IPAPPEND 2の設定により、プロビジョニングネットワークに接続されたインターフェイスが検出されます。このオプションが削除または変更されると、イメージは正常に起動しません。
手順11.1 PXE 起動を設定するには、以下を実行します。
- Satellite Web UI で、
に移動します。 - PXELinux global default テンプレートを編集します。次のメニューエントリーをテンプレートに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ONTIMEOUT変数を変更して、新しいメニューエントリーをデフォルトに設定します。ONTIMEOUT discovery
ONTIMEOUT discoveryCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Provisioning Templates ページの上部にある をクリックします。これにより、TFTP プロキシーが
pxelinux.cfg/defaultファイルを再書き込みするよう指示されます。デフォルトのテンプレートに変更が加えられるたびに、このステップを繰り返して、変更が TFTP Satellite Capsule Server にデプロイされるようにします。
上記の手順の代わりに、PXE ブートテンプレートから
proxy.url 変数を省略することもできます。この場合、Discovery イメージは DNS 設定ファイルで x-foreman.tcp という名前の SRV レコードを検索します。この場合は、proxy.url 変数は proxy に設定する必要があります。DNS サーバーも適切に設定されている必要があります。たとえば、以下の設定ステートメントは、HTTPS で使用する Capsule Server を指定します。
_x-foreman._tcp SRV 0 5 9090 capsule
_x-foreman._tcp SRV 0 5 9090 capsule
ここで は、Capsule は DNS 設定に含まれる Capsule Server の名前です。
注記
Satellite 6.2 では、ホストが検出可能な全サブネットに Capsule Server の URL を 1 つだけ指定できます。サブネットごとにテンプレートを使用できないので、すべてのネットワークで DNS エイリアス名を使用します。または SRV レコードを使用します。
重要
DHCP 設定からの DNS サーバーは、
BOOTIF 変数で指定されたインターフェイスについてのみ考慮されます。BOOTIF PXE テンプレートの IPAPPEND 変数で自動的に設定されます。これは、システムに複数の NIC がある場合、DNS はブート元のインターフェイスに対してのみ機能することを意味します。
11.1.3. グローバル Discovery 設定の確認 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Satellite Web UI で、Discovery プラグインに関連するグローバル設定を確認できます。 に移動し、検出 タブを開きます。注目すべき設定は次のとおりです。
discovery_organization,discovery_location- これらの変数は、検出されたホストを配置する場所を指定します。デフォルトでは、検出されたホストは、最初に作成した組織およびロケーションの下に自動的に配置されます。
discovery_fact- この変数は、検出されたホストの MAC アドレスを決定するために使用する受信ファクトを指定します。デフォルトでは、PXELinux BOOTIF カーネルコマンドラインオプションが使用されます。
discovery_auto- この変数は、指定されたルールに従って自動プロビジョニングを有効にします。デフォルトでは false に設定されます。Red Hat は、
discovery_autoを有効にする前に、手動でプロビジョニングして設定をテストすることを推奨します。詳細は、「検出されたホストのプロビジョニング」 を参照してください。 discovery_fact_column- この変数により、検出されたホストのリストの追加行に Facter がレポートするファクトを追加できます。