What's PXE ?
PXE簡單地說就是通過一些服務(wù)和預(yù)先設(shè)置好的文件來實(shí)現(xiàn)操作系統(tǒng)的無人值守安裝。
Why are you installing with PXE ?
在生產(chǎn)環(huán)境中,公司有可能一次性上架數(shù)百臺(tái)甚至數(shù)千臺(tái)服務(wù)器,一臺(tái)一臺(tái)安裝操作系統(tǒng)聽上去是一件很恐怖的事。通過PXE安裝操作系統(tǒng),可以大大減輕運(yùn)維工程師的工作。
How to install with PXE ?
首先,我們先介紹幾個(gè)過程中很重要的幾個(gè)服務(wù)。
- DHCP(Dynamic Host Configuration Protocol , 動(dòng)態(tài)主機(jī)配置協(xié)議)
- TFTP(Trivial File Transfer Protocol,簡單文件傳輸協(xié)議)
- FileServer(yum repository),可以由httpd、ftp服務(wù)提供
DHCP
??DHCP是一個(gè)局域網(wǎng)的網(wǎng)絡(luò)協(xié)議,使用UDP協(xié)議工作,主要有兩個(gè)用途:給內(nèi)部網(wǎng)絡(luò)或網(wǎng)絡(luò)服務(wù)提供商自動(dòng)分配IP地址,給用戶或者內(nèi)部網(wǎng)絡(luò)管理員作為對(duì)所有計(jì)算機(jī)作中央管理的手段。其中UDP 67 和 68 端口,分別作為DHCP Server 和 DHCP Client的服務(wù)端口。在PXE中,DHCP主要負(fù)責(zé)給服務(wù)器分配IP地址,并指明TFTP服務(wù)器的位置。
TFTP
??TFTP是TCP/IP協(xié)議族中的一個(gè)用來在客戶機(jī)與服務(wù)器之間進(jìn)行簡單文件傳輸?shù)膮f(xié)議,提供不復(fù)雜、開銷不大的文件傳輸服務(wù),端口號(hào)為69。在PXE中,TFTP主要提供服務(wù)器啟動(dòng)和引導(dǎo)操作系統(tǒng)的一些重要文件。
FileServer
??主要為PXE環(huán)境提供安裝所需要的yum倉庫,可以使用httpd或者ftp。
PXE環(huán)境的安裝示例:
安裝環(huán)境:
??CentOS 7
所需軟件:
??~]#yum install -y dhcp
??~]#yum install -y tftp-server
??~]#yum install -y syslinux
??~]#yum install -y httpd
~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #復(fù)制一份dhcp的配置文件模板到/etc/dhcp/目錄下
~]#vim /etc/dhcp/dhcpd.conf #配置dhcp配置文件
option domain-name "jrc.com";
option routers 192.168.10.5;
option domain-name-servers 192.168.10.1;
default-lease-time 43200;
max-lease-time 86400;
subnet 192.168.10.0 netmask 255.255.255.0 { #配置作用域
range 192.168.10.101 192.168.10.110;
filename "pxelinux.0"; #提供Filename
next-server 192.168.10.5; #提供Filename的TFTP服務(wù)器地址
}
~]#cp /usr/share/syslinux/pxelinux.0 /var/libtftpboot/ #將syslinux中的引導(dǎo)文件復(fù)制到TFTP共享目錄下
~]#mount -r /dev/cdrom /mnt #將鏡像光盤掛載到/mnt目錄
~]#cp /mnt/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ #復(fù)制系統(tǒng)引導(dǎo)過程中的所需文件
~]#mkdir /var/lib/tftpboot/pxelinux.cfg/
~]#vim /var/lib/tftpboot/pxelinux.cfg/default #創(chuàng)建default文本,配置引導(dǎo)界面中的各選項(xiàng)配置
default menu.c32
prompt 5
timeout 30
MENU TITLE CentOS 7 PXE Menu
LABEL linux_autoinst
MENU LABLE Install CentOS7 x86_64 auto
KERNEL vmlinuz
APPEND initrd=initrd.img inst.repo=http://192.168.10.5/CentOS/x86_64
~]#mkdir /var/www/html/CentOS7/x86_64
~]#umount /mnt #卸載之前掛載的光盤
~]#mount /dev/cdrom /var/www/html/CentOS7/x86_64 #掛載光盤至指定目錄下
~]#vim /var/www/html/CentOS7/centos7.cfg 創(chuàng)建kickstart配置文件
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# X Window System configuration information
xconfig --startxonboot
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=cn --xlayouts='cn'
# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$HDHf2v4i$LMo.xGHfxQDOf8e043C.g/
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="http://192.168.10.5/CentOS7/x86_64" #這是安裝的repository地址.
# System language
lang zh_CN
user --groups=wheel --name=mageedu --
password=$6$1eWrOetY$DfLZgquGiOaNkwpEF4ItMipz.1kpn7Q.s6oXyoW2bALkWesRWHCCACICkJ.2zBXDbwEw0ibR.wxStLI41ZhfF1 --iscrypted --gecos="MageEdu"
~]#systemctl start dhcpd.service #啟動(dòng)dhcp服務(wù)
~]#systemctl start tftp.socket #啟動(dòng)tftp服務(wù)
~]#systemctl start httpd.service #啟動(dòng)httpd服務(wù)
所有的準(zhǔn)備已經(jīng)做好,只要有VM的虛擬機(jī)接入就可以了。
attention:需要將VM上的DHCP給關(guān)掉。