之前搭建了PXE自動化安裝操作系統,現搭建一個PXE無盤工作站,跟PXE安裝系統類似,只是PXE安裝操作系統是客戶端通過訪問http或者ftp的方式,下載安裝所需要的系統文件,而PXE無盤工作站是提供已安裝好的操作系統文件,用掛載的方式,把整個操作系統掛載到遠程服務器上,讓其運行掛載盤上的操作系統。
環境介紹:
1、一台1c2g的VMware虛擬機,操作系統為CentOS7.9,IP地址為192.168.1.11。
2、需要准備好已安裝好的系統文件,這里就拿CentOS7.9版本來舉例子。
3、需要搭建DHCP、TFTP、NFS等服務。
4、准備好系統內核文件vmlinuz(系統鏡像里有)、鏡像文件initrd.img(系統鏡像里有)、pxe引導文件pxelinux.0(安裝syslinux,在/usr/share/syslinux下)。
5、這里只介紹單個工作站,如果你需要多個工作站,那么你可以配置多個nfs目錄,把每個系統隔離開來。
環境搭建
1、安裝DHCP和TFTP,這里不多做介紹,請參考PXE裝機服務搭建(安裝CentOS7),配置、文件存放位置都一樣,這里配置tftp服務的根目錄為/var/lib/tftpboot/netboot。
1.1、把vmlinuz、initrd.img、pxelinux.0文件復制到/var/lib/tftpboot/netboot下。
1.2、創建啟動菜單
mkdir /var/lib/tftpboot/netboot/pxelinux.cfg cat <<EOF > /var/lib/tftpboot/netboot/pxelinux.cfg/default default auto prompt 0 label auto kernel vmlinuz append initrd=initrd.img root=nfs:192.168.1.11:/nfs selinux=0 ip=dhcp rw nomodeset vga=0x0314 EOF
參數介紹:
prompt 0 表示工作站立即啟動,1 表示工作站等待選擇
kernel 指定內核文件
initrd 指定鏡像文件
root 指定nfs路徑
selinux 設置selinux
rw 設置工作站系統為可讀寫
nomodeset 這個參數是配合后面的vga=參數一起使用,設置分辨率
vga 這個參數值是設置分辨率,0x 表示十六進制,0314 表示800*600 16 位色;若無特殊需求,建議刪除這2個參數
2、准備nfs服務的共享目錄。
mkdir /netboot
3、安裝、配置、啟動nfs,並設置為開機啟動。
yum -y install nfs-utils vim /etc/exports #加入以下配置,其意思是讓192.168.1.0/24這個網段能訪問/nfs這個目錄 /netboot 192.168.1.0/24(rw,async,no_root_squash) systemctl start nfs systemctl enable nfs
4、把系統復制到/nfs目錄下,用--exclude參數去除不需要的目錄。
rsync -a --exclude='/proc' --exclude='/sys' --exclude='/tmp' --exclude='/var/tmp' --exclude='/etc/mtab' --exclude='/nfs' --exclude='/var/lib/tftpboot' /* /netboot
5、創建之前去除的目錄,保證系統結構完整性,如果你有其他的目錄是系統默認不需要的,可以不用創建。
cd /netboot
mkdir proc sys tmp var/tmp
6、配置系統啟動掛載項,刪掉所有本地的掛載,配置nfs掛載。
vim /netboot/etc/fstab #刪除其他掛載,配置上以下掛載信息 192.168.1.11:/netboot / nfs defaults 0 0
7、刪除ifcfg-lo以外的網卡配置文件,可以先配置好你所需要的系統的基本信息,比如主機名,selinux的開關情況等,這類不多做介紹。
rm -f /netboot/etc/sysconfig/network-scripts/ifcfg-eth*
8、到這里配置就完成了,可以啟動無盤服務器了,在啟動無盤服務器前,確認一下問題。
8.1、確保dhcp、tftp、nfs的服務為啟動狀態。
8.2、防火牆為關閉狀態。
8.3、網段中不存在其他dhcp服務。