pxe部署脚本

#!/bin/bash
#Date=2021-8-3
#Auther=ChenYang


#-------变量设置区域------------#
ISO_DIR='/ISO/CentOS-7-x86_64-DVD-1810.iso'
SYS_REL='centos7.6'
MOUNT_DIR="/var/www/html/$SYS_REL"
ETH_INTERFACE=`nmcli connection  show|grep en|awk '{print $NF}'`
SERVER_IP='192.168.100.7'
SERVER_GATEWAY='192.168.100.254'
SERVER_SUBNET='192.168.100.0'
DHCP_START_IP='192.168.100.10'
DHCP_END_IP='192.168.100.100'
KS_PATH='/root/ks7.6.cfg'

#-------设置接口地址------------#
#nmcli connection modify $ETH_INTERFACE ipv4.addresses $SERVER_IP/24 ipv4.gateway $SERVER_GATEWAY connection.autoconnect yes ipv4.method manual
#nmcli connection up $ETH_INTERFACE

mv /etc/sysconfig/network-scripts/ifcfg-$ETH_INTERFACE{,.bak}
cat << EOF >>/etc/sysconfig/network-scripts/ifcfg-$ETH_INTERFACE
DEVICE="$ETH_INTERFACE"
NAME="$ETH_INTERFACE"
ONBOOT="yes"
IPADDR=$SERVER_IP
PREFIX=24
GATEWAY=$SERVER_GATEWAY
BOOTPROTO="static"
TYPE="Ethernet"
EOF

systemctl restart network

#-------安装pxe依赖服务包-------#
yum -y install httpd
yum -y install tftp-server
yum -y install dhcp
yum -y install syslinux

mv /etc/dhcp/dhcpd.conf{,.bak}
cat >> /etc/dhcp/dhcpd.conf << EOF 
subnet $SERVER_SUBNET netmask 255.255.255.0 {
  range $DHCP_START_IP $DHCP_END_IP;
  option domain-name-servers $SERVER_IP;
  option routers $SERVER_GATEWAY;
  default-lease-time 600;
  max-lease-time 7200;
  next-server  $SERVER_IP;
  filename  "pxelinux.0";
}
EOF

systemctl  restart  dhcpd
systemctl  restart  tftp
systemctl  restart  httpd

mkdir $MOUNT_DIR
mount $ISO_DIR $MOUNT_DIR

cp  /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg


cat >> /var/lib/tftpboot/pxelinux.cfg/default << EOF 
default vesamenu.c32
timeout 60
display boot.msg
menu clear
menu background splash.png
menu title $SYS_REL
menu vshift 8
menu rows 18
menu margin 8
menu helpmsgrow 15
menu tabmsgrow 13
menu color border * #00000000 #00000000 none
menu color sel 0 #ffffffff #00000000 none
menu color title 0 #ff7ba3d0 #00000000 none
menu color tabmsg 0 #ff3a6496 #00000000 none
menu color unsel 0 #84b8ffff #00000000 none
menu color hotsel 0 #84b8ffff #00000000 none
menu color hotkey 0 #ffffffff #00000000 none
menu color help 0 #ffffffff #00000000 none
menu color scrollbar 0 #ffffffff #ff355594 none
menu color timeout 0 #ffffffff #00000000 none
menu color timeout_msg 0 #ffffffff #00000000 none
menu color cmdmark 0 #84b8ffff #00000000 none
menu color cmdline 0 #ffffffff #00000000 none
menu tabmsg Press Tab for full configuration options on menu items.
menu separator # insert an empty line
menu separator # insert an empty line
label linux
  menu label ^Install $SYS_REL
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=http://${SERVER_IP}/$KS_FILE
EOF
chmod u+w /var/lib/tftpboot/pxelinux.cfg/default

cp ${MOUNT_DIR}/isolinux/vmlinuz ${MOUNT_DIR}/isolinux/initrd.img ${MOUNT_DIR}/isolinux/vesamenu.c32 ${MOUNT_DIR}/isolinux/splash.png /var/lib/tftpboot/
cp $KS_PATH /var/www/html/
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容