【RHEL8.4】使用PXE搭建网络安装源+KickStart实现系统自动安装

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接

本博文使用的演示系统是 RHEL8.4,其关闭了防护墙和selinux

[root@rhel8 ~]# systemctl disable firewalld --now
[root@rhel8 ~]# setenforce 0

一、使用PXE服务器搭建网络安装源

1.1 PXE介绍

预启动执⾏环境(Preboot eXecution Environment,PXE)也被称为预执⾏环境,提供了⼀种使⽤⽹络接⼝(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。

1.2 安装DHCP服务端软件

分配一块网卡,并将其ip地址设置为 10.1.0.1/24。例如,我这边使用Vmware给RHEL8分配了一个名为VMnet1的仅主机类型的网卡,并关闭了VMware自带的dhcp功能👇
在这里插入图片描述
给PXE服务器新增一个 VMnet1网卡,用于dhcp服务器分配IP地址:
在这里插入图片描述
为 VMnet1 分配 ip 地址:

[root@rhel8 ~]# nmcli connection add con-name static type ethernet ipv4.addresses 10.1.0.1/24 ipv4.method manual

安装DHCP服务器程序:

[root@rhel8 ~]# yum -y install dhcp-server

编辑dhcp-server的配置⽂件:

[root@rhel8 ~]# cp /usr/share/doc/dhcpserver/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@rhel8 ~]# vim /etc/dhcp/dhcpd.conf
[root@rhel8 ~]# cat /etc/dhcp/dhcpd.conf
subnet 10.1.0.0 netmask 255.255.255.0 {
 range 10.1.0.100 10.1.0.200;  # dhcp地址分配范围
 next-server 10.1.0.1;         #dhcp服务器告诉dhcp客户端,如果是PXE引导,那么tftp服务器的地址是10.1.0.1
 filename "pxelinux.0";        #dhcp服务器告诉dhcp客户端,如果是PXE引导,你可以到tftp服务器的根目录(/var/lib/tftpboot/)下载pxelinux.0文件
}

重启dhcp服务

[root@rhel8 ~]# systemctl restart dhcpd
[root@rhel8 ~]# systemctl enable dhcpd

1.3 搭建 tftp服务器

安装tftp-server软件

[root@rhel8 ~]# yum -y install tftp-server

启动tftp服务器

[root@rhel8 ~]# systemctl enable tftp --now

安装syslinux库,将syslinux库中所有的文件,拷贝到 /var/lib/tftpboot/ 中:

[root@rhel8 ~]# yum -y install syslinux
[root@rhel8 ~]# cp -rf /usr/share/syslinux/* /var/lib/tftpboot/

在 /var/lib/tftpboot/ 中创建目录名为 建pxelinux.cfg的目录,该⽬录是pxe客户端在执⾏完pxelinux.0后会⾃动请求的⼀个⽬录,会请求该⽬录下的boot menu

[root@rhel8 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg

1.4 搭建http服务器

安装httpd

[root@rhel8 ~]# yum -y install httpd

将安装文件 .iso 挂载到 /var/www/html/iso 文件夹下面:

[root@rhel8 ~]# mkdir /var/www/html/iso #创建/var/www/html/iso文件夹
[root@rhel8 ~]# mount /home/share/rhel-8.3-x86_64-dvd.iso /var/www/html/iso # /home/share/rhel-8.3-x86_64-dvd.iso这是我的 .iso文件,你要修改成自己的文件路径

启动服务:

[root@rhel8 ~]# systemctl enable httpd --now

将文件vmlinuz、initrd.img 拷贝到 /var/lib/tftpboot/ 文件夹下面,pxe客户端启动的时候会自动获取这两个文件:

cp /var/www/html/iso/isolinux/vmlinuz /var/www/html/iso/isolinux/initrd.img /var/lib/tftpboot/

此时我们应该可以通过本地浏览器,访问我们刚刚搭建的http服务器。例如,输入“ http://IP/iso”:
在这里插入图片描述

1.5 编写pxelinux配置文件

进入 /var/lib/tftpboot/pxelinux.cfg/ 文件夹下面,创建一个default文件:

[root@rhel8 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32  # 默认的安装选择UI文件
timeout 10        # 默认超时时间 10=1秒
label genglspxetest
  #注意下面的项前面有 2个空格
  kernel vmlinuz  # PXE自动加载的内核文件
  #注意下面的等号左右没有空格
  append initrd=initrd.img method=http://10.1.0.1/iso # 附加的一些选项,method指明网络安装源地址

我们这边可以克隆一个或多个虚拟机,每个虚拟机只配置一个网卡 VMnet1,
在这里插入图片描述
启动这些虚拟机,会看到下面的界面:
在这里插入图片描述
一秒之后开始加载系统。


二、使用KickStart实现系统自动安装

作⽤:⾃动安装操作系统

KickStart就是⼀个配置⽂件,该配置⽂件记录了你安装操作系统的步骤,如果你安装⼀个新的操作系统,采⽤了现有的kickstart配置⽂件,那么你当前安装的操作系统就会按照kickstart配置⽂件描述的步骤安装。

在 /var/www/html/ 中创建 ks文件:

[root@rhel8 ~]# vim /var/www/html/pxetest-ks.cfg
#version=RHEL8
# Use graphical install
graphical
url --url="http://10.1.0.1/iso"
# repo --name="AppStream" --baseurl=file:///run/install/sources/mount-0000-cdrom/AppStream

%packages
@^graphical-server-environment
kexec-tools

%end

# Keyboard layouts
keyboard --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --hostname=localhost.localdomain

# Use CDROM installation media
# cdrom

# Run the Setup Agent on first boot
firstboot --enable

ignoredisk --only-use=nvme0n1
autopart
# Partition clearing information
clearpart --none --initlabel

# System timezone
timezone America/New_York --isUtc

# Root password
rootpw --iscrypted $6$ocppieoYdY5bCXvW$BnNUh8d/Y1q8R.Y8.vHXfeEf0jLIIYS1.pF0ZsG8Deldw3gKB7CVNCmAnuZMncgSHcq2mP.zJjVvaTNF5Bi9G0

%addon com_redhat_kdump --disable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

上面文件的 root 密码是 “root”,你可以使用 openssl生成一个新的密文替换上面的密文

修改 /var/lib/tftpboot/pxelinux.cfg/default 文件,添加 pxetest-ks.cfg文件的下载地址:

[root@rhel8 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32  # 默认的安装选择UI文件
timeout 10        # 默认超时时间 10=1秒
label genglspxetest
  #注意下面的项前面有 2个空格
  kernel vmlinuz  # PXE自动加载的内核文件
  #注意下面的等号左右没有空格
  append initrd=initrd.img method=http://10.1.0.1/iso ks=http://10.1.0.1/pxetest-ks.cfg # 附加的一些选项,method指明网络安装源地址,ks指明ks文件的下载地址

重启之前的测试虚拟机,会发现 KickStart会帮我们根据配置文件自动安装系统(例如,分区、时间、键盘、语言等)
在这里插入图片描述


这是从善若水的博客,欢迎大家关注我!


在这里插入图片描述

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从善若水

原创不易,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值