Linux系统管理与编程16番外篇:PXE自动化安装部署OpenEuler24.03LTS
兰生幽谷,不为莫服而不芳;
君子行义,不为莫知而止休。
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 |