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

【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
skipxreboot
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.cfgmkdir /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

相关文章:

  • Jetson JetPack-5.1.2-L4T-R35.4.1 修复deskew algorithm的问题
  • 基于Qt的UDP通信、TCP文件传输程序的设计与实现——QQ聊天群聊
  • Java Fasn 带您谈谈——开源、闭源
  • 利用Python进行数据分析【送书第六期:文末送书】
  • upload-labs关卡12(基于白名单的%00截断绕过)通关思路
  • Modbus转Profinet网关在大型自动化仓储项目应用案例
  • HTML玩转超链接a标签
  • linux 内存回收代码注释(未实现多代lru版本)
  • java_函数式接口
  • 浪潮信息云峦服务器操作系统KeyarchOS体验与实践
  • TensorFlow实战教程(二十八)-Keras实现BiLSTM微博情感分类和LDA主题挖掘分析
  • Flutter笔记:Matrix4矩阵变换与案例
  • 【前端】vue中合并表格行
  • MySQL 8.2 Command Line Client打开时一闪而过闪退问题
  • Vue 3.0 中重置 reactive 定义的响应式对象数据,恢复为初始值
  • 分享的文章《人生如棋》
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 4. 路由到控制器 - Laravel从零开始教程
  • axios 和 cookie 的那些事
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • ES6系列(二)变量的解构赋值
  • ES6之路之模块详解
  • hadoop集群管理系统搭建规划说明
  • JS函数式编程 数组部分风格 ES6版
  • leetcode98. Validate Binary Search Tree
  • Solarized Scheme
  • spring学习第二天
  • 听说你叫Java(二)–Servlet请求
  • 为视图添加丝滑的水波纹
  • 小程序button引导用户授权
  • 一、python与pycharm的安装
  • 你对linux中grep命令知道多少?
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • #pragma multi_compile #pragma shader_feature
  • #QT(一种朴素的计算器实现方法)
  • (42)STM32——LCD显示屏实验笔记
  • (C语言)fread与fwrite详解
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (南京观海微电子)——COF介绍
  • (转)http协议
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .bat批处理出现中文乱码的情况
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .libPaths()设置包加载目录
  • .Net IOC框架入门之一 Unity
  • .net Stream篇(六)
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .net解析传过来的xml_DOM4J解析XML文件
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • .NET中GET与SET的用法
  • @RestControllerAdvice异常统一处理类失效原因
  • @staticmethod和@classmethod的作用与区别