使用 shell 脚本实现 PXE 安装 centos7

使用方法:

准备一台模板机,放置 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
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值