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


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

  1. CentOS 7 Minimal Installation Procedure
  2. RHEL 7 Minimal Installation Procedure
  3. Configure Static IP Address in RHEL/CentOS 7
  4. Remove Unwanted Services in RHEL/CentOS 7
  5. Install NTP Server to Set Correct System Time in RHEL/CentOS 7

この記事では、ミラーリングされたローカルインストールリポジトリを備えた RHEL / CentOS 7 x64ビットに PXEサーバーをインストールして構成する方法について説明します。 DNSMASQ サーバーを使用した、CentOS 7 DVDISOイメージによる。

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

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

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

したがって、静的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. interface – Interfaces that the server should listen and provide services.
  2. bind-interfaces – Uncomment to bind only on this interface.
  3. domain – Replace it with your domain name.
  4. dhcp-range – Replace it with IP range defined by your network mask on this segment.
  5. dhcp-boot – Replace the IP statement with your interface IP Address.
  6. dhcp-option=3,192.168.1.1 – Replace the IP Address with your network segment Gateway.
  7. dhcp-option=6,92.168.1.1 – Replace the IP Address with your DNS Server IP – several DNS IPs can be defined.
  8. server=8.8.4.4 – Put your DNS forwarders IPs Addresses.
  9. dhcp-option=28,10.0.0.255 – Replace the IP Address with network broadcast address –optionally.
  10. dhcp-option=42,0.0.0.0 – Put your network time servers – optionally (0.0.0.0 Address is for self-reference).
  11. pxe-prompt – Leave it as default – means to hit F8 key for entering menu 60 with seconds wait time..
  12. pxe=service – Use x86PC for 32-bit/64-bit architectures and enter a menu description prompt under string quotes. Other values types can be: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI.
  13. enable-tftp – Enables the build-in TFTP server.
  14. tftp-root – Use /var/lib/tftpboot – the location for all netbooting files.

設定ファイルに関するその他の高度なオプションについては、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-Server をインストールしてから、Syslinuxパッケージによって提供されるすべてのbootlodersファイルを上記の場所から/var/lib/tftpboot 次のコマンドを発行してパス。

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

手順4:PXEサーバー構成ファイルを設定する

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

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

# 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サーバーアドレスと同じであるため、リポジトリはローカルでホストされます。

インストールソースはCentOS7の公式インターネットミラーです(この場合、DHCPとNATを介してクライアントで利用可能なインターネット接続が必要です)。

重要:上記の構成でわかるように、デモ目的でCentOS 7を使用しましたが、RHEL 7イメージを定義することもできます。手順と構成全体は、CentOS 7のみに基づいているため、配布を選択する際は注意が必要です。

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

9.このステップでは、CentOSカーネルとinitrdファイルが必要です。これらのファイルを取得するには、 CentOS 7 DVD ISO イメージが必要です。したがって、先に進んでCentOS DVDイメージをダウンロードし、DVDドライブに挿入して、以下のコマンドを発行してイメージを/mnt システムパスにマウントします。

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 ディレクトリを作成し、CentOS7ブータブルカーネルとinitrdイメージをDVDマウント場所から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:CentOS7ローカルミラーインストールソースを作成する

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 コマンドを実行し、dnsmasqとに従ってCentOS7ファイアウォールルールを追加します。 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

FTPプロトコルの後にURL上の/pub ネットワークの場所が続き、結果は以下のスクリーンショットに示されているようになります。

ftp://192.168.1.20/pub

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

# tailf /var/log/messages

16.最後に、必要な最後の手順は、CentOS 7 DVDをアンマウントし、物理メディアを取り外すことです。

# umount /mnt

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

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

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

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

スクリーンショットでは、VNCを介したクライアントのリモートインストールの例を見ることができます。

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

全著作権所有。 © Linux-Console.net • 2019-2022