linux下PXE无人值守环境自动安装脚本

    当时单位要安装一套linux的PXE无人值守装机程序,装完后花了九牛二虎之力写了一个自动安装脚本,以便今后安全方便,不过后来就没怎么用了,甚至都有些淡忘了,哈哈,分享出来,有研究PXE自动安装的可以看看,在使用的时候里面的ip地址要换掉的。


#!/bin/sh
#writer:gaolixu
yum -y install dhcp tftp-server vsftpd syslinux xinetd

if ! service dhcpd status ;then
###############     dhcp configure    ##########################
echo 'subnet 192.168.30.0 netmask 255.255.255.0 {
range dynamic-bootp   192.168.30.100 192.168.30.110;
option broadcast-address 192.168.30.255;
next-server           192.168.30.2;
filename              "pxelinux.0";
  } ' >> /etc/dhcp/dhcpd.conf
service dhcpd start 
sleep 0.5
service dhcpd status || { echo "dhcp安装失败";exit;}
chkconfig dhcpd on
fi

if ! lsof -i :69 ;then
############### tftp configure ####################################
sed -i "/disable/s/yes/no/"  /etc/xinetd.d/tftp
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
read -p "输入系统安装文件位置,例如/rhel:" iso_p
while true
do
cp -rf $iso_p/isolinux/* /var/lib/tftpboot && break
read -p "输入错误,请请重新输入:" iso_p
done
cd /var/lib/tftpboot
mkdir pxelinux.cfg
cp isolinux.cfg pxelinux.cfg/default
echo 'default linux
label linux
  menu label ^Install Linux
  kernel vmlinuz 
  append initrd=initrd.img ks=ftp://192.168.30.2/linux.cfg
#label rhel5
#  menu label ^Install RHEL5 <manual>        //菜单显示
#  menu default                        //启动菜单默认选项
#  kernel rhel5/vmlinuz              //rhel5启动文件路径
#  append initrd=rhel5/initrd.img        //rhel5启动文件路径
#label rhel6
#  menu label ^Install RHEL6 <manual>
#  kernel rhel6/vmlinuz              //rhel6启动文件路径
#  append initrd=rhel6/initrd.img         //rhel6启动文件路径  ' > pxelinux.cfg/default
chkconfig tftp on
service xinetd start
sleep 0.5
lsof -i :69 || { echo "tftp安装失败";exit;}
echo "dhcp 和 tfpt 安装成功!!!!"
fi

if ! service vsftpd status ;then
################### vsftp configure #################################
mkdir /var/ftp/linux &> /dev/null
[ -z "$iso_p" ] && read -p "请输入系统安装文件位置,例如/rhel:" iso_p
mount -o bind $iso_p  /var/ftp/linux
service vsftpd status || service vsftpd start
sleep 0.5
service vsftpd status || { echo "vsftp安装失败";exit;}
echo "此脚本将系统的安装文件放在/var/ftp/linux目录!!!"
echo "请将system-config-kickstart生成的文件命名为linux.cfg并拷贝到/var/ftp目录!!!!!"
fi


















你可能感兴趣的:(装机,pxe,无人值守)