Centos7 pxe安装系统脚本

#!/bin/bash
#internet
#安装epel7源和centos7源 

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo >/dev/null 2>&1
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo >/dev/null 2>&1

##########install softwall #############################

yum -y install httpd dhcp xinetd tftp-server net-tools syslinux >/dev/null 2>&1

####---- 设置ip和网段变量 ----####

read -p "Please insert ip address": IPADDR 
mask=$(echo $IPADDR| cut -d '.' -f 1-3)
subnet=$(ifconfig |grep "$mask" | awk '{print $4}')

#######dhcp配置##########################
cat >/etc/dhcp/dhcpd.conf<<EOF
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

#default-lease-time 600;
#max-lease-time 7200;
#log-facility local7;

subnet $mask.0  netmask $subnet {
range dynamic-bootp $mask.10 $mask.60;
filename "pxelinux.0";
next-server $IPADDR;
}
EOF
####---- tftpd配置 ----####

sed -i 's/disable.*$/disable = no/g' /etc/xinetd.d/tftp
mkdir /var/lib/tftpboot/pxelinux.cfg -p

####------------httpd配置----------####
mkdir /var/www/html/centos7
mount /dev/cdrom /var/www/html/centos7

####-----------syslinux-----------####
/bin/cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
/bin/cp /var/www/html/centos7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
/bin/cp /var/www/html/centos7/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
/bin/cp /var/www/html/centos7/isolinux/{vesamenu.c32,boot.msg,splash.png} /var/lib/tftpboot/


####-----------pxelinux.cfg/default------####
cat >/var/lib/tftpboot/pxelinux.cfg/default<<EOF  
default vesamenu.c32
timeout 6
label linux
  menu label ^Install CentOS 7
  kernel vmlinuz
  append initrd=initrd.img inst.ks=http://$IPADDR/centos7_2.cfg quiet
EOF

####------------------------------ks.cfg---------------------------------####

cat >/var/www/html/centos7_2.cfg<<EOF
#Kickstart Configurator by Jason Zhao
#platform=x86, AMD64, or Intel EM64T
#System  language
lang en_US
#System keyboard
keyboard us
#Sytem timezone
timezone Asia/Shanghai
#Root password
rootpw 123456

#Use text mode install
text
#Install OS instead of upgrade
install
#Use NFS installation Media
#url --url=$tree
url --url=http://$IPADDR/centos7
#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 --ondisk sda
part swap --size 16384 --ondisk sda
part / --fstype xfs --size 1 --grow --ondisk sda
#System authorization infomation
auth  --useshadow  --enablemd5 
#Network information
#network config
network --bootproto=dhcp --device=eth0 --onboot=on
# Reboot after installation
reboot
#Firewall configuration
firewall --disabled 
#SELinux configuration
selinux --disabled
#Do not configure XWindows
skipx

#Package install information
%packages
@ base
@ core
sysstat
iptraf
ntp
lrzsz
ncurses-devel
openssl-devel
zlib-devel
OpenIPMI-tools
nmap
screen
%end

%post
systemctl disable postfix.service
$yum_config_stanza
%end

EOF

####------------------------------ks.cfg---------------------------------####
####-------------------------- restart service---------------------------####
systemctl restart dhcpd.service
systemctl restart xinetd.service
systemctl restart httpd.service
systemctl stop firewalld.service
setenforce 0