ネットワーク・サーバーの設定

ネットワーク・インストール用のサーバーの準備は、次の一般的なタスクからなります。

NFSの構成方法

既存のNFSサーバーがある場合は、このサービスを使用して、ISOの展開後のコンテンツ、およびKickstart構成ファイルをホストできます。エクスポートした共有ディレクトリが、PXEブート・ホスト用に指定したIP範囲からアクセス可能であることを確認します。

使用可能なNFSサーバーがない場合は、次の手順を使用して、ネットワーク・インストールが可能になるようにそのサービスをインストールし構成します。

ノート:

次に示すNFS構成手順は、ネットワーク・インストールに関連する内容のみに限定されています。

  1. nfs-utilsパッケージをインストールします。
    sudo dnf install nfs-utils -y
  2. ファイアウォール・サービスを実行している場合は、ファイアウォール・ルールにnfsサービスを追加します。
    sudo firewall-cmd --add-service nfs --permanent

    代替ファイアウォール・サービスを使用している場合、または外部ファイアウォール・デバイスがある場合は、必ず、PXEブート・ホストにこのシステム上のNFSサービスへのアクセス権を付与するための、ルールを構成してください。

  3. ISOイメージを格納するディレクトリを作成します。次に例を示します:
    sudo mkdir /var/nfs-exports/ISOs
  4. NFS共有ディレクトリをエクスポートします。
    sudo exportfs -i -o ro [subnet]:/var/nfs-exports/ISOs

    この構文は、そのNFS共有への読取り専用権限でのワールド・アクセスを許可します。subnet (192.0.2.0/24:/var/nsf-exports/ISOsなど)を追加すると、アクセスがそのサブネットのクライアントのみに限定されます。

    または、/etc/exportsファイル内に、その共有ディレクトリをエクスポートするためのエントリを追加することもできます。次に例を示します。

    /var/nsf-exports/ISOs   192.0.2.0/24(ro)

    その後、次のように、/etc/exportsをリロードしてそのエントリを実装します。

    sudo exportfs -ra

    詳細は、exportfs(8)exports(5)およびshowmount(8)の各マニュアル・ページを参照してください。

  5. nfs-serverサービスを有効にして起動します:
    sudo systemctl enable --now nfs-server
  6. 次のように、ダウンロードしたISOイメージをNFS共有ディレクトリのサブディレクトリに展開します。
    sudo cp -a T path-to-download-image /var/nfs-exports/ISOs/ol8
  7. Kickstartを使用する場合は、NFS共有ディレクトリのサブディレクトリにKickstartファイルを配置します(/var/nfs-exports/ISOs/ksfilesなど)。
  8. (オプション)別のシステムから、そのNFS共有ディレクトリにアクセスできることを確認します。次に例を示します。
    sudo mount -t nfs NFS-server-ip:/var/nfs-exports/ISOs /mnt

dnsmasqの構成方法

dnsmasqルーター通知サーバーは、DNSフォワーダ、DHCPサーバーおよびTFTPサーバーとして機能するように設計されています。dnsmasqは、ほとんどのネットワーク・インストール・シナリオに適用できるため、DHCPサービスとTFTPサービスを別々に構成する必要がない、便利な手段です。

dnsmasqの詳細は、dnsmasq(8)マニュアル・ページ、/usr/share/doc/dnsmasq-versionファイルおよびhttps://thekelleys.org.uk/dnsmasq/doc.htmlを参照してください。

  1. dnsmasqパッケージをインストールします。
    sudo dnf install dnsmasq -y
  2. /etc/dnsmasq.confファイル内のパラメータを構成します。
    • 少なくとも、enable-TFTPエントリと、tftp-rootの定義済TFTPサーバー・ディレクトリが必要です。次の例で太字で示しているエントリを参照してください。

      interface=em1
      dhcp-range=10.0.0.101,10.0.0.200,6h
      dhcp-host=80:00:27:c6:a1:16,10.0.0.253,svr1,infinite
      dhcp-boot=pxelinux/pxelinux.0
      dhcp-match=set:efi-x86_64,option:client-arch,8
      dhcp-boot=tag:efi-x86_64,shim.efi
      enable-tftp
      tftp-root=/var/lib/tftpboot

      ノート:

      システムでSELinuxがenforcingモードで有効になっているときに、/var/lib/tftpboot以外のTFTPサーバー・ディレクトリを構成した場合は、次のコマンドを実行できるようにpolicycoreutils-pythonおよびpolicycoreutilsパッケージもインストールします:

      sudo /usr/sbin/semanage fcontext -a -t tftpdir_t "/var/tftpboot(/.*)?"
      sudo /sbin/restorecon -R -v /var/tftpboot

      これらのコマンドにより、TFTPサーバー・ディレクトリ階層のデフォルトのファイル・タイプをtftpdir_tとして定義し、そのファイル・タイプをそのディレクトリ階層全体に適用します。

      次のリストでは、/etc/dnsmasq.confファイル内のその他のパラメータについて説明します。

      interface

      着信クライアント・リクエストを監視するインタフェースを指定します。

      dhcp-range

      使用可能なIPアドレスの範囲を特定します。上の例では、6hという設定により、アドレスのリースが6時間に指定されています。

      リース時間無制限で静的アドレスを構成するには、プールではなく、静的ネットワーク・アドレスを指定し、staticおよびinfiniteキーワードを使用します。次に例を示します。

      dhcp-range=10.0.0.253,static,infinite
      dhcp-host

      クライアント・システム用に予約されているIPアドレスを指定します。このシステムはその名前とMACアドレスで特定します。

      dhcp-boot

      クライアントのブート・ローダー・ファイルの場所を指定します。BIOSベースのクライアントの場合は、pxelinux/pxelinux.0のようにします。UEFIベースのクライアントの場合は、ブート・ローダーを指定する前に設定にtag:efi-x86_64キーワードを含めます。次に例を示します。

      dhcp-boot=tag:efi-x86_64,shim.efi

      BIOSベースのクライアント用とUEFIベースのクライアント用に別個のエントリを作成する必要があります。

    • 次のように、このファイル内のtftp-no-blocksize行をコメント解除します。
      # This option stops dnsmasq from negotiating a larger blocksize for TFTP
      # transfers. It will slow things down, but may rescue some broken TFTP
      # clients.
      tftp-no-blocksize
  3. (オプション) dnsmasqをキャッシュ専用ネーム・サーバーとして使用するには、次の手順を実行します。
    1. /etc/resolv.confファイル内で、他のネーム・サーバー・エントリより前に、127.0.0.1のネーム・サーバー・エントリを構成します。次に例を示します。

      nameserver 127.0.0.1
      nameserver 10.0.0.8
      nameserver 10.0.0.4

      dnsmasqサーバーは、127.0.0.1エントリを無視して、DNS問合せをリスト内の他のネーム・サーバーに転送します。

    2. DNSリクエストを受け入れるようにファイアウォールを構成します。

      sudo firewall-cmd --add-service=dns --permanent
  4. dnsmasqサービスを有効にして起動します。
    sudo systemctl enable --now dnsmasq