PXE +Kickstart
(
el8
)
使用两个网口一个用net接口用于下载服务和软件包,另一个为仅主机用于与其他的空主机相连
PXE(preboot execute environment)
预启动执行环境。支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器 分配 IP 地址,再用 TFTP(trivial file transferprotocol)简单文件传 输协议下载启动软件包到本机内存中执行,由这个启动软件包完成客 户基本软件设置,从而引导预先安装在服务器中的终端操作系统。
Kickstart
Kickstart 给用户提供了一种自动化安装红帽企业 Linux 的方法。
Kickstart 文件可以存放于单一的服务器上,在安装过程中被独立的机
器所读取。这个安装方法可以支持使用单一 Kickstart 文件在多台机器
上安装红帽企业版 Linux。
Kickstart 安装可以使用本地光盘、本地硬盘驱动器,或通过 NFS、FTP、HTTP 来执行。
服务器配置
一、安装配置 FTP
1.
安装
FTP
服务端软件并修改配置文件
[root@pxe ~]#yum -y install vsftpd
[root@pxe ~]#vim /etc/vsftpd/vsftpd.conf
开启 FTP 匿名访问
anonymous_enable=YES
2.
启动启用服务
[root@pxe ~]#systemctl enable --now vsftpd
3.
在
FTP
工作目录下建立指定目录,用于存放软件安装包,将系统安装光盘内所有文件复制到该目录下:
[root@pxe ~]#mount /dev/sr0 /mnt
[root@pxe ~]#cd /var/ftp
[root@pxe ftp]#mkdir rhel
[root@pxe ftp]#cp -a /mnt/* rhel/
[root@pxe ftp]#cp -p /mnt/.discinfo rhel/
[root@pxe ftp]#cp -p /mnt/.treeinfo rhel/
4
.
服务器建立本地
YUM
源
cd /etc/yum.repos.d/
vim CentOS-local.repo
[Appstream]
name=Appstream
baseurl=file:///var/ftp/rhel/AppStream
enabled=1
gpgcheck=0
[BaseOS]
name=local
baseurl=file:///var/ftp/rhel/BaseOS
enabled=1
gpgcheck=0
二、安装配置 DHCP
1.
安装
DHCP
服务端软件
[root@pxe ~]#yum -y install dhcp-server
2.
修改
DHCP
配置文件
打开配置文件/etc/dhcp/dhcpd.conf,从模版读取生成内容,并
添加配置(不需要的部分可以注释或删除):
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.1 172.16.1.50;
option domain-name-servers 172.16.1.254;
option routers 172.16.1.254;
option broadcast-address 172.16.1.255;
next-server 172.16.1.254;
filename "pxelinux.0";
}
3.
启动启用服务
[root@pxe ~]#systemctl enable --now dhcpd
三、安装配置 TFTP
1.
安装
TFTP
服务端软件
[root@pxe ~]#yum -y install tftp-server xinetd
2.
修改配置文件
[root@pxe ~]#vim /etc/xinetd.d/tftp
编辑文件内容为:
cat /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
3.
启动启用服务
[root@pxe ~]#systemctl restart xinetd
[root@pxe ~]#systemctl enable xinetd
[root@pxe ~]#systemctl start tftp
[root@pxe ~]#systemctl enable tftp
四、安装配置 syslinux
1.
安装
syslinux
软件
syslinux 是一个功能强大的引导加载程序(一个小型的 Linux 操作
系统),兼容各种介质。它的目的是简化首次安装 Linux 的时间,并建
立或修护其它特殊用途的启动盘。
[root@pxe ~]#yum -y install syslinux
2.
在
TFTP
目录下建立
syslinux
所需目录
[root@pxe ~]#cd /var/lib/tftpboot
[root@pxe tftpboot]#mkdir pxelinux.cfg
3.
复制
syslinux
依赖工作文件及镜像
[root@pxe tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./
[root@pxe tftpboot]# cp /var/ftp/rhel/isolinux/initrd.img ./
[root@pxe tftpboot]# cp /var/ftp/rhel/isolinux/vmlinuz ./
[root@pxe tftpboot]# cp /var/ftp/rhel/isolinux/ldlinux.c32 ./
[root@pxe tftpboot]# cd pxelinux.cfg
[root@pxe pxelinux.cfg]# cp /var/ftp/rhel/isolinux/isolinux.cfg ./
[root@pxe pxelinux.cfg]# mv isolinux.cfg default
[root@pxe pxelinux.cfg]# vim default
修改文件相关内容(无关内容不处理):
vim default
修改文件相关内容(无关内容不处理):
default linux
prompt 0
timeout 600
display boot.msg
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.99.128/ks.cfg quiet
注:appent 是一行内容,保存时需要 wq!
编辑
ks
脚本
cat ks.cfg
#version=RHEL8
# Use graphical install
graphical
repo --name="AppStream" --baseurl=ftp://192.168.99.128/rhel/AppStream
%packages
@^graphical-server-environment
kexec-tools
%end
# Keyboard layouts
keyboard --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=ens33 --onboot=on --activate
network --hostname=localhost.localdomain
# Use NETWORK installation
url --url="ftp://192.168.99.128/rhel"
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=nvme0n1
# Partition clearing information
clearpart --none --initlabel
# Disk partitioning information
part pv.111 --fstype="lvmpv" --ondisk=nvme0n1 --size=58000
part /boot --fstype="ext4" --ondisk=nvme0n1 --size=1024
volgroup server --pesize=4096 pv.111
logvol swap --fstype="swap" --size=4096 --name=swap --vgname=server
logvol / --fstype="ext4" --size=51200 --name=root --vgname=server
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# Root password
rootpw --iscrypted $6$7yH9Nx8fhw/X19wJ$DlNaRW564nGbmNPck/hISTxCv2LSVywsfkh.IbS4WJioxsyUZAQ3ta.5EKp8em5W9G.MfmcFM25TdmmUiosrC/
user --name=a --password=$6$/kU5tBkwXAm618Yr$FExtjLEdPK/e8mNIRAU3AWa/I8M1/XnuSo4xMOk.hsWvCmo4sdDG..7REuPeL/eGkYP2vuSJVJxpxKRd1xS3o. --iscrypted --gecos="a"
%addon com_redhat_kdump --enable --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
# Reboot after install
reboot
注:给文件权限755
验证
将服务器却换到仅主机的网卡,与相连的客户机处于同一网段相同的vmnet
开机自动安装系统,或选择网卡启动后自动安装系统。