1.PXE介紹
? PXE:
Preboot Excution Environment 預(yù)啟動(dòng)執(zhí)行環(huán)境
Intel公司研發(fā)
基于Client/Server的網(wǎng)絡(luò)模式鞠眉,支持遠(yuǎn)程主機(jī)通過(guò)網(wǎng)絡(luò)
從遠(yuǎn)端服務(wù)器下載映像轩娶,并由此支持通過(guò)網(wǎng)絡(luò)啟動(dòng)操作系統(tǒng)
PXE可以引導(dǎo)和安裝Windows,linux等多種操作系統(tǒng)
2.PXE工作原理
? Client向PXE Server上的DHCP發(fā)送IP地址請(qǐng)求消息潘明,DHCP檢測(cè)Client是否合法(主要是檢測(cè)Client的網(wǎng)卡MAC地址)台妆,如果合法則返回Client的IP地址绽榛,同時(shí)將啟動(dòng)文件pxelinux.0的位置信息一并傳送給Client
? Client向PXE Server上的TFTP發(fā)送獲取pxelinux.0請(qǐng)求消息熄诡,TFTP接收到消息之后再向Client發(fā)送pxelinux.0大小信息,試探Client是否滿意,當(dāng)TFTP收到Client發(fā)回的同意大小信息之后,正式向Client發(fā)送pxelinux.0
? Client執(zhí)行接收到的pxelinux.0文件
? Client向TFTP Server發(fā)送針對(duì)本機(jī)的配置信息文件(在TFTP 服務(wù)的pxelinux.cfg目錄下)膜廊,TFTP將配置文件發(fā)回Client苇本,繼而Client根據(jù)配置文件執(zhí)行后續(xù)操作。
? Client向TFTP發(fā)送Linux內(nèi)核請(qǐng)求信息摧冀,TFTP接收到消息之后將內(nèi)核文件發(fā)送給Client
? Client向TFTP發(fā)送根文件請(qǐng)求信息倍踪,TFTP接收到消息之后返回Linux根文件系統(tǒng)
? Client啟動(dòng)Linux內(nèi)核
? Client下載安裝源文件,讀取自動(dòng)化安裝腳本
3.PXE自動(dòng)化安裝CentOS 7
(1)安裝前準(zhǔn)備:關(guān)閉防火墻和SELINUX索昂,DHCP服務(wù)器靜態(tài)IP
(2)安裝軟件包
httpd tftp-server dhcp syslinux system-config-kickstart
(3)配置文件共享服務(wù):
systemctl enable httpd
systemctl start httpd
mkdir /var/www/html/centos/7
mount /dev/sr0 /var/www/html/centos/7配置網(wǎng)絡(luò)yum源
? 準(zhǔn)備kickstart文件
/var/www/html/ks/centos7.cfg 注意:權(quán)限
? 配置tftp服務(wù)
systemctl enable tftp.socket (centos6:chkconfig tftp on)
systemctl start tftp.socket (centos6:service xinetd restart)
? 配置DHCP服務(wù)
systemctl enable dhcpd
vim /etc/dhcp/dhcpd.conf
option domain-name "example.org";
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.1 192.168.100.200;
filename "pxelinux.0";
next-server 192.168.100.100;
}
systemctl start dhcpd
? 準(zhǔn)備相關(guān)文件
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /usr/share/syslinux/{pxelinux.0,menu.c32}
/var/lib/tftpboot/
cp /misc/cd/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /misc/cd/isolinux/isolinux.cfg
/var/lib/tftpboot/pxelinux.cfg/default
文件列表如下:
/var/lib/tftpboot/
├── initrd.img
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│ └── default
└── vmlinuz
? 準(zhǔn)備啟動(dòng)菜單
Vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 600
menu title PXE INSTALL MENU
label autoa
menu label Auto Install CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.100.100/ks/centos7.cfg
label manual
menu label Manual Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.100.100/centos/7
label local
menu default
menu label ^Boot from local drive
localboot 0xffff
4.PXE自動(dòng)化安裝CentOS 6
? 安裝前準(zhǔn)備:關(guān)閉防火墻和SELINUX建车,DHCP服務(wù)器靜態(tài)IP
? 1 安裝相應(yīng)軟件包
Yum install dhcp httpd tftp-server syslinux
chkconfig tftp on
chkconfig xinetd on
chkconfig httpd on
chkconfig dhcpd on
service httpd start
service xneted start
? 2 準(zhǔn)備Yum 源和相關(guān)目錄
mkdir -pv /var/www/html/centos/{6,ks}
mount /dev/sr0 /var/www/html/centos/6
? 3 準(zhǔn)備kickstart文件
/var/www/html/centos/ks/centos6.cfg
注意權(quán)限:
chmod 644 /var/www/html/centos/ks/centos6.cfg
? 4 準(zhǔn)備相關(guān)的啟動(dòng)文件
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cd /misc/cd/images/pxeboot/
cp vmlinuz initrd.img /var/lib/tftpboot
Cd /misc/cd/isolinux/
cp boot.msg vesamenu.c32 splash.jpg /var/lib/tftpboot
? 5 準(zhǔn)備啟動(dòng)菜單文件
cp /misc/cd/isolinux/isolinux.cfg
/var/lib/tftpboot/pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32 指定菜單風(fēng)格
#prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to wang CentOS 6
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label auto
menu label ^Automatic Install Centos6
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.100.100/centos/ks/centos6.cfg
label manual
menu label ^Manual Install Centos
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.100.100/centos/6
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
目錄結(jié)構(gòu)如下:
tree /var/lib/tftpboot/
/var/lib/tftpboot/
├── boot.msg
├── initrd.img
├── pxelinux.0
├── pxelinux.cfg
│ └── default
├── splash.jpg
├── vesamenu.c32
└── vmlinuz
? 6 配置dhcp服務(wù)
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
option domain-name "magedu.com";
option domain-name-servers 192.168.100.1;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.1 192.168.100.200;
option routers 192.168.100.1;
filename "pxelinux.0";
next-server 192.168.100.100;
}
service dhcpd start