Linux下部署PXE結合DHCP、tftp、http服務完成全自動安裝centos7
DHCP配置檔案
/etc/dhcp/dhcpd.conf
其它配置選項:
- filename: 指明引導檔名稱
- next-server:提供引導檔案的伺服器IP地址
示例:
- filename "pxelinux.0"; 引導系統啟動檔案
- next-server 192.168.100.100;
檢查語法
- service dhcpd configtest centos6系統
使用DHCP配合網路完成自動安裝系統
————————————————————————————————
host passacaglia {
hardware ethernet 0:0:c0:5d:bd:95;
filename "vmunix.passacaglia";
server-name "toccata.fugue.com";
}原配置檔案
————————————————————————————————
host passacaglia {
hardware ethernet 0:0:c0:5d:bd:95;
filename "pxelinux.0";
server-name "tftp伺服器中的地址";
} #####修改後的檔案
————————————————————————————————
PXE介紹
Preboot Excution Environment 預啟動執行環境
Intel公司研發
基於Client/Server的網路模式,支援遠端主機通過網路從遠端伺服器下載映像,並由此支援通過網路啟動作業系統
PXE可以引導和安裝Windows,linux等多種作業系統
DHCP工作原理
PXE工作原理
1、Client向PXE Server上的DHCP傳送IP地址請求訊息, DHCP檢測Client是否合法(主要是檢測Client的網絡卡MAC地址),如果合法則返回Client的IP地址,同時將啟動檔案pxelinux.0的位置資訊一併傳送給Client
2、Client向PXE Server上的TFTP傳送獲取pxelinux.0請求訊息, TFTP接收到訊息之後再向Client傳送pxelinux.0大小資訊,試探Client是否滿意,當TFTP收到Client發回的同意大小資訊之後,正式向Client傳送pxelinux.0
3、Client執行接收到的pxelinux.0檔案
4、Client向TFTP Server傳送針對本機的配置資訊檔案(在TFTP 服務的pxelinux.cfg目錄下),TFTP將配置檔案發回Client,繼而Client根據配置檔案執行後續操作。
5、Client向TFTP傳送Linux核心請求資訊, TFTP接收到訊息之後將核心檔案傳送給Client
6、Client向TFTP傳送根檔案請求資訊, TFTP接收到訊息之後返回Linux根檔案系統
7、Client啟動Linux核心
8、Client下載安裝原始檔,讀取自動化安裝指令碼
PXE自動化安裝CentOS 6
1、安裝前準備:關閉防火牆和SELINUX, DHCP伺服器靜態IP
[[email protected] ~]# service iptables stop
[[email protected] ~]# vim /etc/selinux/config | disabled
2、安裝軟體包
yum install httpd tftp-server dhcp syslinux
3、配置檔案共享服務:
systemctl enable httpd
systemctl start httpd
mkdir /var/www/html/centos/7
mount /dev/sr0 /var/www/html/centos/7
4、準備kickstart檔案
/var/www/html/ks/centos7.cfg 注意:許可權
5、配置tftp服務
systemctl enable tftp.socket
systemctl start tftp.socket
6、配置DHCP服務
vim /etc/dhcp/dhcpd.conf
option domain-name "example.com";
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 enable dhcpd
systemctl start dhcpd
PXE自動化安裝CentOS 6
1、安裝前準備:關閉防火牆和SELINUX, DHCP伺服器靜態IP
[[email protected] ~]# service iptables stop
[[email protected] ~]# vim /etc/selinux/config | disabled
第二步:
[[email protected] ~]# yum install dhcp tfrp-server httpd syslinux
第三步:
[[email protected] ~]# cd /var/www/html/
[[email protected]calhost html]# ls
[[email protected] html]# mkdir centos/6-pv
第四步:
[[email protected] html]# mount /dev/sr0 /var/www/html/centos/6/
第五步:
[[email protected] html]#mkdir ks
cp之前做好的應答檔案 ks_centos6.cfg
注意:如果應答檔案使用是在本機作為服務,需要寫本機的url路徑;
url --url=http://192.168.161.128/centos/6
第六步:配置dhcp服務
[[email protected] ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf ###拷貝dhcp中的配置檔案
subnet 192.168.161.0 netmask 255.255.255.0 {
range 192.168.161.10 192.168.161.100;
next-server 192.168.161.128;
filename "pxelinux.0" tftp伺服器工作目錄中需要的pxelinux.0是引導系統啟動用的檔案
option routers 192.168.161.253;
}
第七步:啟動dhcp服伺服器
[[email protected] dhcp]# service dhcpd start
Starting dhcpd: [ OK ]
[[email protected] cd]# service dhcpd status
dhcpd (pid 3822) is running...
第八步:準備tftp伺服器列表中的啟動引導檔案
[[email protected] ~]# cd /var/lib/tftpboot/
第九步:安裝syslinux 包
[[email protected] ~]# yum install syslinux
[[email protected] ~]# yum install syslinux-nonlinux
[[email protected] ~]#cd /var/lib/tftpboot
[[email protected] tftpboot]# rpm -ql syslinux-nonlinux
[[email protected] tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot ###引導檔案
[[email protected] tftpboot]# cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot ###引導選單
[[email protected] tftpboot]# cp /misc/cd/isolinux/{initrd.img,vmlinuz} . ###拷貝光碟中的核心檔案
[[email protected] tftpboot]# vim pxelinux.cfg/default ###修改引導選單檔案
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 linux
menu label Auto Install ^Mini centos 6 system
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.161.128/ks/ks_centos6.cfg
label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
第九步:重啟客戶機選擇網路引導啟動