Detailed explanation of shell scripts (eight)-one-click deployment automated installation (PXE unattended)

Shell script one-click deployment automated installation (PXE unattended)

1. PXE unattended automatic installation

For details, please click: PXE and unattended

Two, one-click deployment using shell scripts

#!/bin/bash
#查看是否有本地yum源,没有则创建本地yum源
cd /etc/yum.repos.d
if [ ! -e local.repo ]
then
mkdir repos.bak
mv *.repo repos.bak
echo '[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1' > local.repo
fi
#删除yum缓存并更新
yum clean all && yum makecache
#进行挂载并下载相关服务文件和程序
mount /dev/sr0 /mnt
yum -y install tftp-server xinetd dhcp vsftpd syslinux
#开启TFTP服务,并开启多台一起连接功能
sed -i -e "10 s/yes/no/" -e "14 s/yes/no/" /etc/xinetd.d/tftp
#开启tftp和xinetd
systemctl start tftp
systemctl start xinetd
#拷贝一份模板文件至/etc/dhcp/目录下,并改名为dhcpd.conf
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#修改分配网段地址
sed -i -e "32 s/10.254.239.0/192.168.184.0/" -e "32 s/224/0/" /etc/dhcp/dhcpd.conf
#修改地址池
sed -i -e "33 s/10.254.239.10/192.168.184.100/" -e "33 s/10.254.239.20/192.168.184.200/" /etc/dhcp/dhcpd.conf
#默认网关指向本机TFTP服务器的IP地址
sed -i "34c option routers 192.168.184.50;" /etc/dhcp/dhcpd.conf
#禁用DNS动态更新,并指定服务器地址(本机IP),指定要下载的PXE引导程序文件
sed -i "14 s/^#//" /etc/dhcp/dhcpd.conf
sed -i "14a next-server 192.168.184.50;" /etc/dhcp/dhcpd.conf
sed -i "15a filename \"pxelinux.0\";" /etc/dhcp/dhcpd.conf
开启dhcp服务
systemctl  start dhcpd
#复制内核文件即初始化镜像文件到TFTP根目录下
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
#复制PXE引导程序到TFTP根目录下
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
#创建新目录,并把光盘镜像文件及自动应答文件复制到新目录中
mkdir /var/ftp/centos7
cd /mnt
cp -rf * /var/ftp/centos7/   #复制整个镜像文件内容至新目录
cp /root/kgc.cfg /var/ftp/kgc.cfg  #复制应答文件
#开启ftp服务
systemctl start vsftpd
#在tftp根目录下创建新目录,并配置启动菜单文件(默认文件名为default
mkdir /var/lib/tftpboot/pxelinux.cfg
echo "default auto    #指定默认入口名称
prompt 0              #设置是否等待用户选择,0位不等待
label auto            #为图形化安装引导入口
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.184.50/centos7     ks=ftp://192.168.184.50/kgc.cfg

label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.184.50/centos7

label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.184.50/centos7
" > /var/lib/tftpboot/pxelinux.cfg/default
#关闭防火墙和增强型安全机制
systemctl stop firewalld.service
setenforce 0

Insert picture description here

Insert picture description here

Insert picture description here

Guess you like

Origin blog.csdn.net/Lucien010230/article/details/114767493