使用PXE安裝CentOS 7.2
1.環境
本文使用VMware 虛擬機器進行實驗。
點擊VMware--編輯--虛擬網路編輯器,建立VMnet15,選擇僅主機模式,取消勾選DHCP服務(因為這裡使用自己的DHCP服務)。我這裡配好後是192.168.93.0/24網路。
CentOS 7.2系統
2張網卡,
網卡eno16777736 ,使用NAT模式(用於yum安裝軟體),DHCP擷取IP
網卡eno50332184 ,串連至VMnet15網路,配置靜態IP:192.168.93.10
2GB 記憶體(太小不行)
1張網卡,
網卡eno16777736 ,串連至VMnet15網路
2.需求
- SYSLINUX,提供pxelinux.0
- DHCP-SERVER,為客戶機提供IP
- TFTP-SERVER,為客戶機提供簡單檔案傳輸(如傳輸pxelinux.0等)
- VSFTP-SERVER或APACHE-SERVER,提供repo的系統檔案服務
- CentOS 7.2(或7.4都行)安裝光碟片,如CentOS-7-x86_64-Everything-1511.iso
3.配置
在PXE伺服器上,
3.1預配置
臨時關閉防火牆
systemctl stop firewalld
臨時關閉SELinux
setenforce 0
安裝各個伺服器與依賴庫
yum -y install tftp-server vsftpd syslinux dhcp xinetd
掛載CentOS 7.2安裝光碟片(需要先將光碟片串連至PXE伺服器虛擬機器上)
mount -t iso9660 -o loop /dev/cdrom /mnt
3.2配置VSFTP
為了vsftp伺服器使用光碟片,把/mnt再綁定到/var/ftp/centos(因為vsftp不允許軟串連目錄)
mkdir -p /var/ftp/centosmount --bind /mnt/ /var/ftp/centos
3.3配置TFTP3.3.1配置pxe開機檔案
建立tftp啟動目錄
mkdir -p /tftpboot/pxelinux.cfg
把光碟片中isolinux裡面的檔案都複製到tftp啟動目錄中
cd /mnt/isolinuxcp -a * /tftpboot/
複製pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /tftpboot/
將tftp啟動目錄中的isolinux.cfg(剛從光碟片中複製過來的)改名default,並移動至pxelinux.cft目錄下
cd /tftpboot
mv isolinux.cfg pxelinux.cfg/default
編輯default檔案,增加我們設定的PXE啟動項
vi pxelinux.cfg/default
在一堆label 上面添加如下內容
label linux-nideymenu label ^Install CentOS 7 nideykernel vmlinuzappend initrd=initrd.img inst.repo=ftp://192.168.93.10/centos quiet
label另起一個名字,menu就是客戶機啟動時看到的安裝選項名
注意,如果不使用kickstart自動部署,則append後面第二個參數應該用inst.repo,而不是inst.stage2(這種情況客戶機啟動時會卡在擷取安裝源步驟)
URL使用前面配置的vsftp伺服器(也可以使用Apache-server的http服務,或者搭建nfs也行)
append參數使用inst.stage2則安裝時會卡在這裡
append參數使用inst.repo則安裝時正常擷取安裝源(圖是另截的,見諒...)
3.3.2配置tftp-server
tftp伺服器依附於xinetd服務下,
vim /etc/xinetd.d/tftp
server_args 設定我們剛才建立的tftp啟動目錄,並啟用tftp
service tftp{socket_type = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -s /tftpbootdisable = noper_source = 11cps = 100 2flags = IPv4}
3.4配置DHCP
vim /etc/dhcp/dhcpd.conf
設定允許引導啟動,
192.168.93.0子網,掩碼255.255.255.0,位址集區192.168.93.240~192.168.93.250
引導開機檔案名為pxelinux.0(syslinux提供的,在/tftpboot目錄下)
next-server設定為PXE伺服器IP,也就是本機:192.168.93.10
因為這裡只在一個區域網路下安裝系統,網關和DNS其實都不用設定。
ddns-update-style interim;ignore client-updates;allow booting;allow bootp;subnet 192.168.93.0 netmask 255.255.255.0{# option routers 192.168.93.1;# option domain-name "s.un";# option domain-name-servers 192.168.93.1;option subnet-mask 255.255.255.0;option time-offset -18000;default-lease-time 21600;max-lease-time 43200;range dynamic-bootp 192.168.93.240 192.168.93.250;filename "pxelinux.0";next-server 192.168.93.10;}
3.5啟動服務
systemctl start xinetdsystemctl start dhcpdsystemctl start vsftpd
4.安裝
在PXE客戶機上,
進入BISO,設定網路啟動為第一項。
開機,DHCP擷取,IP,載入啟動,進入安裝介面,選擇安裝就好了。
】
CentOS7.2下PXE+kickstart自動化安裝系統
自動化營運之-PXE實現系統批量自動安裝
Ubuntu 16.04+Kickstart+PXE安裝系統