1. 程式人生 > >Linux下部署PXE結合DHCP、tftp、http服務完成全自動安裝centos7

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

第九步:重啟客戶機選擇網路引導啟動

*************************************安裝完成*******************************