PXE(Preboot eXecution Environment) 支持客戶端通過網(wǎng)絡(luò)從服務(wù)器端下載系統(tǒng)鏡像,并進(jìn)行安裝。在安裝過程中,可以通過 Kickstart 配置文件實(shí)現(xiàn)無人值守安裝,并定制操作系統(tǒng)。 PXE 服務(wù)器組件: DHCP : 負(fù)責(zé)分配網(wǎng)絡(luò) IP 地址,并通過 DHCP 包來指定系統(tǒng)啟動(dòng)文件的。 syslinux: 預(yù)啟動(dòng)程序 TFTP: PXE 客戶端通過 TFTP 獲取啟動(dòng)文件。 FTP: PXE 客戶端通過 FTP 下載系統(tǒng)鏡像內(nèi)容。 為 PXE Server 配置固定 IP 地址; 關(guān)閉防火墻; 安裝 DHCP 服務(wù)器角色; 配置 DHCP; 啟動(dòng) DHCP 服務(wù),并配置開機(jī)啟動(dòng); 安裝 syslinux-tftpboot; 配置啟動(dòng)菜單(只有兩個(gè)菜單,一個(gè) Install Red Hat Enterprise Linux 8.0,一個(gè)是 Boot from local drive(默認(rèn)選擇)),并在第一個(gè)菜單配置啟動(dòng)系統(tǒng)鏡像所需的文件,以及下載系統(tǒng)鏡像的目錄; * 啟動(dòng)菜單文件 default 你可以通過示例文件修改獲得,也可以自己新建獲得。 復(fù)制系統(tǒng)鏡像啟動(dòng)文件到對應(yīng)的位置 安裝 TFTP 服務(wù)器角色(pxe 客戶端通過 TFTP 獲取啟動(dòng)文件); 配置 TFTP 服務(wù)器(修改 TFTP 的路徑為 /tftpboot); 啟動(dòng) TFTP 服務(wù),并配置開機(jī)啟動(dòng); 安裝 FTP 服務(wù)器(用于 pxe client 下載系統(tǒng)鏡像文件); 配置 ftp 服務(wù)器,開啟匿名訪問,指定匿名訪問的目錄; 啟動(dòng) ftp 服務(wù),并配置開機(jī)啟動(dòng); 創(chuàng)建 ftp 匿名訪問的目錄目錄,然后復(fù)制系統(tǒng)鏡像內(nèi)容到該目錄; 測試啟動(dòng) 通過 BIOS(Legacy ) 的方式啟動(dòng)客戶端主機(jī)進(jìn)行測試 配置 UEFI 啟動(dòng)菜單 重啟服務(wù) 測試啟動(dòng) 通過 UEFI 的方式啟動(dòng)客戶端主機(jī)進(jìn)行測試。初始化服務(wù)器
[it@pxesvr ~]$ sudo vim /etc/sysconfig/network-scripts/ifcfg-ens192
[sudo] password for it:
[it@pxesvr ~]$ cat /etc/sysconfig/network-scripts/ifcfg-ens192
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=6346f97a-42c5-4fff-ad62-93bdfd90f417
DEVICE=ens192
ONBOOT=yes
IPADDR=10.10.10.53
PREFIX=24
GATEWAY=10.10.10.1
DNS1=10.10.10.1
IPV6_PRIVACY=no[it@pxesvr ~]$ sudo systemctl stop firewalld.service
[it@pxesvr ~]$ sudo systemctl disable firewalld.service
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.DHCP
[it@pxesvr ~]$ sudo yum install dhcp-server -y
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:12:17 ago on Sat 10 Oct 2020 04:06:12 PM CST.
Dependencies resolved.
================================================================================================================
Package Arch Version Repository Size
================================================================================================================
Installing:
dhcp-server x86_64 12:4.3.6-30.el8 localREPO 529 k
Transaction Summary
================================================================================================================
Install 1 Package
... ... ... ...
... ... ... ...
... ... ... ...[it@pxesvr ~]$ sudo vim /etc/dhcp/dhcpd.conf
[it@pxesvr ~]$ sudo cat /etc/dhcp/dhcpd.conf | grep -v ^#
allow bootp;
allow booting;
default-lease-time 600;
max-lease-time 7200;
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 10.10.10.0 netmask 255.255.255.0 {
option routers 10.10.10.1;
range 10.10.10.100 10.10.10.199;
class 'pxeclients' {
match if substring (option vendor-class-identifier, 0, 9) = 'PXEClient';
next-server 10.10.10.53; #pxe server IP
if option architecture-type = 00:07 {
filename 'uefi/BOOTX64.EFI'; # UEFI boot
} else {
filename '/pxelinux.0'; # BIOS boot
}
}
}[it@pxesvr ~]$ sudo systemctl enable --now dhcpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/dhcpd.service → /usr/lib/systemd/system/dhcpd.service.syslinux
[it@pxesvr ~]$ sudo yum install syslinux-tftpboot -y
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 1:46:30 ago on Mon 12 Oct 2020 11:18:21 AM CST.
Dependencies resolved.
================================================================================================================
Package Arch Version Repository Size
================================================================================================================
Installing:
syslinux-tftpboot noarch 6.04-1.el8 localREPO 462 k
Installing dependencies:
syslinux x86_64 6.04-1.el8 localREPO 576 k
syslinux-nonlinux noarch 6.04-1.el8 localREPO 554 k
Transaction Summary
================================================================================================================
Install 3 Packages
... ... ... ...
... ... ... ...
... ... ... ...[it@pxesvr ~]$ sudo mkdir /tftpboot/pxelinux.cfg
[it@pxesvr ~]$ sudo cp /os/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[it@pxesvr ~]$ sudo vim /tftpboot/pxelinux.cfg/default
[it@pxesvr ~]$ sudo cat /tftpboot/pxelinux.cfg/default
default vesamenu.c32
timeout 600
display boot.msg
menu title Red Hat Enterprise Linux 8.0
# Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message.
menu tabmsg Press Tab for full configuration options on menu items.
menu separator # insert an empty line
menu separator # insert an empty line
label linux
menu label ^Install Red Hat Enterprise Linux 8.0
kernel vmlinuz
append initrd=initrd.img inst.stage2=ftp://10.10.10.53/dvd quiet
label local
menu label ^Boot from local drive
menu default
localboot 0xffff
[it@pxesvr ~]$ [it@pxesvr ~]$ sudo cp /os/isolinux/{boot.msg,vesamenu.c32} /tftpboot/
[it@pxesvr ~]$ sudo cp /os/images/pxeboot/{vmlinuz,initrd.img} /tftpboot/TFTP
[it@pxesvr ~]$ sudo yum install tftp-server -y
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:45:23 ago on Mon 12 Oct 2020 08:05:39 AM CST.
Dependencies resolved.
================================================================================================================
Package Arch Version Repository Size
================================================================================================================
Installing:
tftp-server x86_64 5.2-24.el8 localREPO_APP 50 k
Transaction Summary
================================================================================================================
Install 1 Package
... ... ... ...
... ... ... ...
... ... ... ...[it@pxesvr ~]$ sudo vim /usr/lib/systemd/system/tftp.service
[it@pxesvr ~]$ sudo cat /usr/lib/systemd/system/tftp.service
[Unit]
Description=Tftp Server
Requires=tftp.socket
Documentation=man:in.tftpd
[Service]
ExecStart=/usr/sbin/in.tftpd -s /tftpboot
StandardInput=socket
[Install]
Also=tftp.socket[it@pxesvr ~]$ sudo systemctl enable --now tftp
Created symlink /etc/systemd/system/sockets.target.wants/tftp.socket → /usr/lib/systemd/system/tftp.socket.FTP
[it@pxesvr ~]$ sudo yum install vsftpd -y
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:01:41 ago on Sat 10 Oct 2020 04:06:12 PM CST.
Dependencies resolved.
================================================================================================================
Package Arch Version Repository Size
================================================================================================================
Installing:
vsftpd x86_64 3.0.3-28.el8 localREPO_APP 180 k
Transaction Summary
================================================================================================================
Install 1 Package
... ... ... ...
... ... ... ...[it@pxesvr ~]$ sudo vim /etc/vsftpd/vsftpd.conf
[sudo] password for it:
[it@pxesvr ~]$ sudo grep -e anonymous -e anon_root /etc/vsftpd/vsftpd.conf | grep -v ^#
anonymous_enable=YES
anon_root=/var/ftp[it@pxesvr ~]$ sudo systemctl enable --now vsftpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.[it@pxesvr ~]$ sudo mkdir /var/ftp/dvd
[it@pxesvr ~]$ sudo cp -r /run/media/it/RHEL-8-0-0-BaseOS-x86_64/* /var/ftp/dvd/配置支持 UEFI 啟動(dòng)
[it@pxesvr ~]$ sudo mkdir /tftpboot/uefi
[sudo] password for it:
[it@pxesvr ~]$ sudo cp -r /os/EFI/BOOT/* /tftpboot/uefi/
[it@pxesvr ~]$ vim /tftpboot/uefi/grub.cfg
[it@pxesvr ~]$ sudo vim /tftpboot/uefi/grub.cfg
[it@pxesvr ~]$ sudo cat /tftpboot/uefi/grub.cfg
[sudo] password for it:
set default='1'
function load_video {
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set timeout=60
### END /etc/grub.d/00_header ###
search --no-floppy --set=root -l 'RHEL-8-0-0-BaseOS-x86_64'
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Install Red Hat Enterprise Linux 8.0' --class fedora --class gnu-linux --class gnu --class os {
linuxefi vmlinuz inst.stage2=ftp://10.10.10.53/dvd quiet
initrdefi initrd.img
}
menuentry 'Test this media & install Red Hat Enterprise Linux 8.0' --class fedora --class gnu-linux --class gnu --class os {
linuxefi vmlinuz inst.stage2=ftp://10.10.10.53/dvd quiet
initrdefi initrd.img
}[it@pxesvr ~]$ sudo systemctl restart dhcpd.service
[it@pxesvr ~]$ sudo systemctl restart tftp.socket
| 公眾號專屬福利 1 |
| 2020全新專題實(shí)戰(zhàn)教程限時(shí)1.99元 |
|識別獲取課程邀請好友聽課即可返現(xiàn)99%|
聯(lián)系客服