RHEL8.4使用PXE搭建网络安装源+KickStart实现系统自动安装
Posted 从善若水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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会帮我们根据配置文件自动安装系统(例如,分区、时间、键盘、语言等)
这是从善若水的博客,欢迎大家关注我!
以上是关于RHEL8.4使用PXE搭建网络安装源+KickStart实现系统自动安装的主要内容,如果未能解决你的问题,请参考以下文章