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

2023-11-07

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 如何设置 tmux 在启动时打开指定的窗口?

    如何设置 tmux 使其在启动时打开指定的窗口 您可以编写一个小 shell 脚本来启动 tmux 以及所需的程序 我在一个名为 dev tmux 的 shell 脚本中包含以下内容 开发环境 bin sh tmux new session
  • 从 Xlib 转换为 xcb

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • 如何在 Linux 中使用 C 语言使用共享内存

    我的一个项目有点问题 我一直在试图找到一个有据可查的使用共享内存的例子fork 但没有成功 基本上情况是 当用户启动程序时 我需要在共享内存中存储两个值 当前路径这是一个char and a 文件名这也是char 根据命令参数 启动一个新进
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • 如何使用Android获取Linux内核的版本?

    如何在 Android 应用程序中获取 Linux 内核的版本 不是 100 确定 但我认为调用 uname r 需要 root 访问权限 无论如何 有一种不太肮脏的方法可以做到这一点 那就是 System getProperty os v
  • 如何使用 UNIX shell 脚本删除平面文件的页眉和页脚记录?

    我有一个平面文件 如下所示 如何使用 UNIX shell 脚本从文件中删除页眉和页脚并重写同一文件 9 20050427 HEADER RECORD 0000000 00000 000000000 123456 00 654321 DAT
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • x86-64 AMD 上 CALL 指令的操作数生成

    以下是示例程序 objdump 的输出 080483b4
  • 在 macOS 上使用 find 时出现“非法选项”错误

    我试图列出末尾仅带有字母 R 的文件 我用了find在 macOS 终端中如下所示 find type f name R 但我收到消息说illegal option t 第一个参数find是它应该开始寻找的路径 路径 表示当前目录 find
  • Python 3.6 shell 中可点击的 html 链接?

    比如说 我有一个充满 html 链接的列表 看起来像这样 https www nytimes com 2017 05 19 realestate they can afford to buy but they would rather re
  • 如何wget目录中最新的文件

    我想编写一个 bash 脚本来下载并安装最新的每日构建程序 RStudio 是否有可能使wget仅下载目录中最新的文件http www rstudio org download daily desktop http www rstudio
  • 使用简单数据结构在 Bash 脚本中进行深度优先搜索

    我正在尝试按照上面所述进行操作 我相对容易地设计了广度优先搜索 该脚本的目标是创建用户输入的具有一定深度和广度的目录结构 我正在尝试改变广度优先实现以支持深度优先搜索 这是我得到的 depthsearch local open seed l
  • 使用.sh脚本设置环境变量

    如何编写 sh 脚本以在 Ubuntu 14 上全局设置环境变量 i e bin sh sets this in to master etc environment export DB HOST 123 我知道我可以运行这个脚本 它只会将其
  • 具有多处理功能的 Python 代码无法在 Windows 上运行

    以下简单的绝对初学者代码在 Ubuntu 14 04 Python 2 7 6 和 Cygwin Python 2 7 8 上运行 100 但在 Windows 64 位 Python 2 7 8 上挂起 我使用另一个片段观察到了同样的情况
  • 跨 CPU 内核的 rdtsc 精度

    我从一个线程发送网络数据包 并在运行于不同 CPU 核心上的第二个线程上接收回复 我的流程测量每个数据包发送和接收之间的时间 类似于 ping 我使用 rdtsc 来获得高分辨率 低开销的计时 这是我的实现所需要的 所有测量结果看起来都很可
  • 如何在Linux中自动启动需要X的应用程序

    我试图在系统进入运行级别 5 时自动启动 X 应用程序 这样做的正确方法是什么 我写了一个脚本并将其放在 etc init d 中 我已运行适当的 chkconfig 命令来设置 etc rcX d 目录中的符号链接 一切工作正常 除了当我
  • 如何找到进程启动时使用的原始用户名?

    有一个 perl 脚本需要以 root 身份运行 但我们必须确保运行该脚本的用户最初没有以用户 foo 身份登录 因为它将在脚本运行期间被删除 那么 我如何查明自登录以来可能已多次起诉的用户是否在该链中的任何时间都没有模拟过 foo 我发现

随机推荐

  • Linux网络编程:IO多路复用——poll

    服务器端代码 poll 对select技术的改进 include
  • 英语介词学习(基础)

    文章目录 前言 介词概念 常见介词 空间介词 时间介词 方式介词 原因介词 关于介词 数值介词 状态介词 排除介词 总结 前言 本文主要目的是为了辨析各类基础介词 为了更好的背诵一些短语介词 如有错误 欢迎指正 介词概念 介词用来表示前置词
  • JAVA基础编程练习题

    编写一个程序 输入两个整数 计算它们的和并输出结果 import java util Scanner public class Main public static void main String args Scanner input n
  • os.getcwd()以及os.walk()用法

    os getcwd 以及os walk 用法 os getcwd 获取当前代码文件所在路径 例如 os getcwd 输出 C Users 17843 Jyputer notebook file word转换pdf源代码 os walk 获
  • 使用java实现基础的家庭记账程序

    家庭记账程序 需求说明 具体操作 完整代码 总结 需求说明 1 该程序能够记录家庭的收入 支出 并能打印收支明细表 2 项目采用分级菜单的方式 主菜单如下 3 假设家庭起始的生活基本金为10000元 4 每次登记收入 菜单2 后 收入的金额
  • java种的 author,在Intellij中自动完成@author

    I m migrating from Eclipse to Intellij Idea One thing I couldn t figure out yet is autocompletion of the author JavaDoc
  • linux命令后缀-d和 都表示后台启动,Linux复习材料_关宇亮整理版.doc

    Linux复习材料 关宇亮整理版 Linux目录 第1章1 Linux的内核版与发行版的区别2 2个开发标准规范 4 常见的Linux发行版 5 Unix与Linux的关系与区别 6 Linux的特性与优缺点 7 Linux的安装与分区 分
  • “微众区块链”品牌正式发布

    4月27日下午 以 新机遇 新使命 新出发 为主题的微众区块链品牌全新发布会在深圳成功举行 会上 微众银行正式宣布推出 微众区块链 全新品牌 并提出了 构筑ESG可信基础设施 促进公平与可持续 的全新使命 致力于为ESG 环境 社会和公司治
  • Netty 系列之编解码器和 handler 的调用机制

    编码和解码的基本介绍 编写网络应用程序时 因为数据在网络中传输的都是二进制字节码数据 在发送数据时就需要编码 接收数据时就需要解码 codec 编解码器 的组成部分有两个 decoder 解码器 和 encoder 编码器 encoder
  • C++数据结构之--ArrayList(数组实现list)详解

    什么是List List是一种常见的数据结构 用于存储一系列有序的元素 它允许存储 访问 添加 删除和修改元素 可以根据需要动态调整大小 以下是List的一些常见特点和用途 List中的元素按照它们被添加的顺序进行存储 并可以根据索引进行访
  • 希沃展台如何使用_简单又实用的希沃视频展台

    而希沃7系列视频展台恰是一款简单又实用的视频展台 拥有强大的展示能力 这一切无疑得益于其强大的技术内核 让许多手机都惊叹的1200w超清像素摄像头 比上一代芯片面积高出77 的数码相机级别传感器 1080P下水平垂直解析度可达1800线以上
  • linux team 模式,linux 聚合口 team & libteam 简介

    详见 libteam 项目 wiki libteam ppt 架构 目标 替代 bonding 功能 最终干掉 bonding 内核中的代码尽可能少 把内核当成是 puppet 控制逻辑在用户空间实现 puppeteer 整个项目称为 te
  • Python环境搭建之OpenCV

    一 openCV介绍 Open Source Computer Vision Library OpenCV于1999年由Intel建立 如今由Willow Garage提供支持 OpenCV是一个基于BSD许可 开源 发行的跨平台计算机视觉
  • 初识 EasyExcel-转载

    EasyExcel 转载 mob604756ef7d062021 09 15 15 28 00 文章标签数据实体类解决方法apache封装文章分类代码人生阅读数1276 EasyExcel 一 初识 EasyExcel 1 Apache P
  • 怎样更改计算机文件图标,文件夹图标怎么改?电脑更换文件夹图标的方法

    正常情况下 电脑桌面文件夹图标都是默认的 是不是偶尔看着有些审美疲劳 一些用户想让自己的文件夹漂亮一些或者有辨识度 想要改文件夹图标 那么文件夹图标怎么改 这里小编为大家推荐一种更改桌面图标的方法 1 打开需要更换图标的文件所在的文件夹 以
  • nohup和screen都是后台执行用的指令,有啥区别?

    Screen 之前用服务器跑模型ssh断了 程序也就跑死了 我当时是用到了screen指令 之前写的可以去看看 大致流程 1 首先安装screen yum install y screen 2 创建screen实例 screen S me
  • Retrofit中的ResponseConverter的处理顺序

    Retrofit选择ResponseConverter的流程如下 mermaid svg A0BABLoNrnvTlAVA label font family trebuchet ms verdana arial font family v
  • STM32之完成对SD卡的数据写入

    本文内容 本文主要掌握SD卡协议原理 用STM32F103完成对SD卡的数据读取 一 SD卡模块介绍 一 简介 SD存储卡是一种基于半导体快闪记忆器的新一代记忆设备 由于它体积小 数据传输速度快 可热插拔等优良的特性 被广泛地于便携式装置上
  • 为什么速度环给的是正反馈_速度环、位置环增益作用

    伺服是由 3 个反馈系统构成 位置环 速度环 电流环 越是内侧的环 越 需要提高其响应性 不遵守该原则 则会产生偏差和震动 由于电流环是最内侧 的环 以确保了其充分的响应性 所以我们只需要调整位置环和速度环即可 调 整的主要参数是 位置环增
  • shell脚本详解(八)——一键部署自动化装机(PXE无人值守)

    shell脚本一键部署自动化装机 PXE无人值守 一 PXE无人值守自动化装机 二 使用shell脚本一键部署 一 PXE无人值守自动化装机 详情请点击 PXE及无人值守 二 使用shell脚本一键部署 bin bash 查看是否有本地yu