このチュートリアルでは、Debianアーカイブミラーが提供するインターネットリモートHTTPミラーソースを備えたPXEサーバーを介して最新バージョンのDebian9サーバーをインストールする方法について説明します。このチュートリアルでPXE環境をセットアップするために使用するDHCPサーバーはISC-DHCPサーバーであり、ネットブートDebianファイルはTFTPD-HPAサーバーによってローカルネットワーク上で提供されます。 PXEを介してシステムをインストールすると、インストール速度が向上し、Debianの複数のインストールを短期間で展開する場合、またはマシンにCD /DVDROMユニットが装備されていない場合に役立ちます。
- ベアメタルマシンまたは仮想マシンにインストールされたDebian9。
- IPアドレスおよびその他の関連するDHCPおよびPXE設定を動的に割り当てるために使用されるネットワークセグメントの静的IPアドレスで構成されたネットワークインターフェイス。
- Debianサーバーへのroot権限を持つローカルまたはリモートのアカウント、またはサーバーのコンソールを介したrootアカウントへの直接アクセス、またはSSHを介したリモートアクセス。
- ネットワーク経由でDebianをインストールするために必要なインターネット接続。
最初のステップでは、新しいサーバーのインストールに使用するDebianシステムに、静的IPアドレスで構成されたDHCPサーバーへのバインドに使用されるネットワークインターフェイスがあることを確認する必要があります。
ネットワークインターフェイスカードを手動で構成するには、ネットワークインターフェイスファイルを開き、 nanoなどの好みのテキストエディタを使用して次の行を編集します。 。以下に説明するIP設定行を、独自のネットワーク構成に一致するように置き換えます。
sudo nano /etc/network/interfaces
インターフェース ファイルの抜粋:
auto ens33
iface ens33 inet static
address 192.168.1.102
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.2 8.8.4.4
dns-search debian.local
ネットワークインターフェイスファイルを編集したら、ファイルを保存して閉じ、ネットワークインターフェイスを停止してから起動し、次のコマンドを発行して設定を適用します。ネットワークインターフェイスカードの名前がens33であると仮定して、次のコマンドを発行してNICを無効または有効にします。
ifdown ens33
ifup ens33
ネットワークインターフェイスに新しいIPアドレスが設定されているかどうかを確認するには、次のコマンドを発行します。
ip a
ネットワークデーモンを再起動するか、インターフェイスを無効にして有効にしただけでは、IP設定が適用されない場合があります。この場合、以下のコマンドでシステムを再起動する必要があります。
init 6
または
systemctl reboot
また、以下のコマンドを発行して、システム全体の更新を実行する必要があります。
apt update
apt upgrade
次のステップでは、次のコマンドを実行して、コマンドラインからシステムをさらに管理するために使用されるいくつかの必要なユーティリティをインストールします。
apt install wget bash-completion unzip
ISC-DHCPサーバーのインストールと構成
DHCPサーバーとPXE構成をセットアップするには、rootアカウントまたはroot権限を持つアカウントでシステムにログインし、 isc-dhcp-serverをインストールします。 次のコマンドを発行することにより、Debian9リポジトリによって提供されるパッケージ。
apt install isc-dhcp-server
次に、ISC-DHCPサーバーのメイン構成ファイルをバックアップし、dhcpcサーバー構成ファイルを編集して次の設定を含めます。
mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
nano /etc/dhcp/dhcpd.conf
dhcpcd.conf ファイルの抜粋:
ddns-update-style none;
option option-128 code 128 = string;
option option-129 code 129 = text;
authoritative;
log-facility local7;
option arch code 93 = unsigned integer 16;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.100;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option ntp-servers 192.168.1.102;
option time-servers 192.168.1.102;
option domain-name "debian.local";
option domain-name-servers 192.168.1.1, 192.168.1.2;
allow booting;
allow bootp;
if option arch = 00:07 or option arch = 00:09 {
filename "bootnetx64.efi";
} else {
filename "pxelinux.0";
}
next-server 192.168.1.102;
#default lease 4H, max lease 8H
default-lease-time 14400;
max-lease-time 28800;
}
host nas {
hardware ethernet 00:17:a4:f6:b2:2e;
fixed-address 192.168.1.105;
}
上記の構成ファイルで、それに応じて次の行を置き換えます。
subnet {..
range 192.168.1.50 192.168.1.100;
DHCPがこのネットワークセグメントにIPを割り当てるための独自のネットワーク範囲を定義するには
オプションルーター =ゲートウェイIPを設定する
オプションのブロードキャストアドレス =ネットワークブロードキャストアドレスを設定する
オプションのサブネットマスク =ネットワークサブネットマスクアドレスを設定する
option ntp-servers
オプションのタイムサーバー =ネットワークNTPサーバーのIPアドレスを設定する
オプションドメイン名 =ネットワークドメイン名がある場合はそれを設定します
option domain-name-servers =ネットワークDNSサーバーのIPアドレスを設定する
オプションarch=00:07またはオプションarch=00:09の場合 =エンドデバイスがUEFIベースのマシンの場合、 bootnetx64.efiを使用してデバイスを起動します pxelinux.0 を使用して、UEFIベースではない他のマシンをファイルまたは起動します。 ファイル。これらのマシンは通常、古いBIOSシステムです。
next-server 192.168.1.102 = これは、ファイル pxelinux.0が存在するTFTPサーバーのIPアドレスです。 またはbootnetx64.efi あなたのネットワークで見つけることができます。この場合、TFTPサーバーは同じマシンにあります。
デフォルトのリース時間 =有効期限が切れる前にIPアドレスに付与されるデフォルトの秒数。
最大リース時間 =有効期限が切れる前にIPアドレスに付与される最大時間(秒単位)。
host nas {
hardware ethernet 00:17:a4:f6:b2:2e;
fixed-address 192.168.1.105;
}
これは、静的IPアドレスがDHCPサーバーで宣言される方法です。 ハードウェアイーサネットで定義されたMACアドレスを持つデバイス ステートメントは常に同じIPアドレスを取得します。宣言されたホスト名は重要ではありません。ホスト名には任意の文字列を使用できます。
次に、 isc-dhcp-serverを開きます / etc / default /のファイル 編集用のディレクトリで、ファイルの最後に移動し、以下のサンプルで説明するように、静的IPアドレスで構成されたネットワークインターフェイスカードをIPv4インターフェイス行に追加します。適切なネットワークインターフェイスカード名を追加してください。 ipを使用する またはifconfig マシンのネットワークインターフェイスを一覧表示し、正しい名前を見つけるためのコマンド。
nano /etc/default/isc-dhcp-server
isc-dhcp-serverデフォルトファイルの抜粋:
INTERFACESv4=”ens33”
最後に、DHCPデーモンを再起動して変更を適用します。以下のコマンドを発行してDHCPサービスの状態を確認し、サービスが開始されているかどうかを確認してください。
systemctl restart isc-dhcp-server.service
systemctl status isc-dhcp-server.service
また、 ssを実行します またはnetstat DHCPサーバーごとに開いているすべてのソケットを一覧表示するコマンド。
netstat –tulpn
ss –tulpn
netstatの場合 ユーティリティがシステムにインストールされていない場合は、以下のコマンドを発行してインストールしてください。
apt install net-tools
TFTPサーバーのインストール
クライアントがPXEおよびTFTPを介してDebianをリモートで起動するために必要なネットブートファイルを提供するには、システムにTFTPサーバーをインストールする必要もあります。 LANで利用できる最も一般的で安全なTFTPサーバーの1つは、 tftpd-hpaです。 サーバ。 TFTP-HPAパッケージは、Debian 9が提供する公式リポジトリからインストールできます。以下のコマンドを実行して、Debian9にtftpd-hpaサーバーをインストールします。
apt install tftpd-hpa
パッケージがインストールされたら、TFTPD-HPAのデフォルト構成ファイルを開き、ファイルに以下の内容が含まれていることを確認します。
nano /etc/default/tftpd-hpa
tftpd-hpa ファイルの抜粋:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
行がTFTP_OPTIONSの場合 以下の内容が含まれている場合は、必ず -createを削除してください。 TFTPサーバーを保護するためにフラグを立てます。
TFTP_OPTIONS="--secure --create"
作成 フラグを使用すると、リモートクライアントはファイルをtftpサーバーにアップロードできます。任意のユーザーがTFTPサーバーのルートパスからファイルをアップロードまたは削除できるため、このオプションは危険です。
最後に、システム全体でサービスを有効にし、TFTPサーバーを起動し、次の一連のコマンドを発行してtftpデーモンのステータスを確認します。
systemctl enable tftpd-hpa
systemctl start tftpd-hpa
systemctl status tftpd-hpa
netstatも実行する必要があります またはss システムでリスニング状態にあるすべての開いているネットワークソケットを一覧表示するためのコマンド。 DHCPサーバーとTFTPサーバーに必要な次のUDPポートをネットワークスタックで開く必要があります:67と69。次のコマンドを発行して、ファイアウォールでこれらのポートを開く必要があります。
ufw allow 67/udp
ufw allow 69/udp
iptablesを使用している場合 Debianサーバーでファイアウォールポリシーを管理するための生のルール。次のルールを追加して、ポート67および69のUDPインバウンドトラフィックがファイアウォールを通過できるようにし、クライアントがDHCPサーバーおよびTFTPサーバーにアクセスできるようにします。
apt-get install iptables-persistent
iptables -A INPUT -p udp --dport 67 -j ACCEPT
iptables -A INPUT -p udp --dport 69 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload
次のステップでは、次のコマンドを発行してSyslinuxブートローダーユーティリティをインストールします。
apt install syslinux-utils syslinux
Debian9ネットブートファイルをデプロイする
次に、次のアドレスhttps://www.debian.org/distrib/netinstにあるDebian netinstall Webページにアクセスし、wgetコマンドラインユーティリティを使用してDebiannetbootアーカイブtarballの最新バージョンをダウンロードします。
wget http://ftp.nl.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz
Debian netinstall tarballがダウンロードされたら、以下のコマンドを実行して、アーカイブコンテンツをTFTPルートパスに直接抽出します。
tar xfz netboot.tar.gz -C /srv/tftp/
また、Syslinuxパッケージによって提供されるmemdiskファイルをTFTPルートパスにコピーし、以下のコマンドを発行してTFTPディレクトリの内容を一覧表示します。 / srv / tftpディレクトリには、以下のスクリーンショットに表示されているコンテンツが含まれている必要があります。
cp /usr/lib/syslinux/memdisk /srv/tftp/
ls /srv/tftp/
次に、以下のコマンドを発行して、Debiannetinstallパッケージによって提供されるUEFIブートローダーファイルのTFTPルートパスへのシンボリックリンクを作成します。また、TFTPディレクトリの長いリストを作成して、ソフトリンクがUEFIネットブートファイルを正しく指しているかどうかを確認します。
ln -s /srv/tftp/debian-installer/amd64/bootnetx64.efi /srv/tftp/
ls -l /srv/tftp/
PXEサーバーは、 pxelinux.cfgにある構成ファイルを読み取って実行します TFTPルートパスからのディレクトリ:GUIDファイル、MACファイル、デフォルトファイル。ディレクトリpxelinux.cfgはすでに作成されており、必要なPXEデフォルト構成ファイルが入力されています。これは、必要なネットブートファイルをDebiannetinstallアーカイブから/srv/tftpディレクトリに以前に抽出したためです。 pxelinux.cfgディレクトリからPXEデフォルト設定ファイルをさらに変更する必要はありません。ただし、Debianの初期ブートメニューを実際に制御するファイルの名前は txt.cfgです。 / srv / tftp / debian-installer / amd64 / boot-screens /にあります ディレクトリ。 pxelinux.cfgのデフォルトのpxe構成ファイル ディレクトリは、実際にはtxt.cfgファイルを指すソフトリンクです。 ネットブートプロセス中にカーネルに渡される他のオプションを変更または追加したり、他のエントリを追加したり、PXEサーバーを介して他のLinuxディストリビューションをブートしたりするには、以下のコマンドでデフォルトのtxt.cfgPXE構成ファイルを開いて作成する必要があります。適切な変更。
nano /srv/tftp/debian-installer/amd64/boot-screens/txt.cfg
t xt.cfg ファイルの抜粋:
label install
menu label ^Install
kernel debian-installer/amd64/linux
append vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet
PXEを介してDebianレスキューモードを使用する場合は、以下の構成でこのファイルにエントリを追加してください。
label rescue
menu label ^Rescue mode
kernel debian-installer/amd64/linux
append vga=788 initrd=debian-installer/amd64/initrd.gz rescue/enable=true --- quiet
エキスパートモードでネットワーク経由でDebianを起動するために必要なエントリを追加するか、自動インストールモードを使用するには、以下の抜粋に示すように、txt.cfgファイルにさらに構成を追加します。
エキスパートインストール:
label expert
menu label ^Expert install
kernel debian-installer/amd64/linux
append priority=low vga=788 initrd=debian-installer/amd64/initrd.gz ---
include debian-installer/amd64/boot-screens/rqtxt.cfg
自動インストール:
label auto
menu label ^Automated install
kernel debian-installer/amd64/linux
append auto=true priority=critical vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet
また、このファイルの内容を調べると、カーネルであることがわかります。 およびinitrd.gz 最初のPXEメニューの後にTFTPネットワークプロトコルを介してクライアントのRAMメモリにロードされるイメージは、 / srv / tftp / debian-installer / amd64 /にあります。 ディレクトリ。 Debianカーネルとinitrd.gzの将来のアップデートのために、これら2つのファイルのみを変更できます。
それで全部です!ネットワーク経由でクライアントマシンを起動し、DVDイメージ経由でDebianを起動するときに通常表示されるすべてのエントリを使用して、PXEサーバー経由でDebian9のインストールを開始できるようになりました。
クライアントとサーバー間で交換されるDHCPログメッセージをリアルタイムで表示するには、 tailを使用します。 システムsyslogファイルに対するコマンド。 DHCPサーバーは、すべてのログメッセージをsyslogファイルに破棄します。 TFTPサーバーのログメッセージは、daemon.logファイルを介して監視できます。以下のスクリーンショットは、DHCPサーバーとTFTPサーバーの両方によって発行されたログメッセージの抜粋を示しています。
tailf /var/log/syslog
tailf /var/log/daemon.log
TFTPサーバーによって生成されたログメッセージを表示するために、以下のコマンドを実行することもできます。
journalctl -fu tftpd-hpa
DHCPサーバーによってクライアントに付与されたリースに関する拡張情報を明らかにするには、 dhcpd.leasesのコンテンツを表示します。 次の例に示すように、catコマンドを使用してファイルを作成します。
cat /var/lib/dhcp/dhcpd.leases
それで全部です!これで、ネットワークにPXEサーバーが正常に展開されました。これで、クライアントマシンにPXE経由で起動するように指示することにより、ネットワーク経由でDebianのインストールを開始できます。マシンのPOST初期化中に特別なファンクションキーを押すことにより、クライアントマシンをネットワークブートできます。適切なネットブートキーを見つけるには、マシンのマザーボードベンダーのドキュメントを参照してください。
ネットワーク経由でDebianをインストールするプロセスは、DVD ISOイメージを介して、または起動可能なUSBフラッシュドライブを使用してシステムをインストールするプロセスと非常に似ています(わずかな違いがあります)。