蘭生幽谷,不為莫服而不芳;
君子行義,不為莫知而止休。
Preboot Execution Environment 本機服務器操作系統:CentOS7.9.2207 目標服務器安裝系統:openEuler-24.03-LTS-SP1-everything-x86_64-dvd.iso 虛擬機:Vmware 17.5 遠程工具:MobaXterm 虛擬機配置ip地址為:192.168.100.201 網絡模式:PXE服務器:nat、僅主機 ????????? PXE被部署客戶端:僅主機 需要安裝的服務: dhcp:申請地址進行通信 tftp:提供小文件下載服務(grubaa64.efi、grub.cfg、initrd.img 、vmlinuz) xinetd:超級守護進程,守護tftp httpd:提供安裝配置文佳下載服務 |
部署工作原理
圖1
7.1 PXE服務器網絡及yum庫準備
???????? 網絡略。
???????? yum庫搭建:我下載的是CentOS-7-x86_64-Everything-2207-02.iso光盤文件,選擇搭建本地yum+ali云的方式。
實驗步驟: 步驟0 安裝必要環境 yum install -y dnf dhcp tftp xinetd tftp-server tar net-tools wget curl httpd 步驟1 鏡像并掛載 為dhcp、http、tftp、xinetd服務做準備。 圖2 vmware在虛擬機上準備兩個光驅:一個掛載Centos7(供PXE服務器架設用)和OpenEuler(供部署客戶端數據用) 創建兩個掛載點:media/cts2207?? /var/www/html/OE2403 更改/etc/fstab ## /etc/fstab # Created by anaconda on Thu Apr 27 15:20:40 2023 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root /?????????????????????? xfs???? defaults??????? 0 0 UUID=56a7c8a2-81a2-459e-824a-a75723d01c5b /boot???????????? xfs???? defaults??????? 0 0 /dev/mapper/centos-home /home?????????????????? xfs???? defaults??????? 0 0 /dev/mapper/centos-swap swap??????????????????? swap??? defaults??????? 0 0 /dev/sr0??????????????? /media/cts2207????????? iso9660 defaults??????? 0 0 /dev/sr1??????????????? /var/www/html/OE2403??? iso9660 defaults??????? 0 0 查看掛載情況 圖3 步驟2 配置CentOS-Media.repo 編輯/etc/yum.repos.d/CentOS-Media.repo文件,用編輯器打開/etc/yum.repos.d/CentOS-Media.repo文件,將如下內容復制進CentOS2207-Media.repo文件。添加了最高優先權:
給aliyun的repo文件添加優先權 圖4 步驟3 重新加載yum源 保存退出后,執行yum repolist all,查看并確認已配置。 yum repolist all 步驟1 注意 配置業務網口固定IP,例如ens34,通過配置文件/etc/sysconfig/network-scripts/ifcfg-ens36配置PXE Server對應網口的IP為192.168.100.201,子網掩碼是255.255.255.240。 編輯dhcp配置文件 /etc/dhcp/dhcpd.conf最后面加入下面配置。 vi /etc/dhcp/dhcpd.conf #ens34 subnet 192.168.100.0 netmask 255.255.255.0{ ??????? range 192.168.100.225??? 192.168.100.239; ??????? default-lease-time????? 3600; ??????? filename "uefi/grubx64.efi"; ??????? next-server???? 192.168.100.201; } 設置DHCP IP(根據實際情況設置ip范圍)范圍為192.168.100.225 ~ 192.168.1.239 next server地址192.168.100.201為本地虛擬機的ip地址 filename指定grubx64.efi作為efi引導文件。 步驟1 配置tftp服務配置 編輯/etc/xinetd.d/tftp 文件,配置如下。 注意:只修改disable為no 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 ??????????? disable???????????????????????????????????????????? = no ??????????? per_source???????????????????????????????????? = 11 ??????????? cps?????????????????????????????????????????????????? = 100 2 ??????????? flags???????????????????????????????????????????????? = IPv4 } 4. 啟動httpd,查看http服務是否能正常顯示安裝光盤內容 5. 準備ks.cfg配置文件 步驟1 創建ks文件夾 創建ks文件夾存放安裝配置 mkdir -p /var/www/html/ks 步驟2 按要求需求準備ks.cfg文件
步驟3 上傳ks.cfg cp ?~/anaconda-ks.cfg ?/var/www/html/ks/ 上傳ks.cfg到/var/www/html/ks,給它777權限 chmod 777 ks.cfg ks.cfg文件是linux系統安裝成功后生成在/root下面的anaconda-ks.cfg,里面記錄著系統安裝的設置如安裝源、root用戶密碼、時區、鍵盤信息、系統語言、字體、分區配置等 使用瀏覽器訪問http服務地址,能查看到內容即可 http://192.168.100.201/ks/ks.cfg 圖6 【備注】 ? ? ? ? ①不要圖形界面,太耗資源,選用文本方式。 ??????? ②http提供安裝文件的url ??????? ③root口令明文(簡單,但不安全) ??????? ④重啟生效 6. 防火墻和SELinux
7. 配置支持 PXE 啟動(注意ip修改) 步驟1 配置啟動文件 進入在tftpboot目錄下創建一個uefi目錄,執行以下命令。 cd /var/lib/tftpboot/ && mkdir uefi cp /var/www/html/OE2403/EFI/BOOT/grubx64.efi? ./uefi/ 步驟3 拷貝安裝源文件到uefi 復制vmlinuz和initrd.img到/var/lib/tftpboot/uefi/目錄下,執行以下命令。 cp /var/www/html/OE2403/images/pxeboot/vmlinuz? ./ cp /var/www/html/OE2403/images/pxeboot/ initrd.img? ./ 執行以下命令。 cd /var/lib/tftpboot/uefi/ && vi grub.cfg 編輯內容如下
【備注】第1行?? 停止5秒 ??????? 第2行?? 菜單顯示內容 ??????? 第3行?? 通過UEFI模式啟動,并嘗試加載Linux內核(vmlinuz)完成安裝流程 ???????????????? 通過dhcp獲得ip ???????????????? inst.ks指定Kickstart配置文件的路徑 ??????? 第4行?? 啟動畫面分辨率 ??????? 第5行?? 存放必要的驅動模塊,內核協同完成硬件初始化和安裝環境準備。 步驟5 配置tftpboot及子目錄權限777,執行以下命令。 chmod -R 777 /var/lib/tftpboot/ systemctl enable dhcpd tftp xinetd httpd systemctl restart dhcpd tftp xinetd httpd 驗證是否正常自動安裝操作系統 步驟1 創建新的虛擬機(不展示過程) 圖7 VMware的默認引導方式是Bios,需要修改為EFI 1)編輯虛擬機設置 圖7 圖8 3)啟動虛擬機,正常會出現下圖EFI引導 圖9 圖10 圖11 5)加載內核加載驅動 圖12 圖13 |