2.5. HTTP を使用してネットワークからインストールするための準備

ローカルネットワーク上のサーバーの管理者は、ネットワーク上の他のシステムの HTTP ブートとネットワークインストールを有効にするように HTTP サーバーを設定できます。

2.5.1. ネットワークインストールの概要

ネットワークインストールでは、インストールサーバーへのアクセスがあるシステムに、Red Hat Enterprise Linux をインストールできます。ネットワークインストールには、少なくとも 2 つのシステムが必要です。

サーバー
DHCP サーバー、HTTP、HTTPS、FTP または NFS サーバー、および PXE ブートの場合は TFTP サーバーを実行するシステム。各サーバーを実行する物理システムが同じである必要はありませんが、このセクションの手順では、1 つのシステムですべてのサーバーを実行していることが想定されています。
クライアント
Red Hat Enterprise Linux をインストールしているシステム。インストールが開始すると、クライアントは DHCP サーバーに問い合わせ、HTTP サーバーまたは TFTP サーバーからブートファイルを受け取り、HTTP サーバー、HTTPS サーバー、FTP サーバー、または NFS サーバーからインストールイメージをダウンロードします。その他のインストール方法とは異なり、クライアントはインストールを開始するのに物理的な起動メディアを必要としません。
注記

ネットワークからクライアントを起動するには、ファームウェアまたはクライアントのクイックブートメニューでネットワークブートを有効にします。ハードウェアによっては、ネットワークから起動するオプションが無効になっていたり、利用できない場合があります。

HTTP または PXE を使用してネットワークから Red Hat Enterprise Linux をインストールする準備を行う手順は次のとおりです。

手順

  1. インストール ISO イメージまたはインストールツリーを NFS サーバー、HTTPS サーバー、HTTP サーバー、または FTP サーバーにエクスポートします。
  2. HTTP または TFTP サーバーと DHCP サーバーを設定し、サーバー上で HTTP または TFTP サービスを起動します。
  3. クライアントを起動して、インストールを開始します。

次のネットワークブートプロトコルを選択できます。

HTTP
Red Hat は、クライアント UEFI がサポートしている場合は HTTP ブートを使用することを推奨します。通常、HTTP ブートは信頼性に優れています。
PXE (TFTP)
PXE ブートはクライアントシステムによって広くサポートされています。ただし、このプロトコルを介したブートファイルの送信は低速で、タイムアウトにより失敗する可能性があります。

2.5.2. HTTP ブートおよび PXE ブート用の DHCPv4 サーバーの設定

サーバー上で DHCP バージョン 4 (DHCPv4) サービスを有効にし、ネットワークブート機能を提供できるようにします。

前提条件

  • IPv4 プロトコルを介したネットワークインストールを準備している。

    IPv6 の場合は、HTTP ブートおよび PXE ブート用の DHCPv6 サーバーの設定 を参照してください。

  • サーバーのネットワークアドレスがわかっている。

    以下の手順の例では、サーバーには次の設定のネットワークカードが搭載されています。

    IPv4 アドレス
    192.168.124.2/24
    IPv4 ゲートウェイ
    192.168.124.1

手順

  1. DHCP サーバーをインストールします。

    dnf install dhcp-server
  2. DHCPv4 サーバーをセットアップします。/etc/dhcp/dhcpd.conf ファイルに次の設定を入力します。アドレスはネットワークカードと一致するように置き換えます。

    option architecture-type code 93 = unsigned integer 16;
    
    subnet 192.168.124.0 netmask 255.255.255.0 {
      option routers 192.168.124.1;
      option domain-name-servers 192.168.124.1;
      range 192.168.124.100 192.168.124.200;
      class "pxeclients" {
        match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
        next-server 192.168.124.2;
              if option architecture-type = 00:07 {
                filename "redhat/EFI/BOOT/BOOTX64.EFI";
              }
              else {
                filename "pxelinux/pxelinux.0";
              }
      }
      class "httpclients" {
        match if substring (option vendor-class-identifier, 0, 10) = "HTTPClient";
        option vendor-class-identifier "HTTPClient";
        filename "http://192.168.124.2/redhat/EFI/BOOT/BOOTX64.EFI";
      }
    }
  3. DHCPv4 サービスを起動します。

    # systemctl enable --now dhcpd

2.5.3. HTTP ブートおよび PXE ブート用の DHCPv6 サーバーの設定

サーバー上で DHCP バージョン 6 (DHCPv4) サービスを有効にし、ネットワークブート機能を提供できるようにします。

前提条件

  • IPv6 プロトコルを介したネットワークインストールを準備している。

    IPv4 の場合は、HTTP ブートおよび PXE ブート用の DHCPv4 サーバーの設定 を参照してください。

  • サーバーのネットワークアドレスがわかっている。

    以下の手順の例では、サーバーには次の設定のネットワークカードが搭載されています。

    IPv6 アドレス
    fd33:eb1b:9b36::2/64
    IPv6 ゲートウェイ
    fd33:eb1b:9b36::1

手順

  1. DHCP サーバーをインストールします。

    dnf install dhcp-server
  2. DHCPv6 サーバーをセットアップします。/etc/dhcp/dhcpd6.conf ファイルに次の設定を入力します。アドレスはネットワークカードと一致するように置き換えます。

    option dhcp6.bootfile-url code 59 = string;
    option dhcp6.vendor-class code 16 = {integer 32, integer 16, string};
    
    subnet6 fd33:eb1b:9b36::/64 {
            range6 fd33:eb1b:9b36::64 fd33:eb1b:9b36::c8;
    
            class "PXEClient" {
                    match substring (option dhcp6.vendor-class, 6, 9);
            }
    
            subclass "PXEClient" "PXEClient" {
                    option dhcp6.bootfile-url "tftp://[fd33:eb1b:9b36::2]/redhat/EFI/BOOT/BOOTX64.EFI";
            }
    
            class "HTTPClient" {
                    match substring (option dhcp6.vendor-class, 6, 10);
            }
    
            subclass "HTTPClient" "HTTPClient" {
                    option dhcp6.bootfile-url "http://[fd33:eb1b:9b36::2]/redhat/EFI/BOOT/BOOTX64.EFI";
                    option dhcp6.vendor-class 0 10 "HTTPClient";
            }
    }
  3. DHCPv6 サービスを起動します。

    # systemctl enable --now dhcpd6
  4. DHCPv6 パケットがファイアウォールの RP フィルターによって破棄されている場合は、そのログを確認してください。ログに rpfilter_DROP エントリーが含まれている場合は、/etc/firewalld/firewalld.conf ファイルで次の設定を使用してフィルターを無効にします。

    IPv6_rpfilter=no

2.5.4. HTTP ブート用の HTTP サーバーの設定

サーバーがネットワーク上で HTTP ブートリソースを提供できるように、サーバーに httpd サービスをインストールして有効にする必要があります。

前提条件

  • サーバーのネットワークアドレスがわかっている。

    次の例では、サーバーには IPv4 アドレス 192.168.124.2 のネットワークカードが搭載されています。

手順

  1. HTTP サーバーをインストールします。

    # dnf install httpd
  2. /var/www/html/redhat/ ディレクトリーを作成します。

    # mkdir -p /var/www/html/redhat/
  3. RHEL DVD ISO ファイルをダウンロードします。All Red Hat Enterprise Linux Downloads を参照してください。
  4. ISO ファイルのマウントポイントを作成します。

    # mkdir -p /var/www/html/redhat/iso/
  5. ISO ファイルをマウントします。

    # mount -o loop,ro -t iso9660 path-to-RHEL-DVD.iso /var/www/html/redhat/iso
  6. マウントされた ISO ファイルからブートローダー、カーネル、initramfs を HTML ディレクトリーにコピーします。

    # cp -r /var/www/html/redhat/iso/images /var/www/html/redhat/
    # cp -r /var/www/html/redhat/iso/EFI /var/www/html/redhat/
  7. ブートローダー設定を編集可能にします。

    # chmod 644 /var/www/html/redhat/EFI/BOOT/grub.cfg
  8. /var/www/html/redhat/EFI/BOOT/grub.cfg ファイルを編集し、次のように内容を置き換えます。

    set default="1"
    
    function load_video {
      insmod efi_gop
      insmod efi_uga
      insmod video_bochs
      insmod video_cirrus
      insmod all_video
    }
    
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_gpt
    insmod ext2
    
    set timeout=60
    # END /etc/grub.d/00_header #
    
    search --no-floppy --set=root -l 'RHEL-9-3-0-BaseOS-x86_64'
    
    # BEGIN /etc/grub.d/10_linux #
    menuentry 'Install Red Hat Enterprise Linux 9.3' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi ../../images/pxeboot/vmlinuz inst.repo=http://192.168.124.2/redhat/iso quiet
        initrdefi ../../images/pxeboot/initrd.img
    }
    menuentry 'Test this media & install Red Hat Enterprise Linux 9.3' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi ../../images/pxeboot/vmlinuz inst.repo=http://192.168.124.2/redhat/iso quiet
        initrdefi ../../images/pxeboot/initrd.img
    }
    submenu 'Troubleshooting -->' {
        menuentry 'Install Red Hat Enterprise Linux 9.3 in text mode' --class fedora --class gnu-linux --class gnu --class os {
       	 linuxefi ../../images/pxeboot/vmlinuz inst.repo=http://192.168.124.2/redhat/iso inst.text quiet
       	 initrdefi ../../images/pxeboot/initrd.img
        }
        menuentry 'Rescue a Red Hat Enterprise Linux system' --class fedora --class gnu-linux --class gnu --class os {
       	 linuxefi ../../images/pxeboot/vmlinuz inst.repo=http://192.168.124.2/redhat/iso inst.rescue quiet
       	 initrdefi ../../images/pxeboot/initrd.img
        }
    }

    このファイル内で、次の文字列を置き換えます。

    RHEL-9-3-0-BaseOS-x86_64 および Red Hat Enterprise Linux 9.3
    ダウンロードした RHEL のバージョンと一致するようにバージョン番号を編集します。
    192.168.124.2
    サーバーの IP アドレスに置き換えます。
  9. EFI ブートファイルを実行可能にします。

    # chmod 755 /var/www/html/redhat/EFI/BOOT/BOOTX64.EFI
  10. ファイアウォールでポートを開いて、HTTP (80)、DHCP (67、68)、および DHCPv6 (546、547) トラフィックを許可します。

    # firewall-cmd --zone public \
                   --add-port={80/tcp,67/udp,68/udp,546/udp,547/udp}
    注記

    このコマンドは、次にサーバーを再起動するまで、一時的にアクセスを有効にします。永続的アクセスを有効にするには、コマンドに --permanent オプションを追加します。

  11. ファイアウォールルールを再読み込みします。

    # firewall-cmd --reload
  12. HTTP サーバーを起動します。

    # systemctl enable --now httpd
  13. html ディレクトリーとそのコンテンツを読み取り可能および実行可能にします。

    # chmod -cR u=rwX,g=rX,o=rX /var/www/html
  14. html ディレクトリーの SELinux コンテキストを復元します。

    # restorecon -FvvR /var/www/html