以下測試都是基於centos 7下的環境
需要安裝的軟件為
nginx 用來下載ks.cfg和系統鏡像文件用的,也可以用ftp服務器來代替
dnsmasq 提供dhcp服務和tftp服務,也可以單獨去安裝
syslinux 提供pxe的啟動文件pxelinux.0
執行以下命令安裝
yum install dnsmasq syslinux -y
然后創建tftp的目錄
mkdir /var/lib/tftp
拷貝pxe的啟動文件pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftp/
掛載centos系統鏡像,Pxe安裝系統需要原系統鏡像中的vmlinuz(引導程序) initrd.img(RAM的Linux) 兩個支持網絡安裝的文件
從iso中拷貝內核鏡像和文件系統鏡像
我們掛載鏡像在 /var/ftp/pub/ 這個目錄下面,啟動需要的文件在鏡像的images目錄下面
cp /var/ftp/pub/images/pxeboot/initrd.img /var/tftp/
cp /var/ftp/pub/images/pxeboot/vmlinuz /var/tftp/
准備默認的菜單配置文件
mkdir /var/lib/tftp/pxelinux.cfg/
vim /var/lib/tftp/pxelinux.cfg/default
內容如下
default linux
prompt 1
timeout 60
display boot.msg
label linux
kernel vmlinuz
append initrd=initrd.img text ks=http://172.17.3.10/ks.cfg ###指定ks.cfg文件下載路徑###
后續需要生成ks.cfg
我們還需要配置下dnsmasq
vim /etc/dnsmasq.conf
配置如下
listen-address=172.17.3.10,127.0.0.1 ##指定監聽IP domain=house.com ##域名 dhcp-range=172.17.3.220,172.17.3.230,1h ##IP地址分配范圍## dhcp-option=3,172.17.3.254 ##網關 dhcp-boot=pxelinux.0 ##配置啟動接口 enable-tftp ##打開tftp功能## tftp-root=/var/lib/tftp ##指定tftp目錄## conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig
以上配置可參考如下圖片,圖片來自網絡

最后我們把ks.cfg也就是kickstart文件放到nginx的目錄下就可以了
最后啟動dnsmasq就可以了。
其實dnsmasq也可以用tftp和dhcp這2個服務來代替
使用tftp和dhcp的方法如下
安裝tftp和dhcp
yum install tftp-server dhcp -y
配置tftp-server
vim /etc/xinetd.d/tftp
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
配置DHCP
vim /etc/dhcp/dhcpd.conf
ddns-update-style interim; ignore client-updates; allow booting; allow bootp; subnet 172.17.3.0 netmask 255.255.255.0 { option routers 172.17.3.254; option subnet-mask 255.255.255.0; option domain-name-servers 172.17.3.254; option time-offset -18000; # Eastern Standard Time range dynamic-bootp 172.17.3.80 172.17.3.88; default-lease-time 21600; max-lease-time 43200; next-server 172.17.3.10; filename "pxelinux.0"; }
其余步驟不變,到這里完結。
