Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数;比如:我们安装系统的时候需要分区、设置时区、设置root密码、安装后执行的脚本等等,这些操作都记录下来并生成一个名为ks.cfg的文件
本次实现批量安装Centos7.9系统使用的镜像为:CentOS-7-x86_64-DVD-2009.iso
安装一台Centos7.9作为PXE服务器本机IP:1.1.1.182,然后禁用selinux和firewalld防火墙,需要安装的服务有dhcp、xinetd、syslinux、httpd、tftp-server、system-config-kickstart
#禁用selinux和firewalld防火墙
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
systemctl stop firewalld.service
systemctl disable firewalld.service
#安装dhcp、xinetd、syslinux、httpd、tftp-server服务
yum install -y dhcp xinetd syslinux httpd tftp-server
#启动这些服务并设置开机自启
systemctl start dhcpd
systemctl start xinetd
systemctl start httpd
systemctl start tftp
systemctl enable dhcpd
systemctl enable xinetd
systemctl enable httpd
systemctl enable tftp
首先配置DHCP服务
vi /etc/dhcp/dhcpd.conf #添加以下内容
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
ddns-update-style none;
ignore client-updates;
default-lease-time 259200;
max-lease-time 518400;
subnet 1.1.1.0 netmask 255.255.255.0 {
range 1.1.1.100 1.1.1.210; #地址池范围
option routers 1.1.1.254; #网关ip
option subnet-mask 255.255.255.0; #掩码
option domain-name-servers 223.5.5.5; #DNS
# the configuration for tftp-server
next-server 1.1.1.182; #本机IP:指定 PXE 服务器的 IP 地址
# the configuration file for pxe boot
filename "pxelinux.0"; #如果是UEFI模式,修改为“BOOTX64.EFI”
#filename "BOOTX64.EFI";
}
#重启dhcp服务
systemctl restart dhcpd
然后准备好iso镜像文件
挂载到/mnt,然后复制所有文件到/var/www/html/Centos7.9/目录下
#挂载镜像到/mnt
mount /dev/cdrom /mnt/
#新建Centos7.9目录
mkdir /var/www/html/Centos7.9/
#将镜像文件复制到网站目录
cp -rf /mnt/* /var/www/html/Centos7.9/
这里需要设置软件源给kickstart调用,这里的仓库名必须是development
vim /etc/yum.repos.d/nsd.repo #添加以下内容
[development]
name=nsd01
baseurl=http://1.1.1.182/Centos7.9
gpgcheck=0
yum repolist
接下来安装system-config-kickstart图形化设置工具用来生成ks.cfg自动应答文件
yum install system-config-kickstart -y
#安装完成后运行以下命令打开图形化界面
system-config-kickstart
#如果使用MobaXterm之类的工具,打不开图形化需要安装gdm,安装完重新连接即可打开
yum -y install gdm
打开配置程序,根据需要配置,然后点击文件》保存》生成ks.cfg自动应答文件放到/var/www/html/Centos7.9/网站目录
安装方法这里选择HTTP
设置好yum仓库后这里就可以选择安装软件了
我生成的ks.cfg文件配置参考
vi /var/www/html/Centos7.9/ks.cfg #配置文件如下
#platform=x86, AMD64, 或 Intel EM64T
#version=CentOS7.9
# Install OS instead of upgrade #全新安装或者升级
install #全新安装
# Keyboard layouts #设置键盘语言
keyboard 'us'
# Root password
rootpw --iscrypted $1$Ytd1w1uG$kmW9AkWt8S/jUtb6W272O1 #采用加密记录
#rootpw --plaintext 123456 #采用明文记录
# System language #设置默认语言
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install #安装方式文本界面,图形的话graphy
#text
# Use graphical install #安装方式图形界面
graphical
firstboot --disable
# Firewall configuration
firewall --disabled #关闭防火墙
# SELinux configuration
selinux --disabled #关闭SELinux
# Do not configure the X Window System #不配置X图形界面
skipx
# Use NFS installation media #设定安装方式为nfs
#nfs --server=1.1.1.182 --dir=/Centos7.9
# Use network installation #设定安装方式为HTTP
url --url="http://1.1.1.182/Centos7.9"
# Network information #设置网络
network --bootproto=dhcp --device=eth0
# Reboot after installation #安装后自动重启,如果BIOS中设置从PXE首先启动,那么会重复安装,请注意,安装后应设置为从先硬盘启动
reboot
# System timezone #设置时区
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# bootloader --location=partition
# Clear the Master Boot Record
# Partition clearing information #清除原有分区
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="xfs" --size=10000
part /boot --fstype="xfs" --size=200
#part /boot/efi --fstype=efi --size=200 #UEFI引导安装时需要,传统LEGACY引导时可屏蔽此选项
part swap --fstype="xfs" --size=4096
part / --fstype="xfs" --grow --size=1 #剩余空间全部给/分区
%packages #设定所需要的软件包,按需要调整
@base #@表示一组软件包
@network-server
@performance
@system-admin-tools
sdparm
tree
tuned
tuned-utils
ypbind
nfs-utils
vim-enhanced
#-表示从默认软件包的需要去除的软件包
-lvm2
-nano
-pcmciautils
-plymouth
-rfkill
-rsync
-system-config-firewall-tui
-system-config-network-tui
-unzip
-vconfig
-wireless-tools
%end #%packages结尾
%pre #预案装脚本,非必须
%end #%pre结尾
%post #安装后脚本,非必须
%end #%post结尾
#给文件授权让所有人可读
chmod a+r /var/www/html/Centos7.9/ks.cfg
以上操作设置好了后验证以下两个网站能不能正常访问文件
http://1.1.1.182/Centos7.9
http://1.1.1.182/Centos7.9/ks.cfg
以上网站正常访问,即进行下一步
接下来设置tftpboot引导参数
#创建tftpboot/Centos7.9目录
mkdir /var/lib/tftpboot/Centos7.9/
#将源镜像的这两个文件复制到tftpboot
cp /var/www/html/Centos7.9/images/pxeboot/initrd.img /var/lib/tftpboot/Centos7.9/
cp /var/www/html/Centos7.9/images/pxeboot/vmlinuz /var/lib/tftpboot/Centos7.9/
#将syslinux的引导复制到tftpboot
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#创建pxelinux.cfg文件夹,和default引导配置文件
mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default #输入以下内容
default menu.c32
prompt 0
timeout 100
menu title ########## PXE Boot Menu ##########
#全自动kickstart无人值守安装
label linux
menu label ^Install CentOS7.9 x64 kickstart with HTTP
kernel Centos7.9/vmlinuz
append initrd=Centos7.9/initrd.img inst.repo=http://1.1.1.182/Centos7.9 ks=http://1.1.1.182/Centos7.9/ks.cfg
#普通PXE引导安装
label linux
menu label ^Install CentOS7.9 x64 with HTTP
kernel Centos7.9/vmlinuz
append initrd=Centos7.9/initrd.img inst.repo=http://1.1.1.182/Centos7.9
#给文件授权
chmod 644 /var/lib/tftpboot/pxelinux.cfg/default
接下来,测试PXE全自动无人值守安装,新建一台虚拟机设置同一网段网卡,内存不小于2G,设置网络启动
安装完成
配置是按自动应答文件设置的
接下测试多台(4台)一起安装,安装均正常