pxe_server 批量安裝 linux系統 和windows系統


PXE批量安裝CentOS7操作系統


批量部署前首先應該擁有一台部署完成的系統,也就是Server端。
PXE_Server部署DHCP、TFTP、Xinetd、Kickstart、(HTTP/FTP/NFS任選其一,本次部署采用FTP),用來提供安裝所需要的系統文件以及所要安裝的軟件。
關閉Firewalld/SElinux(為實驗方便,減少麻煩,生產環境不推薦)

PXE批量部署原理:

 

  1. PXE Client 從自己的PXE網卡啟動,向本網絡中的DHCP服務器請求IP;
  2. DHCP 服務器返回分配給客戶機的IP 以及PXE文件的放置位置
    (該文件一般是放在一台TFTP服務器上);
  3. PXE Client 向本網絡中的TFTP服務器索取pxelinux.0 文件
    (在 PXE Client 的 ROM 中,已經存在 TFTP Client);
  4. PXE Client 取得pxelinux.0 文件后之執行該文件;
  5. 根據pxelinux.0 的執行結果,通過TFTP服務器加載內核和文件系統 ;
  6. 進入安裝畫面, 此時可以通過選擇HTTP、FTP、NFS 方式之一進行安裝;

1、DHCP服務器:為 PXE-client 分配 IP ,獲得安裝程序文件位置
2、TFTP服務器:傳輸安裝文件、內核、菜單文件等給 PXE-client
3、Xinetd: TFTP服務超級守護進程, 用於喚醒TFTP服務;
4、Kickstart:生成的ks.cfg配置文件 本文沒有介紹Kickstart 安裝
5、HTTP/NFS/FTP 服務中的任意一種,用於傳送安裝源文件給 PXE-client
;:

安裝DHCP服務

yum install dhcp -y

 

修改配置文件

#vim /etc/dhcp/dhcpd.conf

 

#———可用最簡配置——————-

網絡和子網掩碼(根據自己實際情況編寫)

subnet 192.168.2.0 netmask 255.255.255.0 { 
  option routers 192.168.2.11;     
  range 192.168.2.3 192.168.2.25;   # 指定DHCP地址池
  next-server 192.168.2.11; # 指定tftp服務器地址
  filename "pxelinux.0"; #指定pxelinux.0文件
}

 

如果是在多網卡的情況下需要指定某塊網卡啟動DHCP服務,復制文件,修改配置文件,重新注冊服務

cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/
vi /etc/systemd/system/dhcpd.service
ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid <your_interface_name(s)>(我要使用的網卡是ens192)
systemctl --system daemon-reload

 

啟動服務

systemctl start dhcpd.service
systemctl enable dhcpd.service

 

安裝TFTP服務(無需認證,小文件傳輸)
安裝xinetd、tftp-server和syslinux服務

#syslinux 會在 /usr/share/syslinux/pxelinux.0 生成pxelinux.0文件 ,需要手動復制到/var/lib/tftpboot/ 目錄中,后面詳細介紹。
syslinux文件解析

        isolinux.bin       注:光盤鏡像引導文件   
        isolinux.cfg       注:啟動菜單的配置文件;自編輯   
        memdisk          注:引導IMG鏡像的文件   
        vesamenu.c32(或menu.c32)  注:官方提供的二種窗口模塊   
        chain.c32         注:指定分區啟動  如:chain.c32 hd0,1 (或chain.c32 hd0,2)   
        reboot.c32       注:重新啟動計算機的文件   
        m16-640x640-syslinux.jpg(或syslinux_splash.jpg)  注:自己可以定義新的圖片作為背景,圖圖片格式 640*480  jpg/png)

yum install xinetd -y
yum install tftp-server syslinux -y

 

配置xinetd,由xinetd管理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  #默認disable是yes的,把它改為no即可
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

 

啟動服務

systemctl enable tftp
systemctl enable xinetd
systemctl start tftp
systemctl start xinetd

 

安裝FTP服務

yum install vsftp -y

 

啟動服務

systemctl enable vsftpd.service && systemctl start vsftpd.service

 

復制內核文件
內核文件、虛擬根文件以及菜單文件,我們都是通過tftp服務來提供的,由於系統及版本的不同,對於一個比較復制機群來說,我們需要准備不同系統,不同版本的內核文件,initrd.img文件。菜單文件只需要一份即可。

掛載光驅

mount /dev/cdrom /mnt  #掛載
# cp /mnt/images/pxeboot/vmlinuz     /var/lib/tftpboot/     #vmlinuz文件,在鏡像文件images/pxeboot/目錄中,
vmlinuz是可引導的、壓縮的內核文件,vmlinuz是vmlinux的壓縮文件。是可執行的Linux內核
# cp /mnt/images/pxeboot/initrd.img  /var/lib/tftpboot/     #initrd.img文件,在鏡像文件images/pxeboot/目錄中,
initrd是“initial ram disk”的簡寫。initrd用來臨時的引導硬件到實際內核vmlinuz能夠接管並繼續引導的狀態

 

復制pxelinux.0文件到tftp目錄下

# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

 

復制一個菜單功能文件到/var/lib/tftpboot/

#cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/

 

創建pxelinux.cfg/default 文件

mkdir -p /var/lib/tftpboot/pxelinux.cfg/default

 

編寫default文件

default vesamenu.c32
menu tabmsg XiaoNan NIUBI
menu title XiaoNan auto-install system
timeout 300
label install Centos7
        kernel vmlinuz
        append initrd=initrd.img inst.repo=ftp://192.168.2.11/centos7

 

啟動客戶端進行安裝


大功告成!

當然這還需要人工點擊開始安裝並配置才能安裝,如想實現無人值守安裝參照小白都能玩轉的COBBLER無人值守安裝https://blog.csdn.net/qq_37242520/article/details/100545758
或者搜索kickstart實現無人值守安裝!

 

PXE批量安裝windows操作系統


在之前的環境下我們需要samba來共享windows安裝文件
安裝samba相關包

 

#yum install samba samba-client cifs-utils -y

 

創建共享的文件夾

mkdir /smbshare/windows10
useradd xiaonan
smbpasswd -a xiaonan
chown xiaonan:xiaonan /smbshare/

 

修改samba配置文件,修改以下內容
v

im /etc/samba/smb.conf

[global]
        workgroup = SAMBA
        security = user
        netbios name = pxe
        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
[install]
         comment = Installation Media
         path = /smbshare
         public = yes
         writable = no
         printable = no
         browseable = yes

 

啟動samba服務

systemctl start smb nmb && systemctl enable smb nmb

 

復制WIN10鏡像文件到samba共享目錄

cp -rf win10.iso /smbshare/windows10/

 

創建windows10PE
我們需要windows ADK去制作自己的winpe,訪問微軟官方網站https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install下載並安裝
我這里下載的是下面兩個軟件,安裝過程下一步就好。

Download the Windows ADK for Windows 10, version 1903
Download the Windows PE add-on for the ADK

安裝完成之后以管理員身份運行Deployment and Imaging Tools Environment

copype amd64 c:\winpe

 

掛載Boot.wim到臨時目錄

Dism /Mount-Image /ImageFile:"c:\winpe\media\sources\boot.wim" /index:1 /MountDir:"c:\winpe\mount"

 

修改啟動腳本

notepad c:\winpe\mount\Windows\System32\Startnet.cmd

 

添加以下內容,注意字符之間的空格

wpeinit 
net use z: \\pxe\install\windows10 /user:xiaonan xiaonan
z:\setup.exe

 

卸載並保存boot.vim

Dism /Unmount-Image /MountDir:"c:\winpe\mount" /commit

 

生成win10pe.iso

MakeWinPEMedia /ISO c:\winpe c:\win10pe.iso

 

把生成的win10pe.iso復制到/var/lib/tftpboot/winpe/下
添加win10選項到PXE啟動菜單

#vim default

label Install MS Windows 10
menu label Install MS Windows 10
        kernel memdisk
        initrd /winpe/win10pe.iso
append iso raw

 

大功告成!啟動客戶端!!!!



如果想讓WINDOWS系統無人值守安裝可以創建無人值守自動應答文件AutoUnattend.xml
詳情可參考https://blog.csdn.net/zuoliang365/article/details/86592025


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM