#!/bin/bash
yum install dhcp syslinux tftp-server vsftpd expect -y
echo "关闭防火墙"
systemctl stop firewalld
setenforce 0
#修改网卡
i=/etc/sysconfig/network-scripts/ifcfg-ens37
cp /etc/sysconfig/network-scripts/ifcfg-ens33 $i
sed -i '/UUID/d' $i
sed -i '/PROTO/s/dhcp/static/' $i
sed -i 's/ens33/ens37/g' $i
sed -i '$aIPADDR=192.168.100.100\nNETMASK=255.255.255.0\nGATEWAY=192.168.100.1' $i
systemctl restart network
[ $? -eq 0 ]&&echo "ok"
#修改DHCP文件
/usr/bin/expect<<-EOF
spawn cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
expect {
"cp: overwrite" /etc/dhcp/dhcpd.conf"?"
{send "yes\r"}
}
EOF
l=/etc/dhcp/dhcpd.conf
sed -i 's/10.152.187.0/192.168.100.0/' $l
sed -i '27arange 192.168.100.100 192.168.100.200;\noption routers 192.168.100.1;\nnext-server 192.168.100.100;\nfilename "pxelinux.0";' $l
systemctl start dhcpd
if [ $(echo $?) -eq 0 ];then
echo "dhcp启动成功!"
else
echo “dhcp启动失败!”
fi
#配置tftp\ftp服务
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
sed -i 's/yes/no/' /etc/xinetd.d/tftp
sed -i 's/10.152.187.0/192.168.100.0/' $l
mkdir -p /var/ftp/centos7
mount /dev/sr0 /var/ftp/centos7
cp /var/ftp/centos7/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /var/ftp/centos7/images/pxeboot/vmlinuz /var/lib/tftpboot
mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default
echo "#a" > /var/lib/tftpboot/pxelinux.cfg/default
sed -i '1adefault auto\nprompt\nlabel auto\nkernel vmlinuz\nappend initrd=initrd.img method=ftp://192.168.100.100/centos7\nlabel linux text\nkernel vmlinuz\nappend text initrd=initrd.img method=ftp://192.168.100.100/centos7\nlabel linux rescue\nkernel vmlinuz\nappend rescue initrd=initrd.img method=ftp://192.168.100.100/centos7' /var/lib/tftpboot/pxelinux.cfg/default
systemctl start tftp
sed -i '/#/d' /var/lib/tftpboot/pxelinux.cfg/default
if [ $? -eq 0 ];then
echo "tftp启动成功!"
else
echo “tftp启动失败!”
fi
systemctl start vsftpd
if [ $? -eq 0 ];then
echo "vsftpd启动成功!"
else
echo “vsftpd启动失败!”
fi
shell脚本pxe自动部署
最新推荐文章于 2023-09-27 10:12:53 发布