Red Hat仮想化(RHV)をさまざまなネットワークに実装するには、新しいRHVホストをインストールするために何らかの自動化が必要です。同じネットワーク内の異なるホスト間にわずかな違いがある場合は、プロセスを自動化すると特に便利です。
この記事では、PXEサーバーのセットアップ、DHCPサーバーの構成、TFTPサーバーのインストールを含む、Preboot Execute Environment(PXE)の設計とセットアップのプロセスについて説明します。 PXEブート環境のセットアップは特に難しいことではありませんが、複数の重要なステップが必要であり、各ステップには多くの詳細が含まれています。
デザイン
異なるネットワークにある異なるサーバーのファームをプロビジョニングするように1つのPXEサーバーを設定すると、特に後でプロビジョニングを自動化する場合に役立ちます。
このセットアップでは、1つのPXEサーバーと2つの異なるサーバーのファームを構成します。各サーバーのファームネットワークには専用のPXEネットワーク(この記事では「プロビジョニングネットワーク」と呼びます)がありますが、PXEサーバー自体はこれらのネットワークのいずれにも含まれていません。
以下は、サンプルIP範囲のネットワーク図です。
この設計により、次のことが実現されます。
- この設定は、通常の管理ネットワーク(つまり、ovirtmgmt)を使用するよりも安全です。
- この設定は、動的ホスト構成プロトコル(DHCP)要求によって引き起こされる可能性のあるブロードキャストストームから管理ネットワークを保護します。
- 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サーバーは、以下を提供するために必要です。
-
initrd.img
-RAMディスクにロードされる「ブートローダー」 -
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システム管理コースを受講してください。 ]