#!/bin/bash

read -p "请输入您的装机服务器:" ip
read -p "请输入您想要的ip最小值(1-255):" min
read -p "请输入您想要的ip最大值(1-255),必须比最小值小:" max
read -p "请输入您的yum源:" yum_source sub_ip="${ip%.*}" # 从右边开始删除第一个.及其右边的数据
tftp=/var/lib/tftpboot/ # 创建yum仓库
cat>/etc/yum.repo.s/my_yum.repo <<EOF
[development]
name=my_yum
baseurl=$yum_source
enabled=
gpgcheck=
EOF # 安装 httpd dhcp tftp-server syslinux
yum -y install httpd syslinux tftp-server dhcp >/dev/null >/var/log/pxe.error # 配置镜像文件
if [ ! -d /var/www/html/rhel7 ];then
mkdir /var/www/html/rhel7
fi
mount /dev/cdrom /var/www/html/rhel7 >/dev/null >/var/log.pxe.error # 配置资源文件
if [ ! -d /menu ];then
mkdir /menu
fi
mount /dev/cdrom /menu >/dev/null >/var/log.pxe.error # 配置DHCP
cat>/etc/dhcp/dhcpd.conf <<EOF
subnet ${sub_ip}. netmask 255.255.255.0 {
range ${sub_ip}.${min} ${sub_ip}.${max};
option domain-name-servers $ip;
option routers ${sub_ip}.;
default-lease-time ;
max-lease-time ;
next-server $ip;
filename "pxelinux.0";
}
EOF # 配置相关资源
if [ -d ${tftp}pxelinux.cfg ];then
rm -rf ${tftp}pxelinux.cfg
fi
mkdir ${tftp}pxelinux.cfg/ # 创建菜单文件
cp /usr/share/syslinux/pxelinux. $tftp # 网卡引导文件
cp /menu/isolinux/vesamenu.c32 $tftp # 部署图形模块
cp /menu/isolinux/splash.png $tftp # 部署背景图片
cp /menu/isolinux/vmlinuz $tftp # 部署内核
cp /menu/isolinux/initrd.img $tftp # 部署驱动 # 装机基本设置
cat >/var/www/html/ks.cfg <<EOF
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $$/Vr5HpR.$aSGgGZKDOb5j4jp/abcMM0
# Use network installation
url --url="http://$ip/rhel7"
# System language
lang zh_CN
# Firewall configuration
firewall --disabled
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled # Network information
network --bootproto=dhcp --device=eth0
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="xfs" --grow --size= %post --interpreter=/bin/bash
useradd lily
echo 'redhat' | passwd --stdin lily
%end %packages
@base %end
EOF # 菜单设置
cat >${tftp}/pxelinux.cfg/default <<EOF
default vesamenu.c32
timeout
#display boot.msg
prompt vesamenu.c32 label linux
menu label ^Install RHEL7
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://$ip/ks.cfg
EOF #启动服务
systemctl restart dhcpd
systemctl restart tftp
systemctl restart httpd

脚本实现PXE装机的更多相关文章

  1. Linux shell编写脚本部署pxe网络装机

    Linux shell编写脚本部署pxe网络装机 人工安装配置,Linux PXE无人值守网络装机  https://www.cnblogs.com/yuzly/p/10582254.html 脚本实 ...

  2. PXE装机

    支持 centOS 6 支持 PXE 装机的网卡必须自带 ROM(非意识性存储器)存储内容包括:DHCP 客户端,TFTP 客户端,PXE 协议客户端,将网卡设置第一启动项. DHCP:自动分配 IP ...

  3. linux初学者-pxe装机篇

    linux初学者-pxe装机篇 PXE的网络装机是客户机从自己的网卡启动,向本网络中的DHCP服务器索取ip,并从本网络的TFTP服务器中索取启动文件进行装机.此装机需要kickstart.tftp. ...

  4. linux上的PXE装机服务的搭建

    PXE 先安装一下依赖服务 yum -y install vsftpd dhcp tftp syslinux tftp-server cd /var/ftp/pub/ mkdir dvd 设置权限 c ...

  5. pxe装机试验 2019.8.21

    部署FTP服务 1.安装FTP服务,并将安装源复制到/var/ftp/centos7目录下: [root@pxe ~]# yum -y install vsftpd [root@pxe ~]# mkd ...

  6. pxe装机部署

    批量全自动安装操作系统 dhcp:自动分配IP tftp:微系统安装系统 httpd:网络源 检查环境(永久性关闭selinux) setenforce 0 sed -i s/=enforcing/= ...

  7. Linux PXE + Kickstart 自动装机

    大规模装机时,使用无人值守装机便可大大简便人工操作,提高效率. PXE 网络安装 配置双网卡 这里ens33为nat网络,ens37为仅主机网络,配置ens37 [root@localhost ~]# ...

  8. Service系统服务(五):PXE基础装机环境、配置并验证DHCP服务、配置PXE引导、验证PXE网络装机、PXE+kickstart自动装机

    一.PXE基础装机环境 目标: 本例要求为后续的PXE服务器构建提供RHEL7软件仓库,完成下列任务: 1> 在CentOS真机部署Web目录/var/www/html/rh7dvd   2&g ...

  9. PXE基础装机环境

                                                                    PXE基础装机环境 案例1:PXE基础装机环境 案例2:配置并验证DHC ...

随机推荐

  1. LeetCode 第 165 场周赛

    LeetCode 第 165 场周赛 5275. 找出井字棋的获胜者 5276. 不浪费原料的汉堡制作方案 5277. 统计全为 1 的正方形子矩阵 5278. 分割回文串 III C 暴力做的,只能 ...

  2. NOIP2012 DAY1 T2 国王游戏

    题目描述 恰逢 H国国庆,国王邀请n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最前面 ...

  3. DVWA漏洞演练平台 - 文件上传

    DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助w ...

  4. javascript 仿jQuery的无new构造函数

    /* 匿名函数 传入 window 值全局变量成为局部变量 */ (function(window,undefined) { /* 申明一个名为jQuery 的函数*/ function jQuery ...

  5. ASP.NET Core中间件实现分布式 Session(转载)

    ASP.NET Core中间件实现分布式 Session 1. ASP.NET Core中间件详解 1.1. 中间件原理 1.1.1. 什么是中间件 1.1.2. 中间件执行过程 1.1.3. 中间件 ...

  6. 【原创】大叔问题定位分享(36)openresty(nginx+lua)中获取不到post数据,ngx.req.get_body_data返回nil

    openresty(nginx+lua)中获取不到post数据,ngx.req.get_body_data返回nil This function returns nil if the request ...

  7. Vue项目中使用AES加密

    1.在vue中安装crypto-js        备注:千万不要安装错了,中间是 ‘-’连接,不是‘.’ 2.在项目的工具文件夹中新建 encryption.js,用于定义加密和解密的方法,方便调用 ...

  8. elment-UI中表头和内容错位

    当出现纵向滚动条的时候就错位了 网上找了很多方法发现对我的不生效 //把这样式添加到index.html中.或者app.vue中(必须是入口文件,才能全局起作用!)body .el-table th. ...

  9. 解决chrome没有允许添加flash的问题

    有时候测试的时候,需要开启flash 但是Chrome一般都是自己弹出来的 现在弹不出来怎么办 自己添加? chrome://settings/content/flash 对不起  根本没有的 怎么解 ...

  10. ASR测试方法---字错率(WER)、句错率(SER)统计

    一.基础概念 1.1.语音识别(ASR) 语音识别(speech recognition)技术,也被称为自动语音识别(英语:Automatic Speech Recognition, ASR), 狭隘 ...