当前位置: 首页 > article >正文

【shell脚本】全自动完成pxe无人值守批量装机脚本,匹配centos系列

本脚本采用的是搭建ftp服务器、tftp服务器、dhcp服务器来完成文件的传输

ks应答文件为最小化安装,免去图形化,可以实现一键装机~~

#!/bin/bash
yum -y install tftp-server dhcp vsftpd syslinux &> /dev/null
###脚本说明:需要输入dhcp地址池的最小主机编号和最大主机编号,请仔细阅读,并按要求赋值

IP=`ip a s ens33 | awk -F'[ /]+' 'NR==3{print $3}'`
NET=${IP%.*}.
read -p "请输入地址池最小主机号:" min
read -p "请输入地址池最大主机号:" max


#修改分配网段地址,指定服务器地址(本机IP),指定pxelinux.0引导程序文件
echo "subnet ${NET}0 netmask 255.255.255.0 {
range ${NET}${min} ${NET}${max};
option routers ${IP};
next-server ${IP};
filename \"pxelinux.0\";
}" > /etc/dhcp/dhcpd.conf
#开启dhcp服务
systemctl  start dhcpd

#开启TFTP服务,准备四大文件
sed -i  "14 s/yes/no/" /etc/xinetd.d/tftp
mkdir /var/ftp/centos7
mount /dev/sr0 /var/ftp/centos7
#复制内核文件即初始化镜像文件到TFTP根目录下
cp /var/ftp/centos7/isolinux/vmlinuz /var/lib/tftpboot/
cp /var/ftp/centos7/isolinux/initrd.img /var/lib/tftpboot/
#复制pxelinux.0引导程序到TFTP根目录下
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

#准备ks应答文件到ftp服务器上
echo "install
keyboard 'us'
rootpw --plaintext 123 
url --url=\"ftp://$(ifconfig ens33|grep netmask|tr -s " "|cut -d " " -f3)/centos7\"
lang en_US
firewall --disabled
auth  --useshadow  --passalgo=sha512
text
selinux --disabled
skipx

reboot
timezone Africa/Abidjan
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part /boot --fstype=\"xfs\" --size=4096
part swap --fstype=\"swap\" --size=4096
part / --fstype=\"xfs\" --grow --size=1

%post --interpreter=bash
useradd xueyin
echo \"123456\"|passwd --stdin xueyin
%end" > /var/ftp/ks.cfg



mkdir /var/lib/tftpboot/pxelinux.cfg
echo "default linux    
timeout 60             
label linux            
kernel vmlinuz
append initrd=initrd.img method=ftp://${IP}/centos7     ks=ftp://${IP}/ks.cfg
" > /var/lib/tftpboot/pxelinux.cfg/default

#开启tftp服务和ftp服务
systemctl start tftp
systemctl start vsftpd

#关闭防火墙和增强型安全机制,我电脑已经设置默认永久关闭的
systemctl stop firewalld.service
setenforce 0

http://www.kler.cn/news/137216.html

相关文章:

  • 微信小程序文字转语音播报案例
  • linux介绍与基本指令
  • 递归算法之二分搜索(Binary Search)详细解读
  • 软件工程的学习之详细绪论
  • 清朝笔记()
  • 路径参数和post请求方式在请求资源时如何选择------各自的优势和使用场景比较
  • Unity中Shader法线贴图(下)实现篇
  • 拉链表-spark版本
  • Python等于号标红怎么办,可能原因
  • React 自定义hook 之 防抖和节流
  • 很多人都在用的现货白银突破交易法 缺点需要注意
  • Qt Widget 自定义TitleBar带阴影窗口
  • 3PC(三阶段提交)
  • redis运维(七)基础通用命令
  • Flutter笔记:使用相机
  • 数字IC前端学习笔记:时钟切换电路
  • Idea2023 Springboot web项目正常启动,页面展示404解决办法
  • 论文《A recurrent latent variable model for sequential data》笔记:详解VRNN
  • 京东商品详情数据接口【京东API接口开发系列】,监控京东价格走势,接口代码示例,可高并发批量获取
  • 二百零四、Flume——登录监听窗口报错Ncat: bind to :::44444: Address already in use. QUITTING.
  • 005 OpenCV直方图
  • 【Spring】SpringBoot的扩展点之ApplicationContextInitializer
  • INFINI Labs 产品更新 | 发布 Easysearch Java 客户端,Console 支持 SQL 查询等功能
  • 基于java的学生考勤信息管理系统设计【附源码】
  • 面向未来的自动化:拥抱机器人即服务(RaaS)
  • Linux:动静态库