shell脚本详解(八)——一键部署自动化装机(PXE无人值守)

77 篇文章 2 订阅
17 篇文章 20 订阅

shell脚本一键部署自动化装机(PXE无人值守)

一、PXE无人值守自动化装机

详情请点击:PXE及无人值守

二、使用shell脚本一键部署

#!/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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
以下是一个简单的示例脚本,可以使用sed命令更改配置文件中的IP地址和其他参数来部署DNS服务器和PXE服务器。 ```bash #!/bin/bash # 安装所需软件 apt-get update apt-get install -y isc-dhcp-server dnsmasq # 配置DNS服务器 sed -i 's/#listen-on port 53/listen-on port 53/' /etc/bind/named.conf.options sed -i 's/#allow-query/allow-query/' /etc/bind/named.conf.options sed -i 's/#forwarders {/forwarders {/' /etc/bind/named.conf.options sed -i 's/#\t0.0.0.0;/\t8.8.8.8;/g' /etc/bind/named.conf.options sed -i 's/#\t0.0.0.0;/\t8.8.4.4;/g' /etc/bind/named.conf.options sed -i 's/#};/};/' /etc/bind/named.conf.options # 配置PXE服务器 sed -i 's/#dhcp-range=/dhcp-range=/' /etc/dnsmasq.conf sed -i 's/#dhcp-boot=/dhcp-boot=/' /etc/dnsmasq.conf sed -i 's/#pxe-service=X86PC/pxe-service=X86PC/' /etc/dnsmasq.conf sed -i 's/#pxe-prompt/pxe-prompt/' /etc/dnsmasq.conf sed -i 's/#enable-tftp/enable-tftp/' /etc/dnsmasq.conf sed -i 's/#tftp-root/tftp-root/' /etc/dnsmasq.conf # 启动服务 systemctl restart isc-dhcp-server systemctl restart dnsmasq ``` 此脚本假设您已经安装了必要的软件包,如`isc-dhcp-server`和`dnsmasq`。在此示例中,我们使用sed命令来修改DNS和PXE服务器的配置文件,以使用正确的IP地址和其他参数。最后,我们重启了两个服务,以使更改生效。 请注意,此脚本并不完整,并且可能需要根据您的环境进行更改。此外,您可能需要根据您的网络设置和服务器配置文件进行更改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白的成功进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值