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 をインストールする準備を行う手順は次のとおりです。
手順
- インストール ISO イメージまたはインストールツリーを NFS サーバー、HTTPS サーバー、HTTP サーバー、または FTP サーバーにエクスポートします。
- HTTP または TFTP サーバーと DHCP サーバーを設定し、サーバー上で HTTP または TFTP サービスを起動します。
- クライアントを起動して、インストールを開始します。
次のネットワークブートプロトコルを選択できます。
- 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
手順
DHCP サーバーをインストールします。
dnf install dhcp-server
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"; } }
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
手順
DHCP サーバーをインストールします。
dnf install dhcp-server
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"; } }
DHCPv6 サービスを起動します。
# systemctl enable --now dhcpd6
DHCPv6 パケットがファイアウォールの RP フィルターによって破棄されている場合は、そのログを確認してください。ログに
rpfilter_DROP
エントリーが含まれている場合は、/etc/firewalld/firewalld.conf
ファイルで次の設定を使用してフィルターを無効にします。IPv6_rpfilter=no
2.5.4. HTTP ブート用の HTTP サーバーの設定
サーバーがネットワーク上で HTTP ブートリソースを提供できるように、サーバーに httpd
サービスをインストールして有効にする必要があります。
前提条件
サーバーのネットワークアドレスがわかっている。
次の例では、サーバーには IPv4 アドレス
192.168.124.2
のネットワークカードが搭載されています。
手順
HTTP サーバーをインストールします。
# dnf install httpd
/var/www/html/redhat/
ディレクトリーを作成します。# mkdir -p /var/www/html/redhat/
- RHEL DVD ISO ファイルをダウンロードします。All Red Hat Enterprise Linux Downloads を参照してください。
ISO ファイルのマウントポイントを作成します。
# mkdir -p /var/www/html/redhat/iso/
ISO ファイルをマウントします。
# mount -o loop,ro -t iso9660 path-to-RHEL-DVD.iso /var/www/html/redhat/iso
マウントされた 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/
ブートローダー設定を編集可能にします。
# chmod 644 /var/www/html/redhat/EFI/BOOT/grub.cfg
/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 アドレスに置き換えます。
EFI ブートファイルを実行可能にします。
# chmod 755 /var/www/html/redhat/EFI/BOOT/BOOTX64.EFI
ファイアウォールでポートを開いて、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
オプションを追加します。ファイアウォールルールを再読み込みします。
# firewall-cmd --reload
HTTP サーバーを起動します。
# systemctl enable --now httpd
html
ディレクトリーとそのコンテンツを読み取り可能および実行可能にします。# chmod -cR u=rwX,g=rX,o=rX /var/www/html
html
ディレクトリーの SELinux コンテキストを復元します。# restorecon -FvvR /var/www/html