一键安装PXE脚本

此脚本为傻瓜式,适用于centos7 ,安装好的系统直接运行脚本,脚本会自动部署PXE

#!/bin/bash

# 一 环境确认
echo -e "\033[35m loading 环境确认(已完成 0%) \033[0m"
echo -e "\033[32m#############################################\033[0m"
echo -e "\033[32m#注意!:请确认vm软件中的DHCP功能处于关闭状态#\033[0m"
echo -e "\033[32m#注意!:请确认vm软件中网段10.10.10.0正确!  #\033[0m"
echo -e "\033[32m#注意!:请确认vm软件中内存不低于2G!        #\033[0m"
echo -e "\033[32m#############################################\033[0m"
echo -e "\033[33m请按Enter键继续\033[0m"
read -n 1 -r -p ""
sleep 5
# 二 设置主机名
echo -e "\033[35m loading install hostname(已完成 10%) \033[0m"
hostnamectl set-hostname PXEserver.com
#将主机名写入hosts文件
echo "10.10.10.104 PXEserver.com" >> /etc/hosts
# 三 配置ip
echo -e "\033[35m loading install IP(已完成 20%) \033[0m"
content="
TYPE=Ethernet 
BOOTPROTO=none 
NAME=ens33 
DEVICE=ens33 
ONBOOT=yes 
IPADDR=10.10.10.104
PREFIX=24 
GATEWAY=10.10.10.2
DNS1=114.114.114.114 
"
echo "$content" > /etc/sysconfig/network-scripts/ifcfg-ens33


# 四 关闭防火墙
echo -e "\033[35m loading install firewalld(已完成 30%) \033[0m"
systemctl stop firewalld
systemctl disable firewalld 2>/dev/null
#关闭selinux
setenforce 0 
sed -i 's/enforcing/disable/g' /etc/selinux/config


systemctl restart network
# 五 初始化yum源
echo -e "\033[35m loading install yum(已完成 40%) \033[0m"
yum_install(){
rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo 
yum makecache >/dev/null
if [ $? -eq 0 ]; then
        echo "yum初始化成功"

    else
        echo "yum初始化失败"
   fi
}
#echo "loading yum install,please wait!"
yum_install 2>/dev/null

# 六 软件安装

echo -e "\033[35m loading install rpm(已完成 50%) \033[0m"
rpm_software=("dhcp" "xinetd" "tftp-server" "tftp" "httpd" "syslinux" )
rpm_count=${#rpm_software[@]}
for ((i=0;i<rpm_count;i++));do
    anzhuang_rpm=${rpm_software[$i]}
    sys_rpm=$(rpm -qa |grep $anzhuang_rpm)
    #判断软件是否存在
    #if [ -n "$sys_rpm" ]; then
        #echo " $anzhuang_rpm 软件已经存在"
        #printf "%-20s 软件存在\n" "$anzhuang_rpm"
    #else  #软件不存在并安装、判断安装结果

        yum -y install $anzhuang_rpm 2>/dev/null 1>/dev/null
            
        if [ $? -eq 0 ]; then
                    #echo " $anzhuang_rpm 软件安装成功"
            printf "%-20s 软件安装成功\n" "$anzhuang_rpm"
            else
            echo -e "\033[31m${anzhuang_rpm} 安装失败\033[0m"
                exit
        fi
    #fi
done
# 七 部署DHCP服务

echo -e "\033[35m loading install DHCP(已完成 60%) \033[0m"
cat>/etc/dhcp/dhcpd.conf<<EOF
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.10 10.10.10.254;
option domain-name-servers 10.10.10.104;
option domain-name "internal.example.org";
option routers 10.10.10.2;
option broadcast-address 10.10.10.255;
default-lease-time 600;
max-lease-time 7200;
next-server 10.10.10.104; 
filename "pxelinux.0"; 
}
EOF

systemctl restart dhcpd
#dhcp_num=$(netstat -anplu |grep -w 67|awk '{print $4}'|rev|cut -c1,2|rev)
if [ $? -eq 0 ]; then
    echo    "DHCP服务启动成功"
else
    echo -e "\033[31mDHCP启动失败\033[0m"
    exit
fi


# 八 部署tftp服务
echo -e "\033[35m loading install TFTP(已完成 70%) \033[0m"
sed -i '/disable/s/yes/no/g' /etc/xinetd.d/tftp
systemctl restart xinetd  
#tftp_num=$(netstat -anplu |grep -w 69|awk '{print $4}'|rev|cut -c1,2|rev)
if [ $? -eq 0 ]; then
        echo    "tftp服务启动成功"
else
        echo -e "\033[31mtftp启动失败\033[0m"
        exit
fi

mount /dev/cdrom /mnt 2>/dev/null
mkdir /var/lib/tftpboot/pxelinux.cfg 
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default 
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 
cp /mnt/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
sed -i '1s/^/#/g' /var/lib/tftpboot/pxelinux.cfg/default
sed -i '1adefault ks\n' /var/lib/tftpboot/pxelinux.cfg/default


sed -i "/^label linux$/i \\
label ks \\
menu label pxe remote install \\
kernel vmlinuz \\
append initrd=initrd.img repo=http://10.10.10.104/iso ks=http://10.10.10.104/ks/ks.cfg \\
 " /var/lib/tftpboot/pxelinux.cfg/default


# 九 部署http服务
echo -e "\033[35m loading install HTTP(已完成 90%) \033[0m"
mkdir /var/www/html/ks 
mkdir /var/www/html/iso 
mkdir /etc/yum.repos.d/old
mv /etc/yum.repos.d/*  /etc/yum.repos.d/old/ 2>/dev/null

cat>/etc/yum.repos.d/development.repo<<EOF
[development]
name=xe install
baseurl=http://10.10.10.104/iso
gpgcheck=0
enabled=1
EOF

mount /dev/cdrom /var/www/html/iso/ 2>/dev/null
systemctl restart httpd
 if [ $? -eq 0 ]; then
                        echo    "HTTP服务启动成功"
                else
                        echo -e "\033[31mHTTP服务启动失败\033[0m"
                        exit
                fi

# 十  ks自动应答文件
echo -e "\033[35m loading create ks.cfg(已完成 100%) \033[0m"
cat>/var/www/html/ks/ks.cfg<<EOF
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$QG8hGQGq$A/gXg/T8btgxof58shP6/1
# System language
lang zh_CN
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled


# Firewall configuration
firewall --disabled
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="http://10.10.10.104/iso"
# 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="swap" --size=2048
part / --fstype="xfs" --size=14000

%packages
@base
@fonts
@gnome-desktop
@input-methods
@x11

%end


EOF

echo -e "\033[35m 部署PXE服务端完成! \033[0m"
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值