一、PXE:預引導加載環境
1.PXE
Preboot ExecuteEnvironment:支持工作站通過網絡從遠端服務器下載映像,并由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicasttrivial file transfer protocol)協議下載一個啟動軟件包到本機內存中執行,由這個啟動軟件包完成Client端自動化基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。PXE可以引導多種操作系統,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux等。
2.基于PXE自動安裝系統所需組件
(1)DHCP服務器
DHCP動態主機配置協議會在預引導加載操作系統的時候動態自動分配一個IP地址,同時完成網絡加載的主機的設定;需要在其地址池subnet配置中配置一下參數:
(2)tftp-server服務
TFTP:trivialfile transfer protocol,簡單文件傳輸協議服務器?;?/span>UDP文件傳輸,一般該服務器僅用于PXE預引導加載環境。用于提供預引導加載文件pxelinux.0的讀取。相關程序包:Server:tftp-server;Client: tftp,監聽端口69/udp
服務啟動運行方式:
CentOS6:
# chkconfig tftp on
# service xinetd restart
CentOS7:
# systemctl start tftp.socket
(3)syslinux包
提供適用于不同的操作系統的各種bootloader文件,支持DOSFATfilesystems、Linux ext2/ext3 filesystems(EXTLINUX)、 PXEnetwork boots(PXELINUX)、ISO 9660 CD-ROMs (ISOLINUX);基于網卡引導的bootloader由其提供文件Wie/usr/share/syslinux/pxelinux.0
(4) file server(yum repository)yum倉庫
基于網絡引導加載文件的時候會根據腳本,引導到指定的路徑加載yum倉庫進行安裝程序或者鏡像文件,存儲此yum倉庫的位置稱為file server。該file server可以通過http對外通過程序包或者鏡像,實現引導之后的安裝操作。
file server可以creatrepo命令手動創建;可以直接復制或者掛載光盤的完整鏡像作為通過程序包的文件存儲源服務
二、DHCP服務器搭建
1.DHCP協議
Dynamic Host Configuration Protocol:動態主機配置協議,局域網的網絡協議,使用UDP協議工作。
(1)用途
給內部網絡或網絡服務供應商自動分配IP地址;給用戶或者內部網絡管理員作為對所有計算機作中央管理的手段
(2)實現機制
rarp:反向地址解析,實現MAC解析到分配IP,
lease(地址租約)機制:動態地址分配時候按照有效期分配IP地址,連續使用需要續租
(3)C/S架構
Server:需要配置一個靜態地址,能夠提供地址池(可用地址列表);監聽67/UDP端口
Client:獲取動態分配的地址,監聽68/UDP端口
2.DHCP交互工作流程
(1) 常規獲取過程
DHCP獲取的過程是通過廣播方式進行。Client發出dhcp_discover發現報文,Server響應dhcp_offer報文;Client再次發出dhcp_request請求確認報文,Server作出dhcp_ack確認確認。
(2) lease續租工作流程
DHCP引入了lease租約概念,當達到可用時間50%進行續租(單波通信),發出dhcp_request報文。若DHCP服務器沒響應,則在總時長限制75%、87.5%等多次發起請求,DHCP服務器都未響應則主動放棄地址。若DHCP收到服務響應,則地址可使用時間延長到所設置時間的
(3) DHCP服務端故障
若DHCP地址池發生該變無法請求到:dhcp會返回dhcp_nak拒絕;客戶端會重新發出dhcp_discover發現報文請求分配地址
3.dhcp- relay
DHCP服務器工作生效范圍:當前物理網絡(局域網絡)。當在兩個局域網用一臺DHCP服務器提供不同網段地址分配時候就要使用到dhcp relay(dhcp中繼代理)概念。
注意:
1) 必須保證有本地網段的地址池,先為自己所在的局域網段提供地址
2) 路由器:單播server通信,廣播client;路由器將自己當做DHCP服務器的代理
4.DHCP服務器安裝配置
(1)RPM包安裝dhcp程序
[root@localhost~]# yum install -y dhcp
注意:
[root@localhost ~]# rpm -ql dhcp # 查看dhcp程序生成的相關文件
1) dhcp程序提供三個服務相關,不能同時啟動,分別對應ipv4地址分配、ipv6地址分配、dhcrelay代理中繼服務
2) dhcpd.service和dhcp6.service對應的地址信息庫,,用于動態IP分配歷史記錄
(2) 配置文件
/etc/dhcp/dhcpd.conf是iPv4_dhcp服務的主配置文件位置,提供了模板配置/usr/share/doc/dhcp*/dhcpd.conf.example,需要自己復制模板文件覆蓋當前文件,在修改配置信息。
[root@localhost ~]# cp/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
1)基本配置
2)地址池配置
實例:
subnet 10.254.239.0 netmask 255.255.255.224{
range 10.254.239.10 10.254.239.20;
option routers rtr-239-0-1.example.org,rtr-239-0-2.example.org;
}
擴展:pxe預引導加載相關配置
3)host 配置主機固定分配IP
host NAME { … }
實例:
host xuding {
hardware ethernet 0:0:c0:5d:bd:95;
fixed-address 172.16.210.1;
}
4) class分類是識別制定地址池
(3)手動測試DHCP獲取命令:dhclient
dhclient -d:強制顯示在前臺,獲得地址分配過程
三、基于PXE自動安裝系統服務配置(CentOS 7)
說明:演示搭建環境為CentOS 7系統,自動化安裝的系統鏡像為CentOS 7
1.安裝相關所需程序包
[root@localhost ~]# yuminstall httpd
[root@localhost ~]# yuminstall dhcp
[root@localhost ~]# yuminstallsyslinux
[root@localhost ~]# yuminstall tftp-sserver
2.準備file server(yumrepository):yum倉庫
此處提供的yum倉庫是通過http的web服務對Client客戶端通過程序包
[root@localhost ~]# mkdir /var/www/html/centos7 # 創建安裝程序文件放置位置
[root@localhost ~]# mount –binf/media/cdrom /var/www/html/centos7 # 通過目錄綁定的方式掛載光盤鏡像
[root@localhost ~]# cp /tmp/centos7.cfg /var/www/html/centos7 # 將配置好的kickstart文件放置到指定位置
注意:
1) yum倉庫可以將光盤內的鏡像全部復制到/var/www/html/centos7目錄下,也可以自己creatrepo創建yum的依賴關系
2) kickstart文件:anaconda(CentOS系列基于內核啟動來實現定制自動安裝操作)的配置文件,其可以通過修改/root目錄下模板樣式anaconda-ks.cfg來實現定制。在此配置文件中需要指明"url –url=http://172.16.0.1/"和需要安裝的程序組。
3.配置DHCP
在/etc/dhcp/dhcpd.conf文件中添加如下配置:
option domain-name"xuding.com";
option domain-anem-servers172.16.0.1;
default-lease-time 3600;
max-lease-time 7200;
subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.200.101 172.16.200.110;
option route 17216.100.6;
filename "pxelinux.0";
next-server 172.16.100.6;
}
注意:
option domain-anem-servers的范圍大于option route所配置的路由范圍,會先找option route 所提供的路由
4.提供預引導加載等相關文件
(1)將syslinux程序包所提供的引導加載程序的庫文件中的網絡引導程序pxelinux.0復制到tftp對外提供服務的路
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
(2) 將鏡像文件中的部分文件復制到tftp服務提供使用
[root@localhost ~]# cp /media/cdrom/images/pxelinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
[root@localhost ~]# cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot/
5.tftp服務下創建程序文件提供pxelinux.cfg的配置
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg/
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
配置文件內容類似如下:
menu.c32提供文本圖形化選擇界面,顯示提手時間、超時時長、全局菜單、單個菜單、指明加載的內核、安裝時候yum倉庫位置、自動安裝時所使用的ks配置
default menu.c32
prompt 5
timeout 30
MENU TITLE CentOS 7 PXE Menu
LABEL linux
MENU LABELInstall CentOS 7 x86_64
KERNEL vmlinuz
APPENDinitrd=initrd.img inst.repo=http://172.16.100.6/centos7ks=http://172.16.100.6/centos7.cfg
6.啟動各服務
[root@localhost ~]# systemctl start httpd.service
[root@localhost ~]# systemctl start dhcpd.service
[root@localhost ~]# systemctl start tftp.socket
此時,基于PXE的網絡引導已經完成,可以為與該主機在同一網段內分配IP地址池內的IP,并進行自動化引導操作
注意:
CentOS 6和CentOS 7的配置有部分不同,參考如下:
cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp/media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}/var/lib/tftpboot/
mkdir/var/lib/tftpboot/pxelinux.cfg/
cp/media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
Nicolo:http://xuding.blog.51cto.com/4890434/1744751
原創文章,作者:Nicolo,如若轉載,請注明出處:http://www.www58058.com/15731