ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

pxe批量安装rockylinux 9.6 系统

pxe批量安装rockylinux 9.6 系统 目录环境准备1、pxe server 部署 dhcp 服务准备安装源安装 dhcp2、pxe server部署tftp服务安装tftp-server3、配置pxelinux.04、配置 kickstart 应答文件创建 /var/www/html/ks.cfgks.cfg 完整示例校验 ks 文件语法环境准备pxe server 端和需要自动化安装的服务器必须在同一个局域网中本次实验 pxe server 和安装的服务器网段都在 10.10.10.0/24pxe server 的 IP 是 10.10.10.10关闭防火墙和 selinux把 rockylinux 上传到 pxe 服务器上去1、pxe server 部署 dhcp 服务准备安装源安装 httpd[rootpxe-server ~]# dnf install -y httpd创建 /var/www/html/iso 作为 iso 镜像挂载点[rootpxe-server ~]# mkdir -pv /var/www/html/iso把 iso 镜像挂载到 /var/www/html/iso 目录下后续方便本机下载软件包客户端服务器也是通过 http 服务的形式从 pxe 服务端获取安装包的[rootpxe-server ~]# mount /root/Rocky-9.6-x86_64-dvd1.iso /var/www/html/iso启动 httpd 服务[rootpxe-server ~]# systemctl enable httpd --now编辑 repo 文件vim /etc/yum.repos.d/local.repo[BaseOS] nameBaseOS baseurlfile:///var/www/html/iso/BaseOS gpgcheckfalse enabledtrue [AppStream] nameAppStream baseurlfile:///var/www/html/iso/AppStream gpgcheckfalse enabledtrue安装 dhcp[rootpxe-server ~]# dnf install -y dhcp-server编辑 dhcpd.conf 配置文件#定义网段 subnet 10.10.10.0 netmask 255.255.255.0 { #dhcp 分配的地址范围 range 10.10.10.20 10.10.10.200; # dns 服务器地址 option domain-name-servers 10.10.10.1; #网关地址 option routers 10.10.10.1; #广播地址 option broadcast-address 10.10.10.255; #tftp服务器地址也就是本机 next-server 10.10.10.10; #pxe 程序的引导文件位置位于tftp根目录位置即/var/lib/tftp filename pxelinux.0; #租约期限 default-lease-time 600; #最大租约期限 max-lease-time 7200; }启动 dhcpd 服务systemctl enable dhcpd --now2、pxe server部署tftp服务安装tftp-serverdnf install -y tftp-server开机自动启动systemctl enable tftp --now安装syslinux[rootpxe-server ~]# dnf install -y syslinux3、配置pxelinux.0把pxelinux.0 文件复制到tftp服务的根目录/var/lib/tftpboot目录下为了方便省事我直接把/usr/share/syslinux目录下的所有文件复制到tftp根目录下[rootpxe-server ~]# cp -ar /usr/share/syslinux/* /var/lib/tftpboot/创建pxelinux 配置文件的目录这个目录需要手动创建[rootpxe-server ~]# mkdir -pv /var/lib/tftpboot/pxelinux.cfg生成pxe启动时pxelinux使用的默认启动配置文件/var/lib/tftpboot/pxelinux.cfg/default在Iso 镜像的isolinux 目录下 isolinux.cfg 这个文件直接复制到/var/lib/tftpboot/pxelinux.cfg 目录下名称改为default就可以[rootpxe-server ~]# cp /var/www/html/iso/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default修改default配置文件在append这行增加两段配置initrdinitrd.img 意思是指明了initrd.img的存放路径是/var/lib/tftpboot下inst.stage2 配置安装源iso 文件所在位置本文中已经把iso 挂载到了/var/www/html/iso下这样客户端就可以通过http的方式从这个路径中下载ks: 这个配置指明了kickstart应答文件的存放位置客户端可以通过http的方式从这个路径获取下面这段可以删掉以下两个文件是安装系统所需要的,在iso 镜像文件中有直接复制到tftp的根目录下[rootpxe-server ~]# cp /var/www/html/iso/isolinux/initrd.img /var/lib/tftpboot/ [rootpxe-server ~]# cp /var/www/html/iso/isolinux/vmlinuz /var/lib/tftpboot/4、配置 kickstart 应答文件kickstart 应答文件用于实现全自动安装客户端在 PXE 启动后通过 append 行中的 ks 参数从 HTTP 服务获取该文件从而跳过手动交互配置。下面介绍创建 ks.cfg 的步骤、完整示例以及如何将其接入 pxelinux.cfg/default。创建 /var/www/html/ks.cfg[rootpxe-server ~]# mkdir -pv /var/www/html/ksrockylinux 9.6 在安装后会在/root/目录下有一个anaconda-ks.cfg 文件可以用这个文件作为模板在此基础上做适当的调整变成自己的ks.cfg文件[rootpxe-server ~]# cp /root/anaconda-ks.cfg /var/www/html/ks/ks.cfg将 ks.cfg 放在 HTTP 服务根目录 /var/www/html 下客户端即可通过 http://10.10.10.10/ks/ks.cfg 访问根据自己的需要适当调整ks.cfg 文件ks.cfg详细解释可以查看文末ks.cfg完整示例[rootpxe-server ~]# cat /var/www/html/ks/ks.cfg graphical url --urlhttp://10.10.10.10/iso %addon com_redhat_kdump --enable --reserve-mbauto %end reboot # Keyboard layouts keyboard --xlayoutsus # System language lang en_US.UTF-8 %packages ^graphical-server-environment %end # Run the Setup Agent on first boot firstboot --enable # 把系统安装在nvme0n1这个磁盘分区上 ignoredisk --only-usenvme0n1 #采用自动分区 autopart # Partition clearing information #清除原有分区 clearpart --all --initlabel # System timezone timezone America/New_York --utc # Root password rootpw --iscrypted --allow-ssh $6$eL7C7fTs.ep15SFF$9VYVlvldDXtD6hkh6EADKei99DED1Djvq54IRqG87wO4.9xa9Q6CoPqgBKFtcGA1HcaiGT9DGbrehxsjivFQO1授权anaconda 有读取ks.cfg 文件的读取权限[rootpxe-server ~]# chmod 755 /var/www/html/ks/ks.cfg编辑完成后确保 httpd 服务处于运行状态并验证文件可通过 HTTP 访问[rootpxe-server ~]# systemctl status httpd [rootpxe-server ~]# curl -I http://10.10.10.10/ks/ks.cfgks.cfg 完整示例以下是一个适用于 Rocky Linux 9.6 的 ks.cfg 示例包含磁盘分区、软件包选择、网络配置、root 密码以及安装源等关键项。请根据实际环境调整密码、IP 和分区大小。# 使用 HTTP 安装源 url --urlhttp://10.10.10.10/iso/ #使用文本模式安装graphical表示图形安装 text #设置 root 密码 rootpw --iscrypted $6$examplehash #安装后重启 reboot #键盘和语言 keyboard --vckeymapus --xlayoutsus lang en_US.UTF-8 #时区 timezone Asia/Shanghai --isUtc #网络配置 network --bootprotostatic --deviceens33 --ip10.10.10.20 --netmask255.255.255.0 --gateway10.10.10.1 --nameserver10.10.10.1 --activate #磁盘分区 zerombr clearpart --all --initlabel part /boot --fstypexfs --size1024 part pv.01 --size1 --grow volgroup vg0 pv.01 logvol / --fstypexfs --nameroot --vgnamevg0 --size20480 logvol swap --fstypeswap --nameswap --vgnamevg0 --size4096 软件包选择 %packages #最小化安装如果安装图形界面则设置成^graphical-server-environment ^minimal-environment standard vim net-tools %end 安装后执行的脚本 %post echo kickstart install completed /root/install.log %end将 ks 参数添加到 pxelinux.cfg/default这一步前面已经做过了这里只是说明解释下这个配置的含义/var/lib/tftpboot/pxelinux.cfg/default文件中 append 行 ks 参数指向 ks.cfg 的 HTTP 地址append initrdinitrd.img inst.stage2http://10.10.10.10/iso/ inst.kshttp://10.10.10.10/ks.cfg quiet校验 ks 文件语法可以使用 pykickstart 提供的 ksvalidator 工具校验 ks.cfg 语法是否正确。若未安装先安装 pykickstart[rootpxe-server ~]# dnf install -y pykickstart执行语法校验[rootpxe-server ~]# ksvalidator /var/www/html/ks/ks.cfg如果文件语法正确命令不会输出任何错误信息若存在错误会提示具体的行号和问题描述根据提示修正后重新校验即可。
返回列表