问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Ubuntu PXE无盘服务器部署指南

创作时间:
作者:
@小白创作中心

Ubuntu PXE无盘服务器部署指南

引用
CSDN
1.
https://m.blog.csdn.net/weixin_42090330/article/details/142734417

本文将详细介绍如何在Ubuntu系统上部署PXE无盘服务器。通过本文,读者将学习到如何最小化安装Ubuntu、配置服务器和客户端软件、部署服务器环境、配置客户端以及优化镜像配置文件等步骤。

一、最小化安装Ubuntu,启用root,更新系统,安装软件(Server和Cliect)

二、Server软件安装

  1. 安装HTTP服务器,这里使用的是apache2

    sudo apt-get install apache2
    
  2. 安装DHCP、TFTP服务器,dnsmasq同时实现了DHCP、TFTP、DNS三种服务器

    sudo apt-get install dnsmasq
    

    安装后报53端口冲突:直接忽略该报错就行,后面会通过绑定端口解决

  3. 安装nfs-server

    sudo apt-get install nfs-kernel-server
    

三、Cliect软件安装

  1. 安装nfs-server
    sudo apt-get install nfs-common
    

四、Server环境部署

  1. 准备相关文件
    tftpd的默认服务根目录是/var/ftpd(无文件夹需手动创建)
    说明:文件initrd、vmlinuz由Cliect生成上传,command.lst、crypto.lst、fs.lst和terminal.lst来自 ubuntu安装包,bootx64.efi、grubx64.efi 来自shim.signed 和grub-efi-amd64-signed安装包。

  2. 文件initrd、vmlinuz
    修改/etc/initramfs-tools/initramfs.conf

    BOOT=nfs
    MODULES=netboot
    sudo cp /boot/vmlinuz-`uname -r` ~
    mkinitramfs -o ~/initrd.img-`uname -r`
    scp ~/vmlinuz-`uname -r` 172.16.50.56:/var/ftpd/boot/live-server/vmlinuz
    scp ~/initrd.img-`uname -r` 172.16.50.56:/var/ftpd/boot/live-server/initrd
    
  3. 引导文件bootx64.efi、grubx64.efi

    apt-get download shim.signed
    dpkg -x shim-signed_1.51+15.4-0ubuntu9_amd64.deb shim
    apt-get download grub-efi-amd64-signed
    dpkg -x grub-efi-amd64-signed_1.182~22.04.1+2.06-2ubuntu10_amd64.deb grub
    cp ./grub/usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed /var/ftpd/grubx64.efi
    cp ./shim/usr/lib/shim/shimx64.efi.signed /var/ftpd/grub/bootx64.efi
    

    grub.cfg 自建,内容如下,IP修改为Server IP

  4. 配置 apache2,默认服务根目录是 /var/www/html
    autoinstall 目录存放参数自动配置文件,user-data、meta-data是cloud-init要求的文件名。

  5. 配置NFS

    sudo mkdir /nfsroot 创建客户端镜像文件夹
    vi /etc/exports 新增NFS规则
    /nfsroot *(rw,no_root_squash,async,insecure)
    sudo exportfs -rv 查看NFS已有规则
    
  6. 配置dnsmasq 默认配置文件为/etc/dnsmasq.conf

    # 指定服务的网卡
    interface=ens5f0
    # 绑定端口
    bind-interfaces
    # 设置DHCP分发IP端范围、地址掩码、IP地址有效时间(网段自定义)
    dhcp-range=172.16.50.180,172.16.50.200,255.255.255.0,12h
    # 设置引导程序相对tftp根目录的路径
    dhcp-match=set:efi-x86_64,option:client-arch,7
    dhcp-boot=tag:efi-x86_64,grub/bootx64.efi
    # 打开tftp服务
    enable-tftp
    # 设置tftp根路径
    tftp-root=/var/ftpd
    # 设置日志路径
    log-facility=/var/log/dnsmasq.log
    
    sudo service dnsmasq restart
    

五、Cliect环境部署

  1. 挂载Server /nfsroot目录到/mnt

    mount.nfs4 -onolock 172.16.50.56:/nfsroot /mnt
    
  2. 安装各类软件和脚本文件

  3. 拷贝文件到Server /nfsroot

    sudo cp -ax /. /mnt/.
    sudo cp -ax /dev/. /mnt/dev/.
    

六、优化镜像配置文件

  1. 修改客户端镜像网卡配置为DHCP

    vi /nfsroot/etc/netplan/00-installer-config.yaml
    
  2. 修改fstab

    vi /nfsroot/etc/fstab
    
  3. 禁用grub更新

    vi /nfsroot/etc/kernel/postinst.d/zz-update-grub
    

    注释掉#exec update-grub

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号
Ubuntu PXE无盘服务器部署指南