PXE安裝優點,這種安裝系統的方式可以不受光驅,CD光牒以及一些外部裝置的限制,還可以做到無人值守,大大減輕了運維人員的工作負荷,像在一些主機數量龐大的機房進行批量安裝,PXE将是你不二的選擇。
首先給大家一個圖來了解PXE的工作方式

1. pxe自啟動 請求IP,
2. dhcp 根據配置檔案,回應IP 并告知tftp位置 與pxelinux.0的位置
3. 通過pxelinux.0擷取另3個檔案的位置 向Tftp請求下載下傳 pxelinux/default vmlinuz imitrd.img
4. 通過default 得知ks.cfg位置,請求ks.cfg檔案,
5. 通過ks.cfg得知OS存放伺服器位置,
6. 下載下傳OS安裝系統軟體包
是以我們要搭建三個服務
-----以下是搭建dhcp服務(還是一樣的就是多兩個參數)----
yum install dhcp-server -y
vi /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.80.0 netmask 255.255.255.0 {
option routers 192.168.80.111;
option subnet-mask 255.255.255.0;
option time-offset -18000;
range dynamic-bootp 192.168.80.60 192.168.80.100;
next-server 192.168.80.110;//告訴用戶端TFTP的位置
filename "pxelinux.0";//告訴用戶端下載下傳的檔案名
}
systemctl start dhcpd //啟動服務
----以下是搭建ftp伺服器,用來提供CD光牒安裝----
yum install -y vsftpd
mount /dev/cdrom /var/ftp/pub //把CD光牒挂載到匿名使用者的家目錄下去
讓所有人都可以來通路
vi /etc/vsftpd/vsftpd.conf //編輯主配置檔案
anonymous_enable=yes //開啟匿名使用者通路
systemctl start vsftpd //啟動服務
----搭建tftp伺服器,并可以使用systemctl來管理它----
yum install -y tftp-server tftp syslinux-tftpboot //安裝服務
yum -y install xinetd
vi /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 //指定tftp的工作目錄
disable = no //重點是吧yes改成no,讓他啟用
per_source = 11
cps = 100 2
flags = IPv4
}
systemctl start tftp
----------以下是安裝啟動引導菜單相關的軟體包-----
yum -y install syslinux
cp -rf /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
把pxelinux.0放到tftp的家目錄裡去
cp /var/ftp/pub/isolinux/{boot.cat,boot.msg,grub.conf,isolinux.bin,splash.png,TRANS.TBL,vesamenu.c32,ldlinux.c32} /var/lib/tftpboot
把我們挂載CD光牒裡的isolinux裡的鏡像的引導檔案放到tftp的家目錄裡去
cp /var/ftp/pub/images/pxeboot/initrd.img /var/lib/tftpboot/
initrd.img是一個小的映象
cp /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot/
vmlinuz是可引導的、壓縮的核心引導檔案
也一并拷入到tftp的工作目錄下
mkdir /var/lib/tftpboot/pxelinux.cfg
所有的配置檔案都放在啟動伺服器的 /tftpboot/pxelinux.cfg/目錄
cp /var/ftp/pub/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
建立一個名為default的檔案,就是pxelinux.0的預設配置檔案,
vi /var/lib/tftpboot/pxelinux.cfg/default
default linux //修改
prompt 1
timeout 1
display boot.msg
.........
label linux
kernel vmlinuz
append initrd=initrd.img text ks=ftp://192.168.80.110/ks.cfg //後面去掉
這是linux的模闆,我使用的是ftp的方式的
ks放在了ftp伺服器(也就是自己)裡ks.cfg
----------------以下是生成應答檔案的方式(無人值守)--------------
我們裝機完成後會生成一個檔案
在root的家目錄下 anaconda-ks.cfg
裡面有你裝這個伺服器時候的配置
我們裝系統的時候是通路ftp,是以要把這個檔案拷貝到/var/ftp/裡面來
cp ~/anaconda-ks.cfg /var/ftp/ks.cfg (改名為ks.cfg)
因為在default裡面定義了,他就會通路ftp來找這個檔案
chmod +r /var/ftp/ks.cfg (一定要給權限!!!)
----重點改的就是以下-----
# Use CDROM installation media
install //之前本來是cdrom,改成install
url --url="ftp://192.168.80.80/pub" //設定成通過ftp去通路CD光牒,和上面一行在一起
repo --name="AppStream" --baseurl=file:///run/install/repo/AppStream
找到上面這一行一定要删除,因為之前安裝是使用CD光牒安裝,是以裡面記錄了,現在我們使用的是ftp去通路CD光牒,不删除就出現倉庫源設定錯誤(也就是沖突了)
這樣你裸機開機就可以自動裝系統了
(但是這個系統和你目前是一樣的,root密碼和測試賬号都是一樣的)
1. pxe自啟動 請求IP,
2. dhcp 根據配置檔案,回應IP 并告知tftp位置 與pxelinux.0的位置
3. 通過pxelinux.0擷取另3個檔案的位置 向Tftp請求下載下傳 pxelinux/default vmlinuz imitrd.img
4. 通過default 得知ks.cfg位置,請求ks.cfg檔案,
5. 通過ks.cfg得知OS存放伺服器位置,
6. 下載下傳OS安裝系統軟體包