PXE高效批量网络装机

2023-05-16

文章目录

  • PXE概述
  • PXE部署
  • kickstart无人值守部署

PXE概述

PXE批量部署的优点

规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质

在这里插入图片描述

PXE(Preboot eXcution Environment)
预启动执行环境,在操作系统之前运行
服务端

运行DHCP服务用来分配地址、定位引导程序
运行TFTP服务,提供引导程序下载

客户端

网卡支持PXE协议     (一般来说,主板支持pxe协议,网卡一定支持)
主板支持网络引导

Liunx操作系统引导过程

引导过程总览
开机自检(BIOS) MBR引导 GRUB菜单 加载内核(kernel) init进程初始化

配置PXE装机服务器
基本部署过程

1.准备CentOS 7 安装源(YUM仓库)
2.安装并启用TFTP服务 (因安装FTP服务)
3.提供Linux内核、PXE引导程序等
4.安装并启用DHCP服务
5.配置启动菜单

准备CentOS 7 安装源
CentOS 7 安装源支持HTTP、FTP、NFS等协议发布

[root@localhost~]# yum -y install vsftpd
[root@localhost]#mkdir /var/ftp/centos7
[root@localhost~]# cp -rf /media/cdrom/* /var/ftp/centos7/
lroot@localhost~]#systemctl start vsftpd

安装并启用TFTP服务
安装tftp-server软件包,启用tftp服务
配置文件位于/etc/xinetd.d/ftpd

[root@localhost~]# yum-y install tftp-server
[root@localhost]# vi /etc/xinetd.d/tftp  //修改配置值
server_args    =-s/var/lib/tftpboot
disable        =no
[root@localhost~]# systemctl start tftp
[root@localhost]# systemctl enable tftp

准备Linux内核、PXE引导程序
Linux内核、初始化镜像文件分别为vmlinuz和initrd.img
引导程序为pxelinux.0,由软件包syslinux提供

[root@localhost~]# cd /media/cdrom/images/pxeboot(位于系统镜像文件夹images/pxeboot下)
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot
[root@localhost~]# yum-y install syslinux
[root@localhost~]#cp /usr/sharelsyslinux/pxelinux.0 /var/lib/tftpboot(也拷贝到tftp的根目录)

DHCP服务的PXE设置

[root@localhost~]#yum -y install dhcp
[root@localhost-# vi letcldhcpldhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0{
	......
    option routers 192.168.4.254;
    option domain-name-servers192.168.4.254,202.106.0.20;
    range 192.168.4.254;(next-server:指定TFTP服务器地址)
    filename "pxelinux.0";(filename:指定要下载的引导程序文件)
}
[root@localhost~]# systemctl start dhcpd
[root@localhost一]#systemctl enable dhcpd

配置启动菜单文件

[rootalocalhost]#vi /var/lib/tftpboot/pxelinux.cfg/default(确保pxelinux.cfg目录已存在)
default auto
确保pxelinux.cfg
prompt1
label auto
	kernel vmlinuz
	append initrd=initrd.img method=ftp://192.168.4.254/centos7
label linux text
	kernel vmlinuz
	append text initrd=initrd.img method=ftp://192.168,4254lcentos7(文本模式安装)
label linux rescue
	kernel vmlinuz
	append rescue initrd=initrd.img method=ftp://192.168.4.254/cantos(进入救援模式)

验证PXE网络安装

为客户机安装系统
调整BIOS设置,以便从网络引导
自动获取IP地址,并指定CentOS 7 安装源
其余过程与本地安装相同

在这里插入图片描述

PXE部署

PXE 远程安装服务
工作在C/S模式,客户机通过网络从远程服务器下载引导镜像,并加载安装整个系统。

PXE实验
PXE建议在局域网环境下使用,因为有DHCP过程,所以要注意网卡上面的设置
此时,既会想上网安装软件包,又想与局域网内的主机连接,此时就要用到双网卡:
第一块网卡设置NAT模式
第二块网卡设置VM1仅主机模式

装一台虚拟机(裸硬件)
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述(镜像需要通 过PXE安装)

PXE服务器配置:
查看网卡是否配置成功:
[root@server1 ~]# ifconfig

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 20.0.0.11  netmask 255.255.255.0  broadcast 20.0.0.255
        inet6 fe80::e0e8:dfff:44ce:e5bb  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:a9:67:91  txqueuelen 1000  (Ethernet)
        RX packets 1874  bytes 2197252 (2.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 704  bytes 54719 (53.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:a9:67:9b  txqueuelen 1000  (Ethernet)
        RX packets 4  bytes 519 (519.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 103  bytes 18330 (17.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

配置双网卡的配置:

[root@server1 ~]# cd /etc/sysconfig/network-scripts/
[root@server1 network-scripts]# ls (发现没有ens37网卡)
ifcfg-ens33  ifdown-ippp    ifdown-sit       ifup-bnep  ifup-plip    ifup-Team          
[root@server1 network-scripts]# cp -p ifcfg-ens33 ifcfg-ens37
[root@server1 network-scripts]# vim ifcfg-ens37
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.100.100
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
DEVICE=ens37
ONBOOT=yes
[root@server1 network-scripts]# systemctl restart network (重启网络服务)
[root@server1 network-scripts]# ifconfig (修改网卡之后查看)
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 20.0.0.11  netmask 255.255.255.0  broadcast 20.0.0.255
        inet6 fe80::e0e8:dfff:44ce:e5bb  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:a9:67:91  txqueuelen 1000  (Ethernet)
        RX packets 2735  bytes 2277525 (2.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1364  bytes 165557 (161.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.100  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::5653:6be8:48b4:2811  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:a9:67:9b  txqueuelen 1000  (Ethernet)
        RX packets 7  bytes 1248 (1.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 454  bytes 75903 (74.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

二:安装DHCP服务

[root@server1 network-scripts]# yum -y install dhcp

覆盖DHCP的服务,并修改主配置文件

[root@server1 network-scripts]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes
[root@server1 network-scripts]# vim /etc/dhcp/dhcpd.conf 
 27 subnet 192.168.100.0 netmask 255.255.255.0 {
 28         range 192.168.100.20 192.168.100.30; 分区地址(准备地址池)
 29         option routers 192.168.100.100; 定义网关
 30         option domain-name-servers 114.114.114.114; 分配DNS地址
 31         next-server 192.168.100.100; 指向tftp服务器(自己)
 32         filename "pxelinux.0"; 引导文件位置
 33 }

[root@server1 network-scripts]# systemctl start dhcpd(启动dhcp服务)

安装引导程序文件

[root@server1 network-scripts]# yum -y install syslinux

查看安装后引导程序文件的位置:

qc:查看配置文件
pl:查看所有文件
[root@server1 network-scripts]# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/pxelinux.0

此时,引导程序文件需要放到TFTP路径(站点)下:

安装TFTP服务:[root@server1 network-scripts]# yum install tftp-server -y
查看TFTP服务的站点路径:
/etc/xinetd.d/tftp (配置文件)
/var/lib/tftpboot(站点文件)(重要)
此时,站点文件是需要放一些系统启动的必要的文件(压缩内核,菜单文件,初始化文件,引导程序文件等)

将引导程序文件需要放到TFTP路径(站点)下

[root@server1 network-scripts]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@server1 network-scripts]# ls /var/lib/tftpboot/(查看引导程序文件是否存在)
pxelinux.0

开启FTFP服务的功能

[root@server1 network-scripts]# vim /etc/xinetd.d/tftp 
8         socket_type             = dgram(连接类型)
9         protocol                = udp (协议:udp)
11         user                    = root(用户:root)
12         server                  = /usr/sbin/in.tftpd(服务命令脚本)
13         server_args             = -s /var/lib/tftpboot(根目录路径)(-s改为-c的话:允许上传)
14         disable                 = no(之前是yes,现在修改为no)(启用tftp功能)

安装vsftp服务

[root@server1 network-scripts]# yum install vsftpd -y

查看vsftpd站点位置

[root@server1 network-scripts]# rpm -ql vsftpd 
/var/ftp
[root@server1 network-scripts]# cd /var/ftp/ 
[root@server1 ftp]# ls
pub(默认的目录文件)
[root@server1 ftp]# mkdir centos7(新建一个cnetos7的目录)
[root@server1 ftp]# ls
centos7  pub

将镜像文件挂载到新建目录centos7目录下:

[root@server1 ftp]# mount /dev/sr0 /var/ftp/centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server1 ftp]# df -Th
/dev/sr0       iso9660   4.3G  4.3G     0  100% /var/ftp/centos7

[root@server1 ftp]# cd centos7/
[root@server1 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@server1 centos7]# cd images/
[root@server1 images]# ls
efiboot.img  pxeboot  TRANS.TBL
[root@server1 images]# cd pxeboot/
[root@server1 pxeboot]# ls
initrd.img(初始化文件)  TRANS.TBL  vmlinuz(内核文件)

将初始化文件 压缩内核文件放入tftp站点中

[root@server1 pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/

查看tftp站点下的文件(必须要满足有以下三个文件)

[root@server1 pxeboot]# ls /var/lib/tftpboot/
initrd.img  pxelinux.0  vmlinuz
[root@server1 pxeboot]# cd /var/lib/tftpboot/
[root@server1 tftpboot]# ls
initrd.img  pxelinux.0  vmlinuz

编写启动菜单:

[root@server1 tftpboot]# mkdir pxelinux.cfg
[root@server1 tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg(名称不能错)  vmlinuz
[root@server1 tftpboot]# cd pxelinux.cfg/
[root@server1 pxelinux.cfg]# ls
[root@server1 pxelinux.cfg]# vim default(自己编写)
default auto(默认模式)
prompt 1 

label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.100.100/centos7(初始化文件)

label linux tex t
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.100.100/centos7

label linux rescue (急救工具)
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7

关闭防火墙,核心防护,开启所有服务

[root@server1 pxelinux.cfg]# systemctl stop firewalld.service 
[root@server1 pxelinux.cfg]# setenforce 0
[root@server1 pxelinux.cfg]# systemctl start dhcpd
[root@server1 pxelinux.cfg]# systemctl start tftp
[root@server1 pxelinux.cfg]# systemctl start vsftpd

客户机:检查网卡是否为仅主机模式(进行PXE安装)
在这里插入图片描述
在这里插入图片描述
选择第四行(以网络方式运行,F10保存并退出)
在这里插入图片描述
回车,让其自动运行
在这里插入图片描述
发现镜像源是远端服务器提供
在这里插入图片描述
在这里插入图片描述

kickstart无人值守部署

基于PXE部署之再进行部署:

进入虚拟机,发现没有kickstart无人值守部署的工具,需要安装工具
在这里插入图片描述
安装kickstart工具

[root@server1 ~]# yum -y install system-config-kickstart 

按照PXE部署中的方式去新建一台虚拟机,验证是否需要无人值守的安装(当提示boot时,直接回车,不需要输入密码),发现是一步到位的安装方式

发现该工具以生成(系统工具中查看)
在这里插入图片描述
利用kickstart工具创建模板文件(密码设置为abcd1234)在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看文件是否上传至站点目录:

[root@server1 ~]#  cd /var/ftp/
[root@server1 ftp]# ls
centos7  ks.cfg  pub

[root@server1 ftp]# cd /root/(root的目录下复制文件中的内容作为模板)
[root@server1 ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@server1 ~]# vim anaconda-ks.cfg (以下为需要复制的内容)
%packages
@^gnome-desktop-environment
@backup-client
@base
@compat-libraries
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-apps
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-applications
@internet-browser
@java-platform
@legacy-x
@multimedia
@network-file-system-client
@networkmanager-submodules
@office-suite
@print-client
@security-tools
@smart-card
@x11
kexec-tools

%end
[root@server1 ~]# cd -
/var/ftp
[root@server1 ftp]# ls
centos7  ks.cfg  pub
[root@server1 ftp]# vim ks.cfg (将刚刚复制的内容粘贴至其内部的最后一行)

在这里插入图片描述
以上只是一个模板,需要进行引导,让他加载这个模板,引导的过程应写在哪里?

[root@server1 ftp]# cd /var/lib/tftpboot/
[root@server1 tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@server1 tftpboot]# cd pxelinux.cfg/
[root@server1 pxelinux.cfg]# ls
default
[root@server1 pxelinux.cfg]# vim default 
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfg(添加在该路径)

再次安装裸金属(重新安装虚拟机)时,不需要进行设置,即可自动安装系统

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

PXE高效批量网络装机 的相关文章

  • Spring常用注解(绝对经典)

    x1f3c6 作者简介 xff1a 哪吒 xff0c CSDN2022博客之星Top1 CSDN2021博客之星Top2 多届新星计划导师 博客专家 x1f4aa xff0c 专注Java硬核干货分享 xff0c 立志做到Java赛道全网T
  • c++排序方式

    选择排序 第一个数和后面n 1个数比 xff0c 找出最小的数 xff0c 替换第一个数 后面依此类推 include lt bits stdc 43 43 h gt using namespace std const int N 61 1
  • 程明明:面向弱监督的图像理解

    点击上方 深度学习大讲堂 可订阅哦 xff01
  • 白翔:复杂开放场景中的文本理解

    编者按 xff1a 李白的 秋浦歌 中有这样一句诗 xff1a 题诗留万古 xff0c 绿字锦苔生 xff0c 描绘了天执笔 地做纸 苔为墨 xff0c 挥毫题字的豪迈场景 xff0c 也展示了自然场景中文本类型的多样性 xff1b 而另两
  • 深度学习高效计算与处理器设计

    编者按 夫因朴生文 因拙生巧 相因相生 以至今日 在人工智能领域 机器学习研究与芯片行业的发展 即是一个相因相生的过程 自第一个深度网络提出 深度学习历经几次寒冬 直至近年 才真正带来一波AI应用的浪潮 这很大程度上归功于GPU处理芯片的发

随机推荐

  • 华科白翔教授团队ECCV2018 OCR论文:Mask TextSpotter

    本文经授权转自我爱计算机视觉52CV 华中科技大学白翔老师团队在自然场景文本检测与识别领域成果颇丰 xff0c 这篇被ECCV2018接收的论文 Mask TextSpotter An End to End Trainable Neural
  • 【CVPR2019】弱监督图像分类建模

    编者按 xff1a 获取大规模数据集的高置信标注是一个难点问题 xff0c 而解决此问题的弱监督学习更贴近人类对世界的认知机制 已有的弱监督图像分类研究 xff0c 通常局限于单标签或者多标签噪声场景 本文中 xff0c 将为大家介绍中科院
  • 重磅|中科视拓开源SeetaFace2人脸识别算法

    今天 xff0c 来自中科院计算所的人工智能国家队中科视拓宣布 xff0c 开源商用级SeetaFace2人脸识别算法 SeetaFace2采用商业友好的BSD协议 xff0c 这是在2016年9月开源SeetaFace1 0人脸识别引擎之
  • 学习笔记

    八种基本排序及其时间复杂度 https blog csdn net yang03 26 article details 80773280 参照上述文章中快速排序算法的源代码进行验证 在在线编程网站http www bccn net run
  • 杂记

    在线键盘敲击练习 xff1a https www dazima cn flash 127 html 有道云笔记网页网址 xff1a http note youdao com Android使用RenderScript实现图片的高斯模糊效果
  • ubuntu开机后桌面显示空白的问题

    原文 xff1a ubuntu开机只显示空白桌面解决方案 摘自 xff1a http www 2cto com os 201305 214687 html ubuntu开机只显示空白桌面解决方案 重新安装如下 xff1a sudo apt
  • 在ubuntu中安装编译工具mingw

    原文 xff1a Mingw xff1a 在Linux系统下编译Windows的程序 链接 xff1a http www sudu cn info html edu 20071227 87635 html Ubuntu下可以直接安装 xff
  • Spring Boot常用注解(绝对经典)

    x1f3c6 作者简介 xff1a 哪吒 xff0c CSDN2022博客之星Top1 CSDN2021博客之星Top2 多届新星计划导师 博客专家 x1f4aa xff0c 专注Java硬核干货分享 xff0c 立志做到Java赛道全网T
  • linux下deb包如何安装

    原文 xff1a 怎么安装deb软件 链接 xff1a http zhidao baidu com link url 61 w 6LOuxz 97ZrSjEDIZemmLBsQTsseXJCRe1qE5PkmFKhF3o8tRmAkBloU
  • ubuntu下用apt-get时一直报[正在等待报头]

    原文 xff1a ubuntu下用apt get是总是出现0 正在等待报头 链接 xff1a http blog csdn net nevasun article details 6268332 分类 xff1a Linux系统管理 201
  • Android软键盘弹出时把布局顶上去的解决方法

    原文 xff1a 解决Andriod软键盘出现把原来的布局给顶上去的方法 xff08 转 xff09 链接 xff1a http blog sina com cn s blog 9564cb6e0101g2eb html 决方法 xff0c
  • 一个android列表的适配器数据异步加载的问题

    一个android列表的适配器数据异步加载的问题 问题现象 xff1a 当点击一个ListView的子项 xff0c 等更新ListView完成时 xff0c 再点击一下ListView的子项 xff0c 程序运行良好 xff1b 当点击一
  • MHA高可用配置及故障切换

    MHA概述 传统的MySQL主从架构存在问题 单点故障 MHA概述 一套优秀的MySQL高可用环境下故障切换和主从复制的软件 MySQL故障过程中 xff0c MHA能做到0 30秒内自动完成故障切换 MHA的组成 MHA Manager
  • setenforce: SELinux is disabled解决方案

    解决方案 第一步 修改配置文件 root 64 www vi etc selinux config SELINUX 61 disabled 该为SELINUX 61 1 第二步 重启nginx服务 systemctl restart ngi
  • OpenStack

    文章目录 OpenStack概述OpenStack简介什么是云计算IaaSPaaSSaaSDaaS OpenStack发展历程OpenStack发展趋势OpenStack工作流程OpenStack管理流程QEMULibvirt OpenSt
  • 利用wget命令获取FTP资源

    wegt命令作用 xff1a 可以从对方的ftp服务器上直接下载现存的软件包 命令格式 xff1a wget ftp IP 软件包名称 若是防止网站上面现在相关软件包可以使用该命令 xff1a wget http IP 软件包名称 验证 x
  • 部署OpenStack架构

    文章目录 OpenStack环境部署部署思路基础环境配置配置OpenStack系统环境配置 Keystone 组件的搭建小结 Glance组件的搭建 OpenStack环境部署 虚拟机设备信息及需求 控制节点 xff08 ct xff09
  • FTP服务与DNS域名解析服务

    文章目录 FTP原理FTP匿名账户的部署过程 xff1a FTP本地用户的部署过程 xff1a 指定用户的宿主目录路径DNS 域名解析服务 DNS正向解析DNS反向解析DNS主从复制 FTP原理 ftp使用场合 xff1a 用于文件的传输
  • 【Redis 1】Redis基础知识概述

    一 Redis简介 1 Redis xff08 Remote Dictionary Server 远程字段服务 xff09 是一个开源的使用ANSI C语言编写 支持网络 科技与内存亦可持久化的日志型 key value数据库 xff0c
  • PXE高效批量网络装机

    文章目录 PXE概述PXE部署kickstart无人值守部署 PXE概述 PXE批量部署的优点 规模化 xff1a 同时装配多台服务器 自动化 xff1a 安装系统 配置各种服务 远程实现 xff1a 不需要光盘 U盘等安装介质 PXE x