ウェブサイト検索

RHEL/CentOS 8 で PXE ネットワーク ブートを使用して複数の Linux ディストリビューションをインストールする


PXE サーバープリブート実行環境 は、PXE 対応ネットワーク インターフェイスを使用して複数の Linux オペレーティング システムを起動、実行、またはインストールするようにクライアント システムに指示する、標準化されたクライアント サーバー アーキテクチャです。ネットワークインフラストラクチャ上で。

要件

    • CentOS 8 最小サーバーのインストール
    • RHEL 8 最小サーバーのインストール
    • RHEL/CentOS 8 での静的 IP アドレスの構成

この記事では、CentOS 8 が提供するミラーリングされたローカル インストール リポジトリを使用して CentOS/RHEL 8PXE ネットワーク ブート サーバーをインストールして構成する方法を説明します。 および RHEL 8 ISO イメージ。

このPXE ネットワーク ブートセットアップでは、次のパッケージをシステムにインストールします。

  • DNSMASQPXE および をサポートする DNS および DHCP サービスを提供する軽量の DNS フォワーダーTFTPサーバー。
  • Syslinux – ネットワーク ブート用のブート ローダーを提供する Linux ブート ローダー。
  • TFTP サーバー – ネットワーク経由でダウンロードできる起動可能なイメージを作成する、シンプルなロックステップ ファイル転送プロトコルです。
  • VSFTPD サーバー – ローカルにマウントされたミラーリングされた DVD イメージをホストする安全なファイル転送プロトコル – これは、インストーラーが必要なパッケージをそこから取り出す公式の RHEL/CentOS 8 ミラー インストール リポジトリとして機能します。

ステップ 1: DNSMASQ サーバーのインストールと構成

1. ネットワーク インターフェイスの 1 つは、PXE サービスを提供するのと同じネットワーク IP 範囲の静的 IP アドレスで構成する必要があることに注意してください。

静的 IP アドレスを構成したら、システム ソフトウェア パッケージを更新し、DNSMASQ デーモンをインストールします。

dnf install dnsmasq

2. DNSMASQ をインストールすると、/etc/dnsmasq.conf ディレクトリにそのデフォルト設定ファイルが見つかります。これは一目瞭然ですが、さらに詳細です。説明が非常にコメントされているため、設定が困難です。

まず、後で確認する必要がある場合に備えて、必ずこのファイルのバックアップを作成してから、図に示すように、お気に入りのエディターを使用して新しい構成ファイルを作成します。

mv /etc/dnsmasq.conf  /etc/dnsmasq.conf.backup
nano /etc/dnsmasq.conf

3. ここで、次の設定をコピーして /etc/dnsmasq.conf ファイルに貼り付け、ネットワーク設定に従って設定パラメータを変更します。

interface=enp0s3,lo
#bind-interfaces
domain=tecmint
DHCP range-leases
dhcp-range= enp0s3,192.168.1.3,192.168.1.253,255.255.255.0,1h
PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.2
Gateway
dhcp-option=3,192.168.1.1
DNS
dhcp-option=6,92.168.1.1, 8.8.8.8
server=8.8.4.4
Broadcast Address
dhcp-option=28,10.0.0.255
NTP Server
dhcp-option=42,0.0.0.0

pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 8 from network server 192.168.1.2", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

変更する必要がある構成ステートメントは次のとおりです。

  • インターフェイス – サーバーのネットワーク インターフェイスはサービスをリッスンして提供する必要があります。
  • bind-interfaces – コメントを解除して、インターフェイスを特定のネットワーク カードにバインドします。
  • ドメイン – ドメイン名に置き換えます。
  • dhcp-range – ネットワーク IP 範囲に変更します。
  • dhcp-boot – ネットワーク インターフェイスの IP アドレスに置き換えます。
  • dhcp-option=3,192.168.1.1 – ネットワーク ゲートウェイに置き換えます。
  • dhcp-option=6,92.168.1.1 – DNS サーバー IP に置き換えます。
  • server=8.8.4.4 – DNS フォワーダーの IP アドレスを追加します。
  • dhcp-option=28,10.0.0.255 – 必要に応じて、ネットワーク ブロードキャスト IP アドレスに置き換えます。
  • dhcp-option=42,0.0.0.0 - ネットワーク タイム サーバーを追加します (0.0.0.0 アドレスは自己参照用です)。
  • pxe-prompt – デフォルトのままにします。
  • pxe=service – 32 ビット/64 ビット アーキテクチャには x86PC を使用し、文字列引用符の下にメニュー説明プロンプトを追加します。
  • enable-tftp – 組み込みの TFTP サーバーを有効にします。
  • tftp-root – ネットワーク ブート ファイルの場所 /var/lib/tftpboot を追加します。

構成ファイルに関するその他の高度なオプションについては、dnsmasq マニュアルを参照してください。

ステップ 2: SYSLINUX ブートローダーをインストールする

4. DNSMASQ のメイン構成が完了したら、次のコマンドを使用してSyslinx PXE ブートローダー パッケージをインストールします。

dnf install syslinux

5. Syslinx PXE ブートローダーは /usr/share/syslinux にインストールされています。示されているように ls コマンドを実行すると確認できます。

ls /usr/share/syslinux

ステップ 3: TFTP サーバーをインストールし、SYSLINUX ブートローダーを使用してコピーする

6. 次に、TFTP サーバーをインストールし、すべての Syslinux ブートローダーを /usr/share/syslinux/ から /var/lib にコピーします。 /tftpboot を示します。

dnf install tftp-server
cp -r /usr/share/syslinux/* /var/lib/tftpboot

ステップ 4: PXE サーバー構成ファイルのセットアップ

7. デフォルトでは、PXE サーバーは、pxelinux.cfg にある特定のファイルのセットから設定を読み取ります。このファイルは、上記の DNSMASQ 設定ファイルのtftp-root設定で説明されているディレクトリ。

まず、次のコマンドを実行して pxelinux.cfg ディレクトリを作成し、default ファイルを作成します。

mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default

8. 次に、PXE default 構成ファイルを開いて、正しい Linux ディストリビューション インストール オプションを使用して編集します。また、このファイルに設定されるパスは、/var/lib/tftpboot ディレクトリに対する相対パスである必要があることにも注意してください。

nano /var/lib/tftpboot/pxelinux.cfg/default

以下は、使用できる構成ファイルの例ですが、ネットワーク インストール ソース リポジトリと場所を適宜反映するように、インストール イメージ、プロトコル、および IP を必ず変更してください。

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

menu title ########## PXE Boot Menu ##########

label 1
menu label ^1) Install CentOS 8 x64 with Local Repo
kernel centos8/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.2/pub devfs=nomount

label 2
menu label ^2) Install CentOS 8 x64 with http://mirror.centos.org Repo
kernel centos8/vmlinuz
append initrd=centos8/initrd.img method=http://mirror.centos.org/centos/8/BaseOS/x86_64/os/ devfs=nomount ip=dhcp

label 3
menu label ^3) Install CentOS 8 x64 with Local Repo using VNC
kernel centos8/vmlinuz
append  initrd=centos8/initrd.img method=ftp://192.168.1.2/pub devfs=nomount inst.vnc inst.vncpassword=password

label 4
menu label ^4) Boot from local drive

上記の構成では、CentOS 8 ブート イメージ (kernelinitrd) が centos7 に存在していることがわかります。 > /var/lib/tftpboot に相対的なディレクトリ (つまり、/var/lib/tftpboot/centos7) と、 の FTP プロトコルを使用してインストーラー リポジトリにアクセスできます。 >192.168.1.2/pub (PXE サーバーの IP アドレス)。

また、メニュー ラベル 2 は、公式の CentOS 8 インストール ソースのミラー リポジトリ (クライアント システムでインターネット接続が必要です) を説明し、メニュー ラベル 3 は、クライアントのインストールを実行する必要があることを説明します。リモートVNC経由 (ここでは、VNC パスワードを強力なパスワードに置き換えます)。

重要: 上記の構成でわかるように、デモ目的で CentOS 8 イメージを使用しましたが、 RHEL 8 イメージ。

ステップ 5: CentOS 8 ブート イメージを PXE サーバーに追加する

9. CentOS 8 イメージを PXE サーバーに追加するには、wget コマンドを使用して CentOS 8 DVD ISO イメージをローカルにダウンロードし、マウントする必要があります。

wget http://centos.mirrors.estointernet.in/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso
mount -o loop CentOS-8.2.2004-x86_64-dvd1.iso /mnt

10. CentOS 8 をダウンロードしたら、centos8 ディレクトリを作成し、起動可能なカーネルと initrd イメージをコピーする必要があります。

mkdir /var/lib/tftpboot/centos8
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos8
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos8

このアプローチを採用する理由は、後でディレクトリ構造全体を台無しにすることなく、/var/lib/tftpboot の下に新しい Linux ディストリビューションごとに個別のディレクトリを作成できるためです。

ステップ 6: CentOS 8 ローカル ミラー インストール ソースを作成する

11. セットアップに使用できるさまざまなプロトコル (HTTPHTTPSNFS) があります。 CentOS 8 のローカル インストール ソースはミラーリングされますが、vsftpd サーバーを使用するとセットアップが簡単なため、FTP プロトコルを選択しました。

次に示すように、Vsftpd サーバーをインストールし、すべてのCentOS 8 DVD コンテンツを FTP ディレクトリ /var/ftp/pub にコピーしましょう。

dnf install vsftpd
cp -r /mnt/*  /var/ftp/pub/ 
chmod -R 755 /var/ftp/pub

12. すべての PXE サーバー構成が完了したので、DNSMASQ サーバーと VSFTPD サーバーを起動、有効化、ステータスを確認できます。

systemctl start dnsmasq
systemctl status dnsmasq
systemctl start vsftpd
systemctl status vsftpd
systemctl enable dnsmasq
systemctl enable vsftpd

13. 次に、クライアント システムが PXE サーバーに到達してそこから起動できるように、ファイアウォールでポートを開く必要があります。

firewall-cmd --add-service=ftp --permanent  	## Port 21
firewall-cmd --add-service=dns --permanent  	## Port 53
firewall-cmd --add-service=dhcp --permanent  	## Port 67
firewall-cmd --add-port=69/udp --permanent  	## Port for TFTP
firewall-cmd --add-port=4011/udp --permanent  ## Port for ProxyDHCP
firewall-cmd --reload  ## Apply rules

14. FTP インストール ソースのネットワークの場所を確認するには、ブラウザを開いて、FTP プロトコルを使用して PXE サーバーの IP アドレスを入力し、その後に /pub ネットワークの場所を入力します。

ftp://192.168.1.2/pub

ステップ 7: ネットワークから起動するようにクライアントを構成する

15. 次に、BIOS メニューからネットワーク ブートをプライム ブート デバイスとして構成し、クライアント システムを起動してシステムに CentOS 8 をインストールするように構成します。

システムの起動後、PXE プロンプトが表示されます。ここで F8 キーを押してプレゼンテーションに入り、Enter キーを押して PXE メニューに進みます。

CentOS/RHEL 8 上での最小限の PXE サーバーのセットアップはこれですべてです。