Menu Close
第5章 プロビジョニング時間を削減するための iPXE の設定
以下の制限で PXE を使用できない場合には、Satellite を使用し、iPXE をチェーンブートして、HTTP プロトコルで起動するように PXELinux を設定することができます。
- 管理対象外の DHCPサーバーのあるネットワーク
- ネットワーク上でブラックリストに登録されているか、ファイアウォールによって制限されている PXE サービス
- 低帯域幅ネットワークなどが原因で、信頼性の低い TFTP UDPベースのプロトコル
iPXE ワークフローの概要
iPXE を使用したプロビジョニングプロセスは、次のワークフローを実行します。
- 検出されたホストは PXE 経由で起動します。
-
ホストは
ipxe.efi
またはundionly.0
のいずれかを読み込みます。 - ホストは DHCP を使用してネットワーク上で再度初期化します。
- DHCP サーバーは iPXE ファームウェアを検出して、ブートストラップのフラグが付いた iPXE テンプレート URL を返します。
- ホストは iPXE テンプレートを要求します。Satellite はこのホストを認識しません。このホストは、ブートストラップのフラグが設定されているため、Satellite に同梱されている iPXE 中間スクリプトテンプレートを取得します。
- ホストは中間 iPXE スクリプトを実行し、検出イメージをダウンロードします。
- ホストは検出オペレーティングシステムを起動し、検出要求を実行します。
- ホストのプロビジョニングと再起動がスケジュールされます。
- ホストは PXE 経由で起動します。
- 以前のワークフローが繰り返されますが、Satellite はホストのリモート IP アドレスを認識し、中間テンプレートの代わりに通常の iPXE テンプレートを取得します。
- ホストは iPXE 設定を読み取り、インストーラーを起動します。
- この時点から、インストールは通常の PXE インストールワークフローを実行します。
ワークフローで検出プロセスを使用する点に注意してください (任意)。「iPXE の Discovery サービスの設定」を参照してください。
Satellite では、ホストが TFTP 経由で ipxe.efi
または undionly.kpxe
をダウンロードするように設定できます。ファイルがダウンロードされると、すべての通信はそのまま HTTP を使用して続行されます。Satellite は iPXE プロビジョニングスクリプトを使用して、オペレーティングシステムのインストーラーまたは、起動順の次のエントリーを読み込みます。
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 ブートが可能である。詳細は http://ipxe.org/appnote/hardware_drivers を参照してください。
- NIC は、iPXE と互換性がある。
5.1. iPXE の Discovery サービスの設定
Capsule Server で Foreman の検出サービスをインストールします。
# yum install foreman-discovery-image
Capsule Server で httpboot サービスを有効にします。
# satellite-installer --foreman-proxy-httpboot true
- Satellite Web UI で、管理 > 設定 に移動して、プロビジョニング タブをクリックします。
- デフォルトの PXE グローバルテンプレートエントリー の行を特定して、値 のコラムで値を discovery に変更します。
5.2. 仮想マシンのチェーンブート
仮想化ハイパーバイザーの一部は、PXE ブートのプライマリーファームウェアとして iPXE を使用します。このため、TFTP および PXELinux なしでチェーンブートが可能です。
仮想マシンワークフローのチェーンブート
仮想化ハイパーバイザーを使用することで、 TFTP および PXELinux の必要性がなくなります。仮想化ハイパーバイザーのワークフローは、以下の通りです。
- 仮想マシンが起動します。
- iPXE が DHCP を使用してネットワークの認証情報を取得します。
- iPXE が DHCP を使用して HTTP アドレスを取得します。
- iPXE が テンプレート Capsule から iPXE テンプレートをチェーンロードします。
- iPXE が、インストーラーのカーネルおよび初期 RAM ディスクをロードします。
iPXE で検出サービスを使用する場合は、「iPXE の Discovery サービスの設定」 を参照してください。
使用するハイパーバイザーが iPXE をサポートしていることを確認します。以下の仮想化ハイパーバイザーは、iPXE をサポートします。
- libvirt
- oVirt
- RHEV
iPXE を使うための Satellite Server の設定
デフォルトのテンプレートを使用して、ホストの iPXE ブーティングを設定できます。テンプレートのデフォルトの値を変更する場合は、テンプレートをクローンし、そのクローンを編集します。
手順
Satellite Server の TFTP ディレクトリーにブートファイルをコピーします。
EFI システムの場合には、
ipxe.efi
ファイルをコピーします。# cp /usr/share/ipxe/ipxe.efi /var/lib/tftpboot/
BIOS システムの場合には、
undionly.kpxe
ファイルをコピーします。# cp /usr/share/ipxe/undionly.kpxe /var/lib/tftpboot/undionly.0
-
Satellite Web UI で、ホスト > プロビジョニングテンプレート に移動し、
Kickstart default iPXE
を入力後、検索 をクリックします。 - オプション: テンプレートを変更する場合は、クローン をクリックして独自の名前を入力し、送信 をクリックします。
- 使用するテンプレートの名前をクリックします。
- テンプレートをクローンした場合、変更が必要な時は テンプレート タブで実施できます。
- 関連付け タブをクリックし、ホストが使用するオペレーティングシステムを選択します。
- ロケーション タブをクリックして、ホストの所在を追加します。
- 組織 タブをクリックして、ホストが属する組織を追加します。
- 送信 をクリックして変更を保存します。
- ホスト > オペレーティングシステム に移動し、ホストのオペレーティングシステムを選択します。
- テンプレート タブをクリックします。
- iPXE テンプレート リストから、使用するテンプレートを選択します。
- 送信 をクリックして変更を保存します。
- ホスト > すべてのホスト に移動します。
- ホスト のページで、使用するホストを選択します。
- テンプレート タブを選択します。
- iPXE テンプレート リストから、レビュー を選択し、Kickstart default iPXE テンプレートが正しいテンプレートであることを確認します。
Satellite の iPXE ブートストラップ機能を使用するには、
dhcpd.conf
ファイルを次のように設定します。if exists user-class and option user-class = "iPXE" { filename "http://satellite.example.com/unattended/iPXE?bootstrap=1"; } elsif option architecture = 00:06 { filename "ipxe.efi"; } elsif option architecture = 00:07 { filename "ipxe.efi"; } elsif option architecture = 00:09 { filename "ipxe.efi"; } else { filename "undionly.0"; }
分離したネットワークを使用する場合には、Satellite Server の URL ではなく、TCP ポートが
8000
の Capsule Server URL を使用します。注記Capsule HTTP エンドポイントが無効の場合には、
http://satellite.example.com/unattended/iPXE?bootstrap=1
を使用します (installer option --foreman-proxy-http false)。有効の場合には、テンプレートの Capsule プラグインにはデフォルト値8000
が指定されており、これは--foreman-proxy-http-port installer
オプションを使用して変更できます。このような場合には、http://capsule.example.com:8000
を使用します。アップグレード後は必ず、/etc/dhcp/dhcpd.conf
ファイルを更新してください。
5.3. iPXE を直接使用するための Satellite Server のチェーンブート
この手順を使用して、iPXE がネットワーク通信または UNDI インターフェースに内蔵のドライバーを使用するように設定します。Satellite Server と Capsule が iPXE を使用するように設定する方法は異なります。
この手順を使用できるのは、ベアメタルホストのみです。
直接または UNDI ワークフローと共に iPXE をチェーンブート
- ホストの電源をオンにします。
- PXE ドライバーは、DHCP を使用してネットワークの認証情報を取得します。
-
PXE ドライバーは、TFTP を使用して PXELinux ファームウェア
pxelinux.0
を取得します。 - PXELinux は、TFTP サーバーの設定ファイルを検索します。
-
PXELinux は、iPXE
ipxe.lkrn
またはundionly-ipxe.0
をチェーンロードします。 - iPXE は、再び DHCP を使用してネットワークの認証情報を取得します。
- iPXE は、DHCP を使用して HTTP アドレスを取得します。
- iPXE が テンプレート Capsule から iPXE テンプレートをチェーンロードします。
- iPXE が、インストーラーのカーネルおよび初期 RAM ディスクをロードします。
iPXE で検出サービスを使用する場合は、「iPXE の Discovery サービスの設定」 を参照してください。
iPXE を使うための Red Hat Satellite Server の設定
デフォルトのテンプレートを使用して、ホストの iPXE ブーティングを設定できます。テンプレートのデフォルトの値を変更する場合は、テンプレートをクローンし、そのクローンを編集します。
手順
-
Satellite Web UI で、ホスト > プロビジョニングテンプレート に移動し、
PXELinux chain iPXE
または BIOS システムにはPXELinux chain iPXE UNDI
と入力し、検索 をクリックします。 - オプション: テンプレートを変更する場合は、クローン をクリックして独自の名前を入力し、送信 をクリックします。
- 使用するテンプレートの名前をクリックします。
- テンプレートをクローンした場合、変更が必要な時は テンプレート タブで実施できます。
- 関連付け タブをクリックし、ホストが使用するオペレーティングシステムを選択します。
- ロケーション タブをクリックして、ホストの所在を追加します。
- 組織 タブをクリックして、ホストが属する組織を追加します。
- 送信 をクリックして変更を保存します。
-
プロビジョニングテンプレート ページの検索フィールドに
Kickstart default iPXE
を入力し、検索 をクリックします。 - オプション: テンプレートを変更する場合は、クローン をクリックして独自の名前を入力し、送信 をクリックします。
- 使用するテンプレートの名前をクリックします。
- テンプレートをクローンした場合、変更が必要な時は テンプレート タブで実施できます。
- 関連付け タブをクリックし、テンプレートをホストが使用するオペレーティングシステムに関連付けします。
- ロケーション タブをクリックして、ホストの所在を追加します。
- 組織 タブをクリックして、ホストが属する組織を追加します。
- 送信 をクリックして変更を保存します。
- ホスト > オペレーティングシステム に移動し、ホストのオペレーティングシステムを選択します。
- テンプレート タブをクリックします。
- PXELinux テンプレート リストから、使用するテンプレートを選択します。
- iPXE テンプレート リストから、使用するテンプレートを選択します。
- 送信 をクリックして変更を保存します。
- ホスト > すべてのホスト に移動し、使用するホストを選択します。
- テンプレート タブを選択し、PXELinux テンプレート リストから レビュー を選択して、そのテンプレートが正しいテンプレートであることを確認します。
- iPXE テンプレート リストから レビュー を選択して、テンプレートが正しいことを確認します。PXELinux のエントリーがない場合、または新しいテンプレートが見つからない場合は、ホスト > すべてのホスト に移動し、ホスト上で 編集 をクリックします。オペレーティングシステム タブをクリックし、続いてプロビジョニングテンプレート 解決 ボタンをクリックして、テンプレートのリストをリフレッシュします。
Satellite の iPXE ブートストラップ機能を使用するには、
dhcpd.conf
ファイルを次のように設定します。if exists user-class and option user-class = "iPXE" { filename "http://satellite.example.com/unattended/iPXE?bootstrap=1"; } elsif option architecture = 00:06 { filename "ipxe.efi"; } elsif option architecture = 00:07 { filename "ipxe.efi"; } elsif option architecture = 00:09 { filename "ipxe.efi"; } else { filename "undionly.0"; }
分離したネットワークを使用する場合には、Satellite Server の URL ではなく、TCP ポートが
8000
の Capsule Server URL を使用します。注記http://satellite.example.com/unattended/iPXE
では、Red Hat Satellite Capsulehttp://capsule.example.com:8000/unattended/iPXE
を使用することもできます。アップグレードごとに/etc/dhcp/dhcpd.conf
ファイルを更新する必要があります。
5.4. iPXE を使用するための Red Hat Satellite Capsule のチェーンブート
この手順は、すべての Capsule で実行する必要があります。
手順
ipxe-bootimgs
RPM パッケージをインストールしてください。# yum install ipxe-bootimgs
iPXE ファームウェアを TFTP サーバーの root ディレクトリーにコピーします。TFTP は
chroot
環境で実行するので、シンボリックリンクは使用しません。EFI システムの場合には、
ipxe.efi
ファイルをコピーします。# cp /usr/share/ipxe/ipxe.lkrn /var/lib/tftpboot/
BIOS システムの場合には、
undionly.kpxe
ファイルをコピーします。# cp /usr/share/ipxe/undionly.kpxe /var/lib/tftpboot/undionly-ipxe.0
ファイルのコンテンツを修正します。
# restorecon -RvF /var/lib/tftpboot/