第5章 プロビジョニング時間を削減するための iPXE の設定
以下の制限で PXE を使用できない場合には、Satellite を使用し、BIOS モードの iPXE をチェーンブートして、HTTP プロトコルで起動するように PXELinux を設定することができます。
- 管理対象外の DHCP サーバーのあるネットワーク
- ネットワーク上でブラックリストに登録されているか、ファイアウォールによって制限されている PXE サービス
- 低帯域幅ネットワークなどが原因で、信頼性の低い TFTP UDP ベースのプロトコル
iPXE サポートの詳細については、Supported architectures for provisioning の記事を参照してください。
iPXE の概要
iPXE は、オープンソースのネットワークブートファームウェアです。HTTP サーバーからの起動など、追加機能で強化された完全な PXE 実装を提供します。詳細は、ipxe.org を参照してください。
Red Hat Satellite で iPXE を使用する方法は 3 つあります。
- iPXE をプライマリーファームウェアとして使用するハイパーバイザーで仮想マシンをブートする方法
- TFTP を介して PXELinux を使用し、iPXE を直接ベアメタルホストにチェーンロードする方法
- UNDI を介して PXELinux を使用し、HTTP でカーネルとベアメタルホストの初期 RAM ディスクを移動する方法
セキュリティー情報
Red Hat Enterprise Linux の iPXE バイナリーは、セキュリティー機能を使用せずに構築されます。このため、HTTPS は使用できず、HTTP だけが使用できます。
Red Hat Enterprise Linux の iPXE のセキュリティー関連機能はすべて、サポート対象ではありません。詳細情報は、Red Hat Enterprise Linux HTTPS support in iPXE を参照してください。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
- 使用する Red Hat Satellite にホストが存在する。
- プロビジョニングインターフェイスの MAC アドレスが、ホスト設定と一致する。
- ホストのプロビジョニングインターフェイスには、有効な DHCP 予約がある。
- NIC は PXE ブートが可能である。詳細は、supported hardware on ipxe.org のページで、iPXE ベースのブートディスクと機能することが想定されているハードウェアドライブの一覧を参照してください。
- NIC は iPXE と互換性がある。
iPXE 環境を準備するには、すべての Capsule でこの手順を実行する必要があります。
手順
tftp サービスおよび httpboot サービスを有効にします。
# satellite-installer --foreman-proxy-httpboot true --foreman-proxy-tftp true
ipxe-bootimgs
RPM パッケージをインストールしてください。# yum install ipxe-bootimgs
Linux カーネルヘッダーを含む iPXE ファームウェアを TFTP ディレクトリーにコピーします。
# cp /usr/share/ipxe/ipxe.lkrn /var/lib/tftpboot/
UNDI iPXE ファームウェアを TFTP ディレクトリーにコピーします。
# cp /usr/share/ipxe/undionly.kpxe /var/lib/tftpboot/undionly-ipxe.0
SELinux ファイルコンテキストを修正します。
# restorecon -RvF /var/lib/tftpboot/
必要に応じて、Foreman ディスカバリーを設定します。詳細は、7章Discovery サービスの設定 を参照してください。
- Satellite Web UI で、管理 > 設定 に移動して、プロビジョニング タブをクリックします。
- Default PXE global template entry の行を特定して、Value の列で値を discovery に変更します。
5.1. 仮想マシンの起動
仮想化ハイパーバイザーの一部は、PXE ブートのプライマリーファームウェアとして iPXE を使用します。このため、TFTP および PXELinux なしで仮想マシンを起動できます。
仮想マシンワークフローのチェーンブート
仮想化ハイパーバイザーを使用することで、 TFTP および PXELinux の必要性がなくなります。仮想化ハイパーバイザーのワークフローは、以下の通りです。
- 仮想マシンが起動します。
- iPXE が DHCP を使用してネットワークの認証情報を取得します。
- iPXE が DHCP を使用して HTTP アドレスを取得します。
- iPXE は、Capsule から iPXE ブートストラップテンプレートをロードします
- iPXE は、Foreman から URL パラメーターとして MAC を使用して iPXE テンプレートをロードします
- iPXE が、インストーラーのカーネルおよび初期 RAM ディスクをロードします。
使用するハイパーバイザーが iPXE をサポートしていることを確認します。以下の仮想化ハイパーバイザーは、iPXE をサポートします。
- libvirt
- Red Hat Virtualization
- RHEV
iPXE を使うための Satellite Server の設定
デフォルトのテンプレートを使用して、ホストの iPXE ブーティングを設定できます。テンプレートのデフォルトの値を変更する場合は、テンプレートをクローンし、そのクローンを編集します。
手順
-
Satellite Web UI で、ホスト > プロビジョニングテンプレート に移動し、
Kickstart default iPXE
を入力後、検索 をクリックします。 - オプション: テンプレートを変更する場合は、クローン をクリックして独自の名前を入力し、送信 をクリックします。
- 使用するテンプレートの名前をクリックします。
- テンプレートをクローンした場合、変更が必要な時は テンプレート タブで実施できます。
- Association タブをクリックし、ホストが使用するオペレーティングシステムを選択します。
- Locations タブをクリックして、ホストがある場所を追加します。
- Organizations タブをクリックして、ホストが属する組織を追加します。
- 送信 をクリックして変更を保存します。
- ホスト > オペレーティングシステム に移動し、ホストのオペレーティングシステムを選択します。
- テンプレート タブをクリックします。
- iPXE テンプレート リストから、使用するテンプレートを選択します。
- 送信 をクリックして変更を保存します。
- ホスト > すべてのホスト に移動します。
- ホスト のページで、使用するホストを選択します。
- オペレーティングシステム タブを選択します。
- PXE Loader を iPXE Embedded または None に設定します。
- テンプレート タブを選択します。
- iPXE テンプレート リストから、レビュー を選択し、Kickstart default iPXE テンプレートが正しいテンプレートであることを確認します。
dhcpd.conf
ファイルを次のように設定します。if exists user-class and option user-class = "iPXE" { filename "http://capsule.example.com:8000/unattended/iPXE?bootstrap=1"; } # elseif existing statements if non-iPXE environment should be preserved
分離したネットワークを使用する場合には、Satellite Server の URL ではなく、TCP ポートが
8000
の Capsule Server URL を使用します。注記--foreman-proxy-http-port installer
オプションを使用してポートを変更した場合は、カスタムポートを使用します。アップグレード後は必ず、/etc/dhcp/dhcpd.conf
ファイルを更新してください。