前段時間公司要建設本身的雲中心,部署上百臺服務器,那麼問題來了,我總不能一臺一臺的安裝吧,因而想到了PXE方式安裝。html
PXE使用動態主機配置協議(DHCP)和簡單文件傳輸協議(TFTP)經過網絡引導操做系統
PXE安裝過程概覽:linux
DHCP服務器會提供給ESXi主機TFTP服務器IP地址、指向pxelinux.0目錄的指針、目標計算機使用 DHCP 服務器來獲取 IP 地址。ios
TFTP服務器用於網絡引導系統,簡單來講就是傳輸系統安裝文件和pxelinux.0(pxelinux.0二進制文件、配置文件、內核以及其餘文件)centos
HTTP服務器用於存放ks.cfg腳本服務器
Syslinux是一個功能強大的引導加載程序,並且兼容各類介質網絡
PXE配置文件說明:dom
下面詳細說明下步驟:ide
準備工做:oop
操做系統:centos7.0(其餘版本也能夠 )ui
安裝 DHCP TFTP-server syslinux httpd
一、DHCP服務器的安裝配置:
Yum install dhcp
# dhcpd.conf
# Sample configuration file for ISC dhcpd
# option definitions common to all supportednetworks..
default-lease-time 600;
max-lease-time 7200;
# Use this to enble / disable dynamic dns updatesglobally.
ddns-update-style none;
allow booting;
allow bootp;
class "pxeclients" {
match if substring(option vendor-class-identifier, 0,9) = "PXEClient";
next-server 192.168.10.145; //指定TFTP服務器地址,設置服務器從引導文件中安裝。
filename = "pxelinux.0"; //開始啓動文件的名稱,應用於無盤工做站。
}
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.250;
}
二、TFTP服務器的安裝配置:
Yum install xinetd
Yum install tftp
Yum install tftp-server
打開/etc/xinetd.d/tftp disable = no server_args = -s/var/lib/tftpboot/
解壓ESXi.iso鏡像,複製鏡像到tftpboot目錄下的esxi目錄下
mount -o loop -t iso9660 /tmp/VMware-VMvisor-Installer-5.5.0-1331820.x86_64.iso /mnt/iso/
cd /mnt/iso/
cp *.* /var/lib/tftpboot/esxi/
yuminstall syslinux
Syslinux配置:
首先安裝syslinux 進入syslinux目錄 複製/usr/share/syslinux/pxelinux.0
/usr/share/syslinux/menu.c32 到/var/lib/tftpboot/下
建立 PXE 配置文件
mkdir /tftpboot/pxelinux.cfg
將/var/lib/tftpboot/esxi/isolinux.cfg 複製到 pxelinux.cfg目錄下,名稱能夠爲default
( 關於PXE 配置文件的文件名說明:
對於PXE 配置文件的文件名,請選擇如下選項之一:
1 01-mac_address_of_target_ESXi_host。例如,01-23-45-67-89-0a-bc
2 以十六進制表示的目標ESXi 主機IP 地址。
3 default )
cp /var/lib/tftpboot/esxi/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
內容以下(默認目錄爲var/lib/tftpboot,我在KERNEL esxi/mboot.c32
APPEND -cesxi/boot.cfg處寫過絕對路徑,可是結果提示找不到對應文件,因此修改爲了相對路徑):
DEFAULT menu.c32
MENU TITLE ESXi-5.5.0-20140302001-standard Boot Menu
NOHALT 1
PROMPT 0
TIMEOUT 80
LABEL install
KERNEL /esxi/mboot.c32
APPEND -c /esxi/boot.cfg //esxi前面的斜槓不能少
MENU LABELESXi-5.5.0-20140302001-standard ^Installer
LABEL hddboot
LOCALBOOT 0x80
MENU LABEL^Boot from local disk
修改boot.cfg:
cd /var/lib/tftpboot/esxi/
sed -e "s#/##g" -e "3s#^#prefix=/`basename $PWD`/\n#" -i.bak boot.cfg
這裏須要進入boot.cfg看一下,若是prefix=/esxi/修改成prefix=esxi/
修改前:
bootstate=0
title=Loading ESXi installer
kernel=/tboot.b00
kernelopt=runweasel
modules=/b.b00 --- /jumpstrt.gz --- /useropts.gz ---/k.b00 --- /chardevs.b00 --- /a.b00 --- /user.b00 --- /sb.v00 --- /s.v00 ---/ata_pata.v00 --- /ata_pata.v01 --- /ata_pata.v02 --- /ata_pata.v03 --- /ata_pata.v04--- /ata_pata.v05 --- /ata_pata.v06 --- /ata_pata.v07 --- /block_cc.v00 ---/ehci_ehc.v00 --- /elxnet.v00 --- /weaselin.t00 --- /esx_dvfi.v00 ---/xlibs.v00 --- /ima_qla4.v00 --- /ipmi_ipm.v00 --- /ipmi_ipm.v01 ---/ipmi_ipm.v02 --- /lpfc.v00 --- /lsi_mr3.v00 --- /lsi_msgp.v00 ---/misc_cni.v00 --- /misc_dri.v00 --- /mtip32xx.v00 --- /net_be2n.v00 ---/net_bnx2.v00 --- /net_bnx2.v01 --- /net_cnic.v00 --- /net_e100.v00 ---/net_e100.v01 --- /net_enic.v00 --- /net_forc.v00 --- /net_igb.v00 --- /net_ixgb.v00--- /net_mlx4.v00 --- /net_mlx4.v01 --- /net_nx_n.v00 --- /net_tg3.v00 ---/net_vmxn.v00 --- /ohci_usb.v00 --- /qlnative.v00 --- /rste.v00 ---/sata_ahc.v00 --- /sata_ata.v00 --- /sata_sat.v00 --- /sata_sat.v01 ---/sata_sat.v02 --- /sata_sat.v03 --- /sata_sat.v04 --- /scsi_aac.v00 ---/scsi_adp.v00 --- /scsi_aic.v00 --- /scsi_bnx.v00 --- /scsi_bnx.v01 ---/scsi_fni.v00 --- /scsi_hps.v00 --- /scsi_ips.v00 --- /scsi_lpf.v00 ---/scsi_meg.v00 --- /scsi_meg.v01 --- /scsi_meg.v02 --- /scsi_mpt.v00 --- /scsi_mpt.v01--- /scsi_mpt.v02 --- /scsi_qla.v00 --- /scsi_qla.v01 --- /uhci_usb.v00 ---/tools.t00 --- /xorg.v00 --- /imgdb.tgz --- /imgpayld.tgz
build=
updated=0
修改後:
bootstate=0
title=Loading ESXi installer
prefix=esxi/
kernel=tboot.b00
#kernelopt=runweasel
kernelopt=ks=http://192.168.10.145/KS/ks.cfg
modules=b.b00 --- jumpstrt.gz --- useropts.gz ---k.b00 --- chardevs.b00 --- a.b00 --- user.b00 --- sb.v00 --- s.v00 ---ata_pata.v00 --- ata_pata.v01 --- ata_pata.v02 --- ata_pata.v03 --- ata_pata.v04--- ata_pata.v05 --- ata_pata.v06 --- ata_pata.v07 --- block_cc.v00 ---ehci_ehc.v00 --- elxnet.v00 --- weaselin.t00 --- esx_dvfi.v00 --- xlibs.v00 ---ima_qla4.v00 --- ipmi_ipm.v00 --- ipmi_ipm.v01 --- ipmi_ipm.v02 --- lpfc.v00--- lsi_mr3.v00 --- lsi_msgp.v00 --- misc_cni.v00 --- misc_dri.v00 ---mtip32xx.v00 --- net_be2n.v00 --- net_bnx2.v00 --- net_bnx2.v01 ---net_cnic.v00 --- net_e100.v00 --- net_e100.v01 --- net_enic.v00 ---net_forc.v00 --- net_igb.v00 --- net_ixgb.v00 --- net_mlx4.v00 --- net_mlx4.v01--- net_nx_n.v00 --- net_tg3.v00 --- net_vmxn.v00 --- ohci_usb.v00 ---qlnative.v00 --- rste.v00 --- sata_ahc.v00 --- sata_ata.v00 --- sata_sat.v00--- sata_sat.v01 --- sata_sat.v02 --- sata_sat.v03 --- sata_sat.v04 ---scsi_aac.v00 --- scsi_adp.v00 --- scsi_aic.v00 --- scsi_bnx.v00 ---scsi_bnx.v01 --- scsi_fni.v00 --- scsi_hps.v00 --- scsi_ips.v00 ---scsi_lpf.v00 --- scsi_meg.v00 --- scsi_meg.v01 --- scsi_meg.v02 ---scsi_mpt.v00 --- scsi_mpt.v01 --- scsi_mpt.v02 --- scsi_qla.v00 --- scsi_qla.v01--- uhci_usb.v00 --- tools.t00 --- xorg.v00 --- imgdb.tgz --- imgpayld.tgz
build=
updated=0
去掉 / ,添加prefix=esxi/ 指定modules下的文件的前綴。
Httpd服務器的配置:
安裝:yum install httpd
進入默認目錄 /var/www/html/
建立KS目錄,建立ks.cfg文件,內容以下:
# Accept the VMware End User License Agreement
vmaccepteula
# Set the root password for the DCUI and Tech SupportMode
rootpw wxk_123
# Set the keyboard type
keyboard 'United Kingdom'
# Install on the first local disk available on machine
install --firstdisk --overwritevmfs
# Configure a static IP Address on the first networkadapter
network --bootproto=dhcp --device=vmnic0
#Reboot after installation complete
reboot
service xinetd start
Service dhcpd start
service httpd restart
啓動全部服務,完成,在服務器啓動時bios中設置爲從網絡啓動。
以上步驟都是經過實驗完成的確認無誤。
啓動服務器開啓網絡啓動。開始安裝。