centos linux部署pxe服务器实现自动装机,照做就行

2023-11-18

大家好,今天分享一下在centos linux上部署pxe服务器来实现自动化的装机

关于这个东西的话,记住一点就可以了

就是pxe可以给很多服务器自动的安装操作系统,这样省时省力

这是pxe服务器的工作流程 (我个人觉得他已经很详细了)

在这里插入图片描述

下面来做一下这个

我们pxe服务器的ip地址是192.168.1.12

使用远程终端来连一下服务器

在这里插入图片描述

因为我们使用网络yum 源的方式来安装软件

所以,我们要看一下服务器的网络是否有问题

[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=128 time=42.2 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=2 ttl=128 time=29.1 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=3 ttl=128 time=23.0 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=4 ttl=128 time=18.5 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 4115ms
rtt min/avg/max/mdev = 18.545/28.257/42.227/8.907 ms
[root@localhost ~]# 

这样网络就会没问题的

安装dhcp服务

[root@localhost ~]# yum install  dhcp -y

安装Apache

[root@localhost ~]# yum install httpd -y

安装syslinux

[root@localhost ~]# yum install  syslinux -y

安装tftp服务器端程序

[root@localhost ~]# yum install  tftp-server.x86_64 -y

看dhcp目录

[root@localhost ~]# cd /etc/dhcp/
[root@localhost dhcp]# ll
总用量 8
drwxr-xr-x. 2 root root   37 610 2021 dhclient.d
drwxr-xr-x. 2 root root   28 420 12:08 dhclient-exit-hooks.d
-rw-r--r--. 1 root root  120 610 2021 dhcpd6.conf
-rw-r--r--. 1 root root  117 610 2021 dhcpd.conf
drwxr-x---. 2 root dhcpd  28 420 12:08 scripts

这是dhcp的主配置文件

[root@localhost dhcp]# cat dhcpd.conf 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#

一看什么都没有

拷贝一个现成的模板到我们dhcp主配置文件当中

[root@localhost dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf 
cp:是否覆盖"./dhcpd.conf"? y
[root@localhost dhcp]# 

编辑dhcp主配置文件

[root@localhost dhcp]# vim dhcpd.conf 
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.13 192.168.1.40;
  default-lease-time 3600;
 filename "pxelinux.0";
 next-server 192.168.1.12;

我们要这几个

截图
在这里插入图片描述

重启dhcp服务

[root@localhost dhcp]# systemctl  restart  dhcpd

进入到TFTP指定目录

[root@localhost ~]# cd /etc/xinetd.d/
[root@localhost xinetd.d]# ls
tftp
[root@localhost xinetd.d]# 

编辑这个文件

[root@localhost xinetd.d]# vim tftp 

改一下这个配置 写成no就可以了

在这里插入图片描述
重启tftp服务

[root@localhost xinetd.d]# systemctl  restart  tftp.socket 

看一下状态

[root@localhost xinetd.d]# systemctl  status  tftp.socket 
● tftp.socket - Tftp Server Activation Socket
   Loaded: loaded (/usr/lib/systemd/system/tftp.socket; disabled; vendor preset: disabled)
   Active: active (listening) since 三 2022-04-20 13:27:17 CST; 45s ago
   Listen: [::]:69 (Datagram)

420 13:27:17 localhost.localdomain systemd[1]: Listening on Tftp Server Activation Socket.
420 13:27:17 localhost.localdomain systemd[1]: Starting Tftp Server Activation Socket.

注意看这个目录

在这里插入图片描述

进入指定目录

[root@localhost xinetd.d]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
[root@localhost tftpboot]# 

在这里插入图片描述

[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./

在这里插入图片描述

这是菜单文件

[root@localhost tftpboot]# cp /usr/share/syslinux/menu.c32 ./

新建一个挂载点

[root@localhost tftpboot]# mkdir /media/cdrom/

实现挂载

[root@localhost tftpboot]# mount /dev/cdrom  /media/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载

把光盘下的引导文件拷贝到当前目录下(安装)

[root@localhost tftpboot]# cp /media/cdrom/isolinux/vmlinuz ./
[root@localhost tftpboot]# cp /media/cdrom/isolinux/initrd.img ./
[root@localhost tftpboot]# 

现在这个目录下就有了四个文件

在这里插入图片描述
新建这个目录(这个文件名是一定要这样写的)

[root@localhost tftpboot]# mkdir pxelinux.cfg

进入改目录

[root@localhost tftpboot]# cd pxelinux.cfg/

创建文件

[root@localhost pxelinux.cfg]# touch default
[root@localhost pxelinux.cfg]# ls
default

编辑default这个文件

[root@localhost pxelinux.cfg]# vim default 

把这个复制进去就可以了,地址改成你自己的就可以了

default menu.c32
timeout 300
prompt 0

label 1
menu label ^1) Install CentOS7
menu default
kernel vmlinuz
append initrd=initrd.img method=http: //192.168.1.12/CentOS7 ks=http://192.168.1.12/ks.cfg

重启Apache

[root@localhost pxelinux.cfg]# systemctl restart  httpd

进入这个目录

[root@localhost pxelinux.cfg]# cd /var/www/html/

这个不用管,这只是随意写的一个测试脚本文件,与这个部署没有关系

[root@localhost html]# ls
testphp.php

在这里插入图片描述

挂载

[root@localhost html]# mount /dev/cdrom  /var/www/html/CentOS7/

这样就可以看见光盘的内容

[root@localhost html]# cd CentOS7/
[root@localhost CentOS7]# ls
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@localhost CentOS7]# 

浏览器测试:(Apache服务器正常)
在这里插入图片描述

这个时候,在浏览器上可以访问到光盘的文件

在这里插入图片描述

在root目录下

在这里插入图片描述
将这个文件拷贝到/var/www.html下

[root@localhost ~]# cp anaconda-ks.cfg /var/www/html/

将指定文件改个名

[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
anaconda-ks.cfg  CentOS7  testphp.php
[root@localhost html]# mv anaconda-ks.cfg  ks.cfg

浏览器访问,会有一个403的错误,因为我们的权限不够

在这里插入图片描述

加一个读取权限

[root@localhost html]# chmod +r ks.cfg 

在这里插入图片描述

现在访问就是正常的(这是自动脚本的文件)

在这里插入图片描述

编辑这个文件

[root@localhost html]# vim ks.cfg 

注销掉第五行

在这里插入图片描述

加上这一行

在这里插入图片描述

把这个图形化注释掉

在这里插入图片描述
使用文本安装

在这里插入图片描述

把第36行也注释掉

在这里插入图片描述

这样写

在这里插入图片描述

在最后加上重启的命令

在这里插入图片描述
重启服务

[root@localhost html]# systemctl  restart  httpd.service 
[root@localhost html]# systemctl  restart  tftp.socket 
[root@localhost html]# systemctl  restart  dhcpd

新建一个虚拟机

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
到这里,pxe就可以部署成功了,谢谢大家

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

centos linux部署pxe服务器实现自动装机,照做就行 的相关文章

  • /sys/device/ 和 dmidecode 报告的不同 CPU 缓存大小

    我正在尝试获取系统中不同缓存级别的大小 我尝试了两种技术 a 使用 sys device 中的信息 这是输出 cat sys devices system cpu cpu0 cache index1 size 32K cat sys dev
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • awk 在循环中使用时不打印任何内容[重复]

    这个问题在这里已经有答案了 我有一堆使用 file 1 a 1 txt 格式的文件 如下所示 A 1 B 2 C 3 D 4 并使用以下命令添加包含每个文件名称的新列 awk print FILENAME NF t 0 file 1 a 1
  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • 调用 printf 系统子例程在汇编代码中输出整数错误[重复]

    这个问题在这里已经有答案了 来回 在windows7控制台窗口中运行gcc s2 asm 然后生成一个exe文件 运行a exe 然后崩溃 为什么 s2 asm 代码由以下源代码生成 int m m 1 iprint m s2 asm请参考
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • 添加文件时运行 shell 命令

    我的 Linux 机器上有一个名为 images 的文件夹 该文件夹连接到一个网站 该网站的管理员可以向该网站添加图片 但是 当添加图片时 我想要一个命令来运行调整目录中所有图片的大小 简而言之 我想知道当新文件添加到特定位置时如何使服务器
  • 使用 shell 脚本将行附加到 /etc/hosts 文件

    我有一个新的 Ubuntu 12 04 VPS 我正在尝试编写一个安装脚本来完成整个 LAMP 安装 我遇到问题的地方是在 etc hosts文件 我当前的主机文件如下所示 127 0 0 1 localhost Venus The fol
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • .net-core:ILDASM / ILASM 的等效项

    net core 是否有相当于 ILDASM ILASM 的功能 具体来说 我正在寻找在 Linux 上运行的东西 因此为什么是 net core ildasm 和 ilasm 工具都是使用此存储库中的 CoreCLR 构建的 https
  • 与 pthread 的进程间互斥

    我想使用一个互斥体 它将用于同步对两个不同进程共享的内存中驻留的某些变量的访问 我怎样才能做到这一点 执行该操作的代码示例将非常感激 以下示例演示了 Pthread 进程间互斥体的创建 使用和销毁 将示例推广到多个进程作为读者的练习 inc
  • 如何在 Linux 中使用 C 语言使用共享内存

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

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 绕过 dev/urandom|random 进行测试

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

随机推荐

  • Linux常用命令-压缩解压命令

    一 gz gzip 文件 压缩文件 只能压缩文件 gunzip 压缩文件 解压文件 二 tar 打包目录 tar gz tar命令压缩语法 tar 选项 zcf 压缩后文件名 目录 c 打包 v 显示详细信息 f 指定文件名 z 打包同时压
  • 49天精通Java,第10天,Java继承和多态

    目录 一 继承 二 多层次继承 三 多态 1 多态的优点 2 多态存在的三个必要条件
  • Visual Studio 2015 debug 显示 utf-8 汉字

    这两天调试程序 内容是utf8编码的 visual studio 默认显示ansi的 所以中文全乱码了 上网上只找到vs2013及之前版本的解决办法 于是 自己对比vs2013的解决办法 让vs2015也显示了utf 8字符 具体在 C P
  • 12333新农合网上查询_社保卡余额如何查询?这五个方法轻松查询

    阅读本文前 请您先点击上面的 蓝色字体 再点击 关注 这样您就可以继续免费收到文章了 每天都有分享 完全是免费订阅 请放心关注 注 本文转载自网络 不代表本平台立场 仅供读者参考 著作权属归原创者所有 现在大多数人都有社保卡 就算是农民朋友
  • UPLOAD labs 第四关

    第四关考点是 htaccess 作为一个铁废物 来百度一下 大意就是htaccess是apache服务中的一个配置文件 负责相关目录下的网页配置 它负责相关目录下的网页配置 通过htaccess文件 可以帮我们实现 网页301重定向 自定义
  • Ubuntu 17.04系统创建Android Studio桌面快捷方式的方法

    下面以 Android Studio 为例 阐述Ubuntu系统中创建桌面快捷方式的方法 假设已将 Android Studio 下载到 home
  • 在 Win11安装 Ubuntu20.04子系统 WSL2 到其他盘(此处为D盘,因为C盘空间实在不能放应用)

    该篇文章记录了在 win11 中安装 Ubuntu20 04 子系统 先安装到 C盘 再通过打包的方式 安装到 D盘 上 因为是安装后写的文章 可能会有所疏漏 所以有任何问题可以在评论区留言 0 设置 windows 功能 打开这三个 配置
  • everything 和quicklook联动

    everything 和quicklook联动 老凶残的解决方案了 https www logcg com archives 1584 html
  • 数据库原理之关系数据库关系运算

    关系数据库关系运算 选择 投影 链接 除运算 选择运算 选择运算是从关系R中选取使逻辑表达式F为 真的元组 是从行的角度进行的运算 投影运算 投影操作主要是从列的角度进行运算 但投影之后不仅取消可原关系中的某些列 而且还可能取消某些元组 避
  • Qt自定义代理与实例

    代理的定义 代理 Delegate 就是在视图组件上为编辑数据提供编辑器 如在表格组件中编辑一个单元格的数据时 缺省是使用一个QLineEdit编辑框 代理负责从数据模型获取相应的数据 然后显示在编辑器里 修改数据后 又将其保存到数据模型中
  • android自定义属性详解,android开发教程之自定义属性用法详解

    android开发中要对代码进行生成 然而生成后的代码也可以进行更改的 下面是爱站技术频道小编带给大家的android开发教程之自定义属性用法详解 希望能给你学习这方面知识带来帮助 最近项目中经常需要用到自定义控件 因此自定义属性也是经常要
  • 基于EasyCode定制Mybatisplus全自动单表实现:新增/批量新增/修改/批量删除/分页查询/ID查询

    基于EasyCode定制Mybatisplus全自动单表实现CRUD接口 分页查询 ID查询 新增 批量新增 修改 批量删除 注意使用了MybatisPlus的自动填充功能 和insertBatchSomeColumn扩展批量插入功能 分页
  • 浅析MySQL JDBC连接配置上的两个误区

    相信使用MySQL的同学都配置过它的JDBC驱动 多数人会直接从哪里贴一段URL过来 然后稍作修改就上去了 对应的连接池配置也是一样的 很少有人会去细想这每一个参数都是什么含义 今天我们就来聊两个比较常见的配置 是否要开启autoRecon
  • 推荐一款cpp解析json工具--rapidjson

    项目地址 http code google com p rapidjson 上面有很详细的介绍 http code google com p rapidjson wiki UserGuide 作者介绍说 Rapidjsonis an att
  • k8备份与恢复-Velero

    简介 Velero 是一款可以安全的备份 恢复和迁移 Kubernetes 集群资源和持久卷等资源的备份恢复软件 Velero 实现的 kubernetes 资源备份能力 可以轻松实现 Kubernetes 集群的数据备份和恢复 复制 ku
  • 华为OD机试真题-优秀学员统计 【2023.Q1】

    题目描述 公司某部门软件教导团正在组织新员工每日打卡学习活动 他们开展这项学习活动已经一个月了 所以想统计下这个月优秀的打卡员工 每个员工会对应一个id 每天的打卡记录记录当天打卡员工的id集合 一共30天 请你实现代码帮助统计出打卡次数t
  • 算法:双指针解决数组划分和数组分块问题

    文章目录 实现原理 实现思路 典型例题 移动0 复写0 快乐数 盛最多水的容器 有效三角形的个数 三数之和 四数之和 总结 在快速排序或者是其他和数组有关的题目中 有很经典的一类题目是关于数组划分的 数组划分就是把数组按照一定的规则划分为不
  • Androidmainfest主配置文件以及intent的跳转

  • openwrt利用arp获取局域网设备IP

    openwrt利用arp获取局域网设备IP 文章目录 openwrt利用arp获取局域网设备IP 1 前言 2 ARP概念 3 arp局域网搜索设备实现思路和代码 1 前言 目前我们通过arp协议搜索局域网设备 根据局域网设备地址判断子设备
  • centos linux部署pxe服务器实现自动装机,照做就行

    大家好 今天分享一下在centos linux上部署pxe服务器来实现自动化的装机 关于这个东西的话 记住一点就可以了 就是pxe可以给很多服务器自动的安装操作系统 这样省时省力 这是pxe服务器的工作流程 我个人觉得他已经很详细了 下面来