PXE+Kickstart自动化安装RHEL7.9系统

📅 2026/7/22 16:36:47
PXE+Kickstart自动化安装RHEL7.9系统
一、环境准备1.rhel7 主机2.关闭防火墙和 selinux3.开启主机图形 init 5 开启图形有图形界面可不做# 最小化安装可以yum安装以下图形界面 yum group install Server with GUI -y # 开启图形界面 init 54.配置网络可用5.关闭 VMware dhcp 功能二、配置 Kickstart2.1.安装 Kickstart 工具下载安装 Kickstart注意RHEL7.9后 就没有 system-config-kickstart 工具yum install system-config-kickstart -y启动 Kickstartsystem-config-kickstart修改 ks.cfg 文件添加上需要安装的软件vim ks.cfg2.2.HTTP 搭建安装源安装 httpdyum install httpd -y查看 /dev/sr0 挂载的目录把目录链接到 /var/www/html/ 下[rootrhel-7-server ~]# df Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 914520 0 914520 0% /dev tmpfs 931512 0 931512 0% /dev/shm tmpfs 931512 10536 920976 2% /run tmpfs 931512 0 931512 0% /sys/fs/cgroup /dev/mapper/rhel-root 14665728 4925284 9740444 34% / /dev/sda1 2086912 187108 1899804 9% /boot /dev/sr0 4420474 4420474 0 100% /mnt tmpfs 186304 24 186280 1% /run/user/0 [rootrhel-7-server ~]# ln -s /mnt/ /var/www/html/ [rootrhel-7-server ~]# cd /var/www/html [rootrhel-7-server html]# ls mnt把 ks.cfg 文件通过 httpd 共享到网络以供使用[rootrhel-7-server ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Music Public Videos Desktop Downloads ks.cfg Pictures Templates [rootrhel-7-server ~]# vim ks.cfg [rootrhel-7-server ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Music Public Videos Desktop Downloads ks.cfg Pictures Templates [rootrhel-7-server ~]# mv ks.cfg /var/www/html/ [rootrhel-7-server ~]# cd /var/www/html [rootrhel-7-server html]# ls ks.cfg mnt开启 httpdsystemctl enable --now httpd通过浏览器查看是否搭建好安装源三、搭建 DHCP 服务器IP 地址分配为客户端自动分配 IP 地址使无盘或未安装系统的设备能接入网络。PXE 引导参数传递通过 DHCP 协议的 next-server 和 filename 选项告知客户端next-serverTFTP 服务器的 IP 地址。filenamePXE 引导文件如 pxelinux.0在 TFTP 服务器上的路径。下载安装DHCPyum install dhcp -y复制 DHCP 配置文件模板到 /etc/dhcp/dhcp.conf\cp -f /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf编辑DHCP配置文件vim /etc/dhcp/dhcpd.conf option domain-name haha.org; option domain-name-servers 223.5.5.5; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.67.0 netmask 255.255.255.0 { range 192.168.67.20 192.168.67.30; option routers 192.168.67.2; next-server 192.168.67.156; filename pxelinux.0; }开启DHCPsystemctl enable --now dhcpd四、搭建 TFTP 服务器4.1.THTP 简介TFTP作用传输引导文件通过简单的无认证文件传输协议TFTP向客户端提供以下文件PXE 引导文件如 pxelinux.0由 Syslinux 提供。内核与初始化镜像如 vmlinuzLinux 内核和 initrd.img初始化内存盘。配置文件如 pxelinux.cfg/default启动菜单配置文件。典型文件结构/var/lib/tftpboot/ ├── pxelinux.0 # Syslinux 提供的 PXE 引导程序 ├── vmlinuz # Linux 内核 ├── initrd.img # 初始化内存镜像 └── pxelinux.cfg/ └── default # 启动菜单配置文件下载安装TFTPyum install tftp-server -y4.2.Syslinux 简介Syslinux作用提供 PXE 引导程序生成 pxelinux.0 文件作为 PXE 启动的引导加载程序Bootloader。配置启动菜单通过 pxelinux.cfg/default 文件定义启动选项例如加载内核和初始化镜像。指定 Kickstart 自动安装配置文件ks.cfg的路径。下载安装Syslinuxyum install syslinux -y4.3.搭建服务器复制 ISO 文件到 TFTP 目录从 Syslinux 复制 PXE 引导文件cp /mnt/isolinux/* /var/lib/tftpboot/ cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/创建 TFTP 根目录复制启动菜单文件cd /var/lib/tftpboot/ mkdir pxelinux.cfg cp isolinux.cfg pxelinux.cfg/default配置启动菜单文件注意保存文件时用wqvim pxelinux.cfg/default default vesamenu.c32 timeout 60 display boot.msg # Clear the screen when exiting the menu, instead of leaving the menu displayed. # For vesamenu, this means the graphical background is still displayed without # the menu itself for as long as the screen remains in graphics mode. menu clear menu background splash.png menu title Red Hat Enterprise Linux 7.9 menu vshift 8 menu rows 18 menu margin 8 #menu hidden menu helpmsgrow 15 menu tabmsgrow 13 # Border Area menu color border * #00000000 #00000000 none # Selected item menu color sel 0 #ffffffff #00000000 none # Title bar menu color title 0 #ff7ba3d0 #00000000 none # Press [Tab] message menu color tabmsg 0 #ff3a6496 #00000000 none # Unselected menu item menu color unsel 0 #84b8ffff #00000000 none # Selected hotkey menu color hotsel 0 #84b8ffff #00000000 none # Unselected hotkey menu color hotkey 0 #ffffffff #00000000 none # Help text menu color help 0 #ffffffff #00000000 none # A scrollbar of some type? Not sure. menu color scrollbar 0 #ffffffff #ff355594 none # Timeout msg menu color timeout 0 #ffffffff #00000000 none menu color timeout_msg 0 #ffffffff #00000000 none # Command prompt text menu color cmdmark 0 #84b8ffff #00000000 none menu color cmdline 0 #ffffffff #00000000 none # Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message. menu tabmsg Press Tab for full configuration options on menu items. menu separator # insert an empty line menu separator # insert an empty line label linux menu label ^Install Red Hat Enterprise Linux 7.9 kernel vmlinuz menu default append initrdinitrd.img repohttp://192.168.67.156/mnt kshttp://192.168.67.156/ks.cfg quiet label check menu label Test this ^media install Red Hat Enterprise Linux 7.9 kernel vmlinuz append initrdinitrd.img inst.stage2hd:LABELRHEL-7.9\x20Server.x86_64 rd.live.check quiet menu separator # insert an empty line # utilities submenu menu begin ^Troubleshooting menu title Troubleshooting label vesa menu indent count 5 menu label Install Red Hat Enterprise Linux 7.9 in ^basic graphics mode text help Try this option out if youre having trouble installing Red Hat Enterprise Linux 7.9. endtext kernel vmlinuz append initrdinitrd.img inst.stage2hd:LABELRHEL-7.9\x20Server.x86_64 xdrivervesa nomodeset quiet label rescue menu indent count 5 menu label ^Rescue a Red Hat Enterprise Linux system text help If the system will not boot, this lets you access files and edit config files to try to get it booting again. endtext kernel vmlinuz append initrdinitrd.img inst.stage2hd:LABELRHEL-7.9\x20Server.x86_64 rescue quiet label memtest menu label Run a ^memory test text help If your system is having issues, a problem with your systems memory may be the cause. Use this utility to see if the memory is working correctly. endtext kernel memtest menu separator # insert an empty line label local menu label Boot from ^local drive localboot 0xffff menu separator # insert an empty line menu separator # insert an empty line label returntomain menu label Return to ^main menu menu exit menu end启动 TFTPsystemctl enable --now tftp五、测试新建虚拟机此步骤省略此后不用操作等待自动安装完成等待虚拟机自动启动六、总结