ウェブサイト検索

RHEL/CentOS 7 での複数の Linux ディストリビューション インストール用の「PXE ネットワーク ブート サーバー」のセットアップ


PXE サーバー – 起動前実行環境 – ネットワーク インターフェイスから直接オペレーティング システムを起動、実行、またはインストールするようにクライアント コンピュータに指示します。これにより、CD/DVD への書き込みや物理メディアの使用が不要になります。ネットワーク インフラストラクチャ上の複数のマシンに Linux ディストリビューションを同時にインストールする作業が容易になります。

要件

  1. CentOS 7 の最小限のインストール手順
  2. RHEL 7 の最小限のインストール手順
  3. RHEL/CentOS 7 での静的 IP アドレスの構成
  4. RHEL/CentOS 7 で不要なサービスを削除する
  5. RHEL/CentOS 7 で正しいシステム時刻を設定するための NTP サーバーのインストール

この記事では、ミラーリングされたローカル インストール リポジトリと提供されたソースを使用して、RHEL/CentOS 7 x64 ビットに PXE サーバー をインストールして構成する方法について説明します。 DNSMASQ サーバーの助けを借りて、CentOS 7 DVD ISO イメージによって作成されます。

DNS および DHCP サービスを提供する Syslinux パッケージ、ネットワーク ブート用のブートローダーを提供する TFTP サーバー トリビアル ファイル転送プロトコル (TFTP) およびローカルにマウントされたミラーリングされた DVD イメージをホストする VSFTPD サーバーを使用して、ネットワーク経由でダウンロードできるブート可能イメージ - 公式 RHEL として機能します。 /CentOS 7 ミラー インストール リポジトリ。インストーラーはそこから必要なパッケージを抽出します。

ステップ 1: DNSMASQ サーバーをインストールして構成する

1. サーバーにさらに多くの NIC が設定されている場合に備えて、ネットワーク カード インターフェイスの 1 つを、次のネットワーク カード インターフェイスに属するのと同じ IP 範囲の静的 IP アドレスで構成する必要があるということを絶対に要求する必要はありません。 PXE サービスを提供するネットワーク セグメント。

したがって、静的 IP アドレスを構成し、システムを更新し、その他の初期設定を実行した後、次のコマンドを使用してDNSMASQ デーモンをインストールします。

yum install dnsmasq

2. /etc ディレクトリにある DNSMASQ メインのデフォルト設定ファイルは一目瞭然ですが、詳細なコメント付きの説明に従って編集するのは非常に困難です。

まず、後で確認する必要がある場合に備えてこのファイルをバックアップしてから、次のコマンドを実行して、お気に入りのテキスト エディタを使用して新しい空の構成ファイルを作成します。

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

3. ここで、次の設定をコピーして dnsmasq.conf ファイルに貼り付け、ネットワーク設定と一致するように以下の説明文を確実に変更します。

interface=eno16777736,lo
#bind-interfaces
domain=centos7.lan
DHCP range-leases
dhcp-range= eno16777736,192.168.1.3,192.168.1.253,255.255.255.0,1h
PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.20
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 7 from network server 192.168.1.20", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

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

  1. インターフェイス – サーバーがリッスンしてサービスを提供するインターフェイス。
  2. bind-interfaces – このインターフェースのみにバインドするにはコメントを解除します。
  3. ドメイン – ドメイン名に置き換えます。
  4. dhcp-range – このセグメントのネットワーク マスクで定義された IP 範囲に置き換えます。
  5. dhcp-boot – IP ステートメントをインターフェイスの IP アドレスに置き換えます。
  6. dhcp-option=3,192.168.1.1 – IP アドレスをネットワーク セグメントのゲートウェイに置き換えます。
  7. dhcp-option=6,92.168.1.1 – IP アドレスを DNS サーバー IP に置き換えます – 複数の DNS IP を定義できます。
  8. server=8.8.4.4 – DNS フォワーダーの IP アドレスを入力します。
  9. dhcp-option=28,10.0.0.255 – 必要に応じて、IP アドレスをネットワーク ブロードキャスト アドレスに置き換えます。
  10. dhcp-option=42,0.0.0.0 – ネットワーク タイム サーバーを配置します – オプションで (0.0.0.0 アドレスは自己参照用です)。
  11. pxe-prompt – デフォルトのままにします – 秒の待ち時間でメニュー 60 に入るには F8 キーを押すことを意味します。
  12. pxe=service – 32 ビット/64 ビット アーキテクチャには x86PC を使用し、文字列引用符の下にメニュー説明プロンプトを入力します。他の値のタイプには、PC98、IA64_EFI、Alpha、Arc_x86、Intel_Lean_Client、IA32_EFI、BC_EFI、Xscale_EFI、および X86-64_EFI があります。
  13. enable-tftp – ビルトイン TFTP サーバーを有効にします。
  14. tftp-root – /var/lib/tftpboot を使用します – すべてのネットブート ファイルの場所です。

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

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

4. DNSMASQ メイン設定ファイルを編集して保存したら、次のコマンドを実行して Syslinx PXE ブートローダー パッケージをインストールします。

yum install syslinux

5. PXE ブートローダー ファイルは /usr/share/syslinux 絶対システム パスに存在するため、このパスの内容を一覧表示することで確認できます。このステップはオプションですが、次のステップですべてのコンテンツをTFTP サーバー パスにコピーするため、このパスに注意する必要がある場合があります。

ls /usr/share/syslinux

ステップ 3: TFTP サーバーをインストールし、SYSLINUX ブートローダーを追加する

6. 次に、次のステップに進んで TFTP サーバー をインストールし、Syslinux パッケージによって提供されるすべてのブートローダー ファイルを上記の場所から / にコピーします。次のコマンドを発行して、var/lib/tftpboot パスを追加します。

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

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

7. 通常、PXE サーバー は特定のファイルのグループ (GUID ファイル、最初は MAC) から設定を読み取ります。ファイル – 次、デフォルト ファイル – 最後) pxelinux.cfg というフォルダーでホストされます。このフォルダーは、tftp-root で指定されたディレクトリに配置する必要があります。 > DNSMASQ メイン構成ファイルのステートメント。

次のコマンドを実行して、必要なディレクトリ pxelinux.cfg を作成し、 そこにデフォルト ファイルを追加します。

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

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

以下に、使用できる構成ファイルの例を示します。ただし、インストール イメージ (カーネル ファイルと initrd ファイル)、プロトコル (FTP、HTTP、HTTPS、NFS)、および IP を変更して、ネットワーク インストール ソース リポジトリとパスを適宜反映させます。

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

次の抜粋全体をファイルに追加します。

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

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

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

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

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

label 4
menu label ^4) Boot from local drive

ご覧のとおり、CentOS 7 ブート イメージ (カーネルと initrd) は、/var/lib/tftpboot に相対的な centos7 という名前のディレクトリに存在します (これは絶対システム パス上にあることを意味します) /var/lib/tftpboot/centos7)、インストーラー リポジトリには、192.168.1.20/pub ネットワークの場所で FTP プロトコルを使用してアクセスできます。この場合、IP アドレスが PXE サーバーのアドレスと同じであるため、リポジトリはローカルでホストされます)。

また、メニュー ラベル 3 では、ヘッドレス クライアントにインストールする場合に備えて、クライアントのインストールを VNC 経由でリモートの場所から実行する必要があることを指定しています (ここでは、VNC パスワードを強力なパスワードに置き換えます)。メニューラベル 2
と指定します。 インストールでは、CentOS 7 公式インターネット ミラーがソースとなります (この場合、クライアントで DHCP および NAT を介してインターネット接続が利用できる必要があります)。

重要: 上記の構成でわかるように、デモンストレーション目的で CentOS 7 を使用しましたが、RHEL 7 イメージを定義し、手順と構成全体に従うこともできます。は CentOS 7 のみに基づいているため、ディストリビューションを選択するときは注意してください。

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

9. この手順では、CentOS カーネル ファイルと initrd ファイルが必要です。これらのファイルを入手するには、CentOS 7 DVD ISO イメージが必要です。そこで、CentOS DVD イメージをダウンロードし、DVD ドライブに置き、以下のコマンドを実行してイメージを /mnt システム パスにマウントします。

Minimal CD イメージではなく DVD を使用する理由は、後でこの DVD コンテンツを使用して
FTP ソースのローカル インストーラー リポジトリ。

mount -o loop /dev/cdrom  /mnt
ls /mnt

マシンに DVD ドライブがない場合は、CentOS ミラーから wget または curl ユーティリティを使用してCentOS 7 DVD ISO をローカルにダウンロードし、マウントすることもできます。

wget http://mirrors.xservers.ro/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
mount -o loop /path/to/centos-dvd.iso  /mnt

10. DVD コンテンツが利用可能になったら、centos7 ディレクトリを作成し、DVD がマウントされた場所から CentOS 7 の起動可能なカーネルと initrd イメージを centos7 フォルダ構造にコピーします。

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

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

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

11. HTTP、HTTPS、NFS などのさまざまなプロトコルを介してインストール ソース ミラーをセットアップできますが、このガイドでは FTP を選択しました。 > プロトコルは非常に信頼性が高く、vsftpd サーバーの助けを借りてセットアップが簡単であるためです。

さらに vsftpd デーモンをインストールし、DVD にマウントされたすべてのコンテンツを vsftpd のデフォルト サーバー パス (/var/ftp/pub) にコピーします。これには、システム リソースによっては時間がかかる場合があります。次のコマンドを発行して、このパスへの読み取り権限を取得します。

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

ステップ 7: システム全体でデーモンを起動して有効にする

12. PXE サーバーの構成が最終的に完了したので、DNSMASQ サーバーと VSFTPD サーバーを起動し、ステータスを確認してシステム全体で有効にします。以下のコマンドを実行すると、システムが再起動されるたびに自動的に起動します。

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

ステップ 8: ファイアウォールを開いて FTP インストール ソースをテストする

13. クライアント マシンが PXE サーバーにアクセスして起動するためにファイアウォールで開く必要があるすべてのポートのリストを取得するには、netstat コマンドを実行して CentOS を追加します。 7 Firewalld は、dnsmasq および vsftpd リスニング ポートに応じてルールを設定します。

netstat -tulpn
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 インストール ソース ネットワーク パスをテストするには、ローカルでブラウザーを開くか (lynx で実行する必要があります)、または別のコンピューターで PXE サーバーの IP アドレスを入力します。
FTP プロトコルの後に URL 上の /pub ネットワーク ロケーションが入力され、結果は以下のスクリーンショットのようになります。

ftp://192.168.1.20/pub

15. ライブ モードで、最終的な構成ミスやその他の情報および診断のために PXE サーバーをデバッグするには、次のコマンドを実行します。

tailf /var/log/messages

16. 最後に、最後に行う必要がある手順は、CentOS 7 DVD をアンマウントし、物理メディアを削除することです。

umount /mnt

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

17. これで、クライアントは、システム BIOS からネットワーク ブートをプライマリ ブート デバイスとして構成するか、中に指定されたキーを押すことによって、マシン上で CentOS 7 を起動してインストールできるようになります。 BIOS POST の操作はマザーボードのマニュアルに記載されているとおりです。

ネットワークブートを選択するには。最初の PXE プロンプトが表示されたら、F8 キーを押してプレゼンテーションに入り、Enter キーを押して PXE メニューに進みます。

18. PXE メニューに到達したら、CentOS 7 のインストール タイプを選択し、Enter キーを押して、ローカルからインストールする場合と同じ方法でインストール手順を続行します。メディアブートデバイス。

このメニューからバリアント 2 を使用するには、ターゲット クライアント上でアクティブなインターネット接続が必要であることに注意してください。また以下
に。 スクリーンショットでは、VNC を介したクライアントのリモート インストールの例を確認できます。

CentOS 7 での最小限の PXE サーバー のセットアップはこれですべてです。このシリーズの次回の記事では、キックスタート ファイルを使用して CentOS 7 の自動インストールをセットアップする方法や他の Linux ディストリビューションを追加する方法など、この PXE サーバー構成に関するその他の問題について説明します。 PXE メニュー – Ubuntu サーバー および Debian 7 に移動します。