第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 つあります。

  1. iPXE をプライマリーファームウェアとして使用するハイパーバイザーで仮想マシンをブートする方法
  2. TFTP を介して PXELinux を使用し、iPXE を直接ベアメタルホストにチェーンロードする方法
  3. 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 でこの手順を実行する必要があります。

手順

  1. tftp サービスおよび httpboot サービスを有効にします。

    # satellite-installer --foreman-proxy-httpboot true --foreman-proxy-tftp true
  2. 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
  3. SELinux ファイルコンテキストを修正します。

    # restorecon -RvF /var/lib/tftpboot/
  4. 必要に応じて、Foreman ディスカバリーを設定します。詳細は、7章Discovery サービスの設定 を参照してください。

    • Satellite Web UI で、管理 > 設定 に移動して、プロビジョニング タブをクリックします。
    • Default PXE global template entry の行を特定して、Value の列で値を discovery に変更します。

5.1. 仮想マシンの起動

仮想化ハイパーバイザーの一部は、PXE ブートのプライマリーファームウェアとして iPXE を使用します。このため、TFTP および PXELinux なしで仮想マシンを起動できます。

仮想マシンワークフローのチェーンブート

仮想化ハイパーバイザーを使用することで、 TFTP および PXELinux の必要性がなくなります。仮想化ハイパーバイザーのワークフローは、以下の通りです。

  1. 仮想マシンが起動します。
  2. iPXE が DHCP を使用してネットワークの認証情報を取得します。
  3. iPXE が DHCP を使用して HTTP アドレスを取得します。
  4. iPXE は、Capsule から iPXE ブートストラップテンプレートをロードします
  5. iPXE は、Foreman から URL パラメーターとして MAC を使用して iPXE テンプレートをロードします
  6. iPXE が、インストーラーのカーネルおよび初期 RAM ディスクをロードします。

使用するハイパーバイザーが iPXE をサポートしていることを確認します。以下の仮想化ハイパーバイザーは、iPXE をサポートします。

  • libvirt
  • Red Hat Virtualization
  • RHEV

iPXE を使うための Satellite Server の設定

デフォルトのテンプレートを使用して、ホストの iPXE ブーティングを設定できます。テンプレートのデフォルトの値を変更する場合は、テンプレートをクローンし、そのクローンを編集します。

手順

  1. Satellite Web UI で、ホスト > プロビジョニングテンプレート に移動し、Kickstart default iPXE を入力後、検索 をクリックします。
  2. オプション: テンプレートを変更する場合は、クローン をクリックして独自の名前を入力し、送信 をクリックします。
  3. 使用するテンプレートの名前をクリックします。
  4. テンプレートをクローンした場合、変更が必要な時は テンプレート タブで実施できます。
  5. Association タブをクリックし、ホストが使用するオペレーティングシステムを選択します。
  6. Locations タブをクリックして、ホストがある場所を追加します。
  7. Organizations タブをクリックして、ホストが属する組織を追加します。
  8. 送信 をクリックして変更を保存します。
  9. ホスト > オペレーティングシステム に移動し、ホストのオペレーティングシステムを選択します。
  10. テンプレート タブをクリックします。
  11. iPXE テンプレート リストから、使用するテンプレートを選択します。
  12. 送信 をクリックして変更を保存します。
  13. ホスト > すべてのホスト に移動します。
  14. ホスト のページで、使用するホストを選択します。
  15. オペレーティングシステム タブを選択します。
  16. PXE LoaderiPXE Embedded または None に設定します。
  17. テンプレート タブを選択します。
  18. iPXE テンプレート リストから、レビュー を選択し、Kickstart default iPXE テンプレートが正しいテンプレートであることを確認します。
  19. 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 ファイルを更新してください。