PXE+kickstart实现无人值守自动安装操作系统
让待安装系统的主机自动安装系统,并且自动的安装kickstart文件安装系统,不需要人工干预,直接自动化批量安装操作系统
文章目录
- PXE+kickstart实现无人值守自动安装操作系统
- 在VMware虚拟机中进行操作时,需要先进入虚拟机的虚拟网络编辑器中关闭掉NAT模式的DHCP,以免在后面的实验中发现DHCP服务器争抢情况,造成实验失败
- 给操作系统安装图形化,并且启动
- 安装kickstart文件自动配置工具
- kicistart文件语法检测
- 图形化界面配置生成kicistart文件
- 配置103主机网络共享源以及ks.cfg文件
- PEX的配置
- 测试主机需要调整BIOS启动项为network启动
- 虚拟机装完毕系统后,需要更改BIOS启动项,更改为磁盘启动,不然会出现不断从网卡启动进而不断进入装系统的界面
在VMware虚拟机中进行操作时,需要先进入虚拟机的虚拟网络编辑器中关闭掉NAT模式的DHCP,以免在后面的实验中发现DHCP服务器争抢情况,造成实验失败
给操作系统安装图形化,并且启动
[root@rhel7 ~]# yum group install "Server with GUI"
[root@rhel7 ~]# init 5
[root@rhel7 ~]# runlevel
3 5
安装kickstart文件自动配置工具
[root@rhel7 ~]# yum install system-config-kickstart
# 在虚拟机的终端中启动
[root@rhel7 ~]# system-config-kickstart
# 在虚拟机中的图形化界面中进行配置,最后自动保存为ks文件
[root@rhel7 ~]# cat ks.cfg
platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$751RToEK$Wkc5qL0J.h1Z5y8qbcdQW/
# System language
lang zh_CN
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=eth0
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="http://172.25.254.103/rhel7/"
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=1024
part swap --fstype="xfs" --size=512
part / --fstype="xfs" --grow --size=1
%packages
@base
gcc
%end
%post
mkdir -p /kickstart_succeed
%end
kicistart文件语法检测
[root@rhel7 ~]# ksvalidator ks.cfg
# 如果没有输出信息,则文件无问题
图形化界面配置生成kicistart文件
图片如下面所示:
配置103主机网络共享源以及ks.cfg文件
[root@rhel7 html]# ln -s /rhel7/ /var/www/html/
[root@rhel7 html]# mv /root/ks.cfg ./
[root@rhel7 html]# ls
ks.cfg rhel7
使用浏览器访问,测试成功
PEX的配置
# 安装PXE需要的相关软件
[root@pxe tftpboot]# yum install syslinux
[root@pxe ~]# yum install tftp-server.x86_64
# 查看tftp软件的相关文件
[root@pxe ~]# rpm -ql tftp-server
/etc/xinetd.d/tftp
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot # 主要使用文件
# 启动tftp服务
[root@pxe ~]# systemctl enable --now tftp.service
# 系统启动盘里面的关键内容
[root@pxe rhel7]# cd isolinux/
[root@pxe isolinux]# ls
boot.cat grub.conf isolinux.bin memtest TRANS.TBL vesamenu.c32
boot.msg initrd.img isolinux.cfg splash.png upgrade.img vmlinuz
# 复制关键文件至tftp服务目录中
root@pxe ~]# cp /rhel7/isolinux/* /var/lib/tftpboot/
[root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@pxe ~]# cd /var/lib/tftpboot/
[root@pxe tftpboot]# ls
boot.cat grub.conf isolinux.bin memtest splash.png upgrade.img vmlinuz
boot.msg initrd.img isolinux.cfg pxelinux.0 TRANS.TBL vesamenu.c32
# 根据配置文件提示,建立pxelinux.cfg目录
root@pxe tftpboot]# mkdir pxelinux.cfg
# 复制isolinux.cfg至pxelinux.cfg/default这个文件中
[root@pxe tftpboot]# cp isolinux.cfg pxelinux.cfg/default
# 修改dhcp配置文件
[root@pxe tftpboot]# vim /etc/dhcp/dhcpd.conf
#subnet 10.152.187.0 netmask 255.255.255.0 {
#}
# This is a very basic subnet declaration.
subnet 172.25.254.0 netmask 255.255.255.0 {
range 172.25.254.30 172.25.254.40;
option routers 172.25.254.2;
# 主要修改内容是如下两行
next-server 172.25.254.103;
filename "pxelinux.0";
}
# 重启dhcp服务
[root@pxe tftpboot]# systemctl restart dhcpd
# 修改defefault文件内容
[root@pxe tftpboot]# vim /var/lib/tftpboot/pxelinux.cfg/default
2 timeout 30 # 这里为装机页面的默认等待时间,可以调整为30(3秒钟)
61 label linux
62 menu label ^Install Red Hat Enterprise Linux 7.9 pxe_kickstart_check
63 menu default # 将69行的menu default改到此行(63行),将第一个直接按照系统的选项设置为默认选项
64 kernel vmlinuz
65 append initrd=initrd.img repo=http://172.25.254.103/rhel7 ks=http://172.25.254.103/ks.cfg quiet # 修改这里repo按照系统盘位置,以及ks文件的指定,这里都采用PXE服务器网络共享获取
66
67 label check
68 menu label Test this ^media & install Red Hat Enterprise Linux 7.9
69
70 kernel vmlinuz
71 append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.9\x20Server. x86_64 rd.live.check quiet