#!/bin/bash
echo "=============================PXE 自动安装==================================="
#关闭防火墙,安全防护中心
systemctl stop firewalld.service &> /dev/null
systemctl disable firewalld.service &> /dev/null
setenforce 0 &> /dev/null
echo "温馨提示:请新增一张网卡如ens36,设置为仅主机模式,共服务使用。
IP设置请根据虚拟机的虚拟网络编辑器的IP来自行定义。
祝您好运!!!!!!!!!!!!!!!!!!!!!
本脚本安装系统,默认登录用户名为:root 密码为:root 请及时修改!!!
下面开始安装#########################################################"
echo "==============ens36网卡配置================================="
cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-ens36
sed -i '/IPADDR/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
sed -i '/NETMASK/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
sed -i '/GATEWAY/d' /etc/sysconfig/network-scripts/ifcfg-ens36 >&/dev/null
sed -i '/DNS/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
sed -i '/DEVICE/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
sed -i '/NAME/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
sed -i '/BOOTPROTO/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
read -p "请输入IP地址: " IP
read -p "请输入子网掩码地址: " NET
read -p "请输入网关地址: " GAT
read -p "请输入DNS地址: " dns
echo "IPADDR=$IP
NETMASK=$NET
GATEWAY=$GAT
DNS1=$dns
BOOTPROTO=static
NAME=ens36
DEVICE=ens36" >> /etc/sysconfig/network-scripts/ifcfg-ens36
echo "网卡配置完成"
#重启网络配置,生效ens36
systemctl restart network &> /dev/null
if [ $? -eq 0 ];then
echo "网络服务重启成功"
else
echo "网络服务重启失败,请检查"
fi
echo "==============安装配置DHCP服务================================="
#判断dhcp是否安装
rpm -q dhcp &> /dev/null
if [ $? -eq 0 ];then
echo "DHCP服务已安装"
else
yum -y install dhcp &> /dev/null
fi
rm -rf /etc/dhcp/dhcpd.conf &> /dev/null
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf &> /dev/null
read -p "输入DHCP网段: " wangduan
read -p "输入子网掩码: " yanma
read -p "输入地址池(中间以空格间隔): " dizhichi
read -p "输入DHCP网关IP地址: " wangguan
echo "
ddns-update-style none;
subnet $wangduan netmask $yanma {
range $dizhichi;
option routers $IP;
option domain-name-servers 114.114.114.114;
next-server $IP;
filename \"pxelinux.0\";
}" >>/etc/dhcp/dhcpd.conf
systemctl start dhcpd &> /dev/null
if [ $? -eq 0 ];then
echo "dhcp服务启动成功"
else
echo "dhcp服务启动失败"
fi
systemctl enable dhcpd &> /dev/null
echo "==================配置TFTP、xinetd============================="
#判断TFTP是否存在
rpm -q tftp-server &> /dev/null
if [ $? -eq 0 ];then
echo "TFTP服务已安装"
else
yum -y install tftp-server &> /dev/null
fi
#判断xinetd是否存在
rpm -q xinetd &> /dev/null
if [ $? -eq 0 ];then
echo "tftp服务已安装"
else
yum -y install xinetd &> /dev/null
fi
#修改TFTP的配置文件
sed -i '10s/yes/no/' /etc/xinetd.d/tftp
sed -i '14s/yes/no/' /etc/xinetd.d/tftp
systemctl start xinetd &> /dev/null
if [ $? -eq 0 ];then
echo "xinetd服务启动成功"
else
echo "xinetd服务启动失败"
fi
systemctl enable xinetd &> /dev/null
systemctl start tftp &> /dev/null
if [ $? -eq 0 ];then
echo "tftp服务启动成功"
else
echo "tftp服务启动失败"
fi
systemctl enable tftp &> /dev/null
#挂载镜像
mount /dev/cdrom /mnt &> /dev/null
#复制镜像中的文件‘
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
echo "=================安装pxelinux.0和syslinux================="
yum provides */pxelinux.0 -y &> /dev/null
yum -y install syslinux &> /dev/null
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
echo "default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://$IP/centos7 ks=ftp://$IP/ks.cfg
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://$IP/centos7 ks=ftp://$IP/ks.cfg
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://$IP/centos7 ks=ftp://$IP/ks.cfg " >> /var/lib/tftpboot/pxelinux.cfg/default
echo "=======================安装VSFTP============================="
#安装FTP
rpm -q vsftpd &> /dev/null
if [ $? -eq 0 ];then
echo "VSFTP服务已安装"
else
yum -y install vsftpd &> /dev/null
fi
mkdir /var/ftp/centos7
cd /var/ftp/centos7
cp -rf /mnt/* ./
systemctl start vsftpd &> /dev/null
if [ $? -eq 0 ];then
echo "vsftp服务启动成功"
else
echo "vsftp服务启动失败"
fi
systemctl enable vsftpd &> /dev/null
yum -y install system-config-kickstart &> /dev/null
if [ $? -eq 0 ];then
echo "kickstart安装成功"
else
echo "kickstart安装失败"
fi
echo "
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --plaintext root
# Use network installation
url --url="ftp://192.168.68.68/centos7"
# System language
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# 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=4096
part / --fstype="xfs" --grow --size=1
%packages
@^gnome-desktop-environment
@base
@core
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools
%end" > /var/ftp/ks.cfg
echo "你的运气太好了!!!
可以进行批量系统安装了!!!"