GNU/Linux >> Linux の 問題 >  >> Linux

UEFIハードウェアのPXEブートを設定する方法

Red Hat仮想化(RHV)をさまざまなネットワークに実装するには、新しいRHVホストをインストールするために何らかの自動化が必要です。同じネットワーク内の異なるホスト間にわずかな違いがある場合は、プロセスを自動化すると特に便利です。

この記事では、PXEサーバーのセットアップ、DHCPサーバーの構成、TFTPサーバーのインストールを含む、Preboot Execute Environment(PXE)の設計とセットアップのプロセスについて説明します。 PXEブート環境のセットアップは特に難しいことではありませんが、複数の重要なステップが必要であり、各ステップには多くの詳細が含まれています。

デザイン

異なるネットワークにある異なるサーバーのファームをプロビジョニングするように1つのPXEサーバーを設定すると、特に後でプロビジョニングを自動化する場合に役立ちます。

このセットアップでは、1つのPXEサーバーと2つの異なるサーバーのファームを構成します。各サーバーのファームネットワークには専用のPXEネットワーク(この記事では「プロビジョニングネットワーク」と呼びます)がありますが、PXEサーバー自体はこれらのネットワークのいずれにも含まれていません。

以下は、サンプルIP範囲のネットワーク図です。

この設計により、次のことが実現されます。

  1. この設定は、通常の管理ネットワーク(つまり、ovirtmgmt)を使用するよりも安全です。
  2. この設定は、動的ホスト構成プロトコル(DHCP)要求によって引き起こされる可能性のあるブロードキャストストームから管理ネットワークを保護します。
  3. PXEサーバーは、必要なパッケージをダウンロードするために、DMZインターフェイスまたはプロキシサーバーを介して衛星サーバーまたはインターネットに到達する必要があります。 PXEサーバーをプロビジョニングネットワークの外部に配置することで、これらのネットワークが危険にさらされるのを防ぎます。

前提条件

この記事は、簡単にするために次の仮定に基づいています。

1. PXEセットアップ(DHCP、トリビアルファイル転送プロトコル(TFTP)、ハイパーテキスト転送プロトコル(HTTP))は、必須ではありませんが、単一のサーバーでホストされます。

サーバーへのオペレーティングシステム(OS)のインストールは、次の画像の順序に従います。

2. PXEサーバーはプロキシサーバーを介してインターネットに到達でき、そうでない場合は衛星サーバーが使用されます。

3.PXEサーバーはRedHatEnterprise Linux(RHEL)7.xでセットアップされています。

PXEサーバーOS

PXEサーバーは、4つのコアCPUと4 GBのメモリを備えたサーバーにインストールされますが、より低い仕様のサーバーでも機能します。

サーバーには、すべてのタイプのトラフィックに使用される1つのネットワークインターフェイスカード(NIC)がありますが、ネットワーク分離が必要な場合は、異なるネットワークインターフェイスを使用できます。

RHEL7.6 ISOイメージは、最小限のインストールオプションでOSをインストールするために使用されます。

OSの登録後、関連するリポジトリを有効にする必要があります:

1. rhsmを編集します ファイル:

# vi /etc/rhsm/rhsm.conf

2.以下のセクションで、プロキシサーバーの関連する詳細を追加します。

#an http proxy server to use
proxy_hostname =

#port for http proxy server
proxy_port =

#user name for authenticating to an http proxy, if needed
proxy_user =

#password for basic http proxy auth, if needed
proxy_password =

3.ファイルを保存します。

4.システムを登録して接続します:

#subscription-manager register --auto-attach
username: your-rhsm-username
password: your-rhsm-password

5.必要なリポジトリを有効にする:

# subscription-manager repos --enable=rhel-7-server-rh-common-rpms --enable=rhel-7-server-rpms --enable=rhel-7-server-extras-rpms

DHCPセットアップ

以下は、UEFIサーバーのPXEブートをサポートするようにDHCPを設定する手順です。

1. DHCPサーバーをインストールします:

# yum install -y dhcp

2. DHCP構成ファイル(/etc/dhcp/dhcpd.conf)を調整します )。上記のネットワーク図に基づく構成ファイルの例を次に示します。

# DHCP Server Configuration File
#
#. see /usr/share/doc/dhcp*/dhcpd.conf.example
#
#. see dhcpd.conf(5) man page


option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;
option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
option architecture-type code 93 = unsigned integer 16;
subnet 192.168.1.0 netmask 255.255.255.0 {
   option routers 192.168.1.0;
   option subnet-mask 255.255.255.0;
   option broadcast-address 192.168.1.255;
}

subnet 192.168.2.0 netmask 255.255.255.0 {
   option routers 192.168.2.1;
   option subnet-mask 255.255.255.0;
   option broadcast-address 192.168.2.255;
   range 192.168.2.2 192.168.2.254;

   class "pxeclients" {
     match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
     next-server 192.168.1.10;
     if option architecture-type = 00:07 {
        filename "shim.efi";
        } else {
        filename "pxelinux/pxelinux.0";
     }
   }
}

subnet 192.168.3.0 netmask 255.255.255.0 {
   option routers 192.168.3.1;
   option subnet-mask 255.255.255.0;
   option broadcast-address 192.168.3.255;
   range 192.168.3.2 192.168.3.254;

   class "pxeclients" {
     match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
     next-server 192.168.1.10;
     if option architecture-type = 00:07 {
        filename "shim.efi";
        } else {
        filename "pxelinux/pxelinux.0";
     }
   }
}

3. dhcpdを有効にして開始します サービス:

# systemctl enable dhcpd; systemctl start dhcpd

TFTPセットアップ

TFTPサーバーは、以下を提供するために必要です。

  1. initrd.img -RAMディスクにロードされる「ブートローダー」
  2. vmlinuz -圧縮された起動可能なLinuxカーネル

UEFIサーバーのPXEブートをサポートするためのTFTPサーバーのセットアップは、BIOSサーバーをサポートするためのセットアップとは少し異なります。

以下は、UEFIサーバーのPXEブートをサポートするようにTFTPサーバーをセットアップする手順です。

1.TFTPサーバーをインストールします。

# yum install -y tftp-server

2. RHELリポジトリから必要なパッケージをダウンロードします:

# mkdir /root/packages

# cd /root/packages

# yumdownloader shim-version-architecture

# yumdownloader grub2-efi- version-architecture

3.必要なバイナリを抽出します:

# rpm2cpio shim-version-architecture.rpm | cpio -dimv

# rpm2cpio grub2-efi- version-architecture.rpm | cpio -dimv

# cp boot/efi/EFI/redhat/grubx64.efi /var/lib/tftpboot/

# cp boot/efi/EFI/redhat/shim.efi /var/lib/tftpboot/

4. ISOイメージをダウンロードして、PXEサーバーに移動します。

5. ISOイメージをマウントします:

# mount -t iso9660 /path/iso-file.iso /mnt -o loop,ro

6. /var/lib/tftpboot内にブートイメージファイルを保存するサブディレクトリを作成します :

# mkdir -p /var/lib/tftp/images/rhv-4.3

7.ブートイメージファイルをコピーします:

# cp /mnt/pxeboot/{vmlinuz,initrd.img} /var/lib/tftp/images/rhv-4.3/

8. grub.cfgという名前の構成ファイルを作成します /var/lib/tftpbootにあります 。これは、/var/lib/tftpboot/grub.cfgにあるサンプル構成ファイルです。 :

set default=0
set timeout=60
menuentry  'Install RHVH 4.3' --class fedora --class gnu-linux --class gnu --class os {
   linuxefi images/rhv-4.3/vmlinuz inst.ks=http://192.168.1.10/kickstarts/ks.cfg inst.stage2=http:// 192.168.1.10/rhv4.3/ISO quiet
   initrdefi images/rhv-4.3/initrd.img
}

9. tftpを有効にして開始します サービス:

#systemctl enable tftp; systemctl start tftp

grub.cfgの作成に関するヒント

grub.cfgの作成 ネットワークに応じて、いくつかの追加パラメータが必要になる場合があります。 grub.cfgで必要になる可能性のある一般的に使用されるパラメータを次に示します。 :

rd.net.timeout.carrier=60

このオプションが設定されている場合、dhclient -timeoutで呼び出されます 、したがって、DHCPサーバーの応答が遅れる場合に役立ちます:

ip=device-name:dhcp

これは、インストールするサーバーに複数のインターフェイスがあり、1つだけがPXEブート専用である場合に役立ちます。

その他のオプションについては、Dracutコマンドラインのマニュアルページを参照してください。

まとめ

PXEシステムをセットアップするのはやや長いプロセスなので、来週はパート2に進みます。この時点で、機能しているPXEサーバー、PXEで起動されたシステムにIPアドレスを配信するように構成されたDHCPサーバー、および起動可能なシステムとISOイメージを配信するためのTFTPサーバーができます。

パート2では、HTTPサーバー、キックスタートファイル、ホストベースのファイアウォール、およびネットワークのセットアップ方法を示して、PXEセットアップを続行します。また、PXEセットアップのトラブルシューティングについても説明し、いくつかの自動化オプションについて説明します。

[Linuxシステム管理についてもっと知る必要がありますか? RedHatシステム管理コースを受講してください。 ]


Linux
  1. 専用サーバーで電子メールのドメインキーを設定する方法

  2. CentOS8でVSFTPDを設定する方法

  3. MySQL サーバーの SELinux コンテキストを一覧表示および設定する方法

  1. Nfsを使用してUbuntuServer14.04をネットワークブートする方法は?

  2. 新しい irssi 接続にデフォルトのニックネームを設定するにはどうすればよいですか?

  3. システムユーザーの umask を設定するには?

  1. RaspberryPiをDNSサーバーとして設定する方法

  2. Ubuntu18.04でOpenVPNサーバーをセットアップする方法

  3. sudo コマンドのパスを設定する方法