使用RHEL-3搭建PXE+kickstart 批量部署操作系统
PXE是由Intel公司开发的网络引导技术,工作在 Server/Client 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。
PXE,Pre-boot eXcution Environment;预启动执行环境,在操作系统之前运行;可用于远程安装,构建无盘工作站。
PXE的工作过程:
1) PXE客户机发出dhcp请求,向服务器申请ip地址。
2) DHCP服务器响应PXE客户机的请求,自动从ip地址池中分配一个ip地址给PXE客户机,并告知PXE客户机TFTP服务器的ip地址和PXE引导程序文件pxelinux.0。
3) PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。
4) TFTP服务器响应PXE客户机的请求,将其共享pxelinux.0文件传输给PXE客户机。
5) PXE客户机通过网络来启动到系统安装主界面。
6) PXE客户机向文件共享服务器发起系统安装的请求。
7) 文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。
8) PXE客户机进入到安装提示向导界面,用户需要手动来完成系统的操作。
1、RHEL-3 搭建dhcp服务器
1) 添加一张网卡,使用 LAN区段1 ,Ip 设为10.10.10.1/24
2) 安装部署dhcp服务器
[root@servera ~]# yum install -y dhcp-server vim
[root@servera ~]# vim /etc/dhcp/dhcpd.conf
添加内容
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.100 10.10.10.255;
next-server 10.10.10.1;
# 指定tftp服务器地址
filename "pxelinux.0" ;
#tftp服务端PXE引导下载文件
}
[root@servera ~]# systemctl restart dhcpd
2、搭建tftp httpd服务器
1) tftp服务器
[root@servera ~]# yum install -y tftpd-server
[root@servera ~]# systemctl start tftp
[root@servera ~]# yum -y install syslinux
[root@servera ~]# cp -rf /usr/share/syslinux/* /var/lib/tftpboot/
[root@servera ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
# 该⽬录是pxe客户端在执⾏完pxelinux.0后会⾃动请求的⼀个⽬录,会请求该⽬录下的boot menu
2) httpd服务器
[root@servera ~]# yum install -y httpd
[root@servera ~]# mkdir /var/www/html/iso
[root@servera ~]# mount /dev/cdrom /var/www/html/iso
[root@servera ~]# cp /var/www/html/iso/isolinux/vmlinuz
/var/www/html/iso/isolinux/initrd.img /var/lib/tftpboot/
[root@servera ~]# systemctl start httpd
3、编写pxelinux配置文件
[root@servera ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 10
label CqTest
kernel vmlinuz
append initrd=initrd.img method=http://10.10.10.1/iso
ks=http://10.10.10.1/pxetest-ks.cfg
4、编写kickstart配置文件
[root@servera ~]# vim /var/www/html/pxetest-ks.cfg
#version=RHEL8
ignoredisk --only-use=nvme0n1
autopart --type=lvm
# Use graphical install
graphical
url --url="http://10.10.10.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
# Partition clearing information
clearpart --none --initlabel
# System timezone
timezone America/New_York --isUtc
# Root password
rootpw --iscrypted
$6$L6kJd9/WY7IzwhYN$GGesy1QMJE15/iBKXXW83CbeCtZZUQ31fXC0KWvBIppt1JITAXXOcwI1
uGBM2WXnwiMbokNFEkpe8RNJjTnHX.
user --name=gala --
password=$6$9KnDw7vn90fJjh6Y$7xRSMlv1Ik5bzzPN/fc8ubeGT8AlZSXTnIbd8KNwFMw4XHd
l2zhbZ0J/PCaMg1O1X/hCUUNq/UOM.HEwNl3Bw0 --iscrypted --gecos="gala"
%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
5、测试验证
[root@servera ~]# systemctl restart tftp
创建虚拟机,磁盘设置大于20G ,网卡设置为LAN 区段1 ,自动重装系统