使用方法:
准备一台模板机,放置 pxe 脚本和 ks-centos7 文件,位置无所谓,因为我在脚本中使用的是 find 定位文件位置,所以根本不用慌,放置成功之后给予 pxe 脚本执行权限
chmod u+x pxe-centos7.sh
接下来,运行脚本即可 ,运行完成之后,再去创建一台虚拟机,这个时候我们不要选择使用本地的 centos7 的 iso ,直接运行虚拟机即可,pxe 就会自动帮助我们按照脚本预设好的配置把虚拟机安装出来
注意:由于模板机使用的是 dhcp 协议,这导致我们创建出来的新的虚拟机不能脱离模板机单独运行,所以请大家在新虚拟机创建出来之后自行将 ip 地址设置为静态的,不然在开启新虚拟机而不开启模板机的情况下新虚拟机将会没有 ip 地址
另外,文章书写简单,如果大家运行不出来或者觉得有什么改进的地方也欢迎大家在评论区分享一下,感谢大家的观看
pxe 脚本
#!/bin/bash
###
# @Author: huangqian
# @Date: 2024-08-16 14:04:53
# @LastEditors: huangqian
# @LastEditTime: 2024-08-17 13:09:59
# @FilePath: \shellProject\pxe7.sh
# @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
###
## 日志目录
LOGFILE="/var/log/pxe_setup.log"
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOGFILE"
}
isServerActive() {
if [ $? != 0 ];then
echo "请检查 $1 服务是否启动"
log "$1 启动失败 / $1 failed"
exit
else
log "$1 启动成功 / $1 success"
fi
}
## 日志目录完成
## 初始化
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
log "初始化系统安全设置完成 / init success"
## 初始化完成
# 挂载
blkid | grep iso9660
if [ $? -eq 0 ];then
echo "/dev/sr0 /media iso9660 defaults 0 0" >> /etc/fstab
mount -a || mount -a