热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LinuxPXE高效批量网络装机

文章目录一、PXE原理和概念1.1PXE概述1.2优点1.3前提条件二、KickStart2.1KickStart概述2.2PXE服务的构建过程三、PXE装机实例3.1安装并启用D


文章目录

  • 一、PXE原理和概念
    • 1.1 PXE概述
    • 1.2 优点
    • 1.3 前提条件
  • 二、KickStart
    • 2.1KickStart 概述
    • 2.2 PXE服务的构建过程
  • 三、PXE装机实例
    • 3.1 安装并启用 DHCP 服务
    • 3.2 安装并启用 TFTP 服务
    • 3.3 准备 PXE 引导程序pxelinux.0
    • 3.4 配置启动菜单文件
    • 3.5 安装ftp服务,准备 CentOS 7 安装源
  • 四、实现 Kickstart 无人值守安装




一、PXE原理和概念


1.1 PXE概述

PXE 是由 Intel 公司开发的网络引导技术,工作在 Client/Server 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。

PXE 严格来说并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。

协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE
client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。

运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client(将
要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务
器时需要增加相应的 PXE 设置。

此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。


1.2 优点

规模化:同时装配多台服务器

自动化:安装系统、配置各种服务

远程实现:不需要光盘、U 盘等安装介质


1.3 前提条件

客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导。

网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。

服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。

其中,第一个条件实际上是硬件要求,目前绝大多数服务器和大多数 PC 都能够提供此支持,只需在 BIOS 设置中允许从 Network 或 LAN 启动即可。



二、KickStart


2.1KickStart 概述

KickStart 是一种无人职守安装方式。

KickStart 的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg 的文件;在其后的安装过程中(不只局限于生成 KickStart 安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart 生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。

这样,如果 KickStart 文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉
安装程序从何处取 ks.cfg 文件,然后去忙自己的事情。等安装完毕,安装程序会根据 ks.cfg 中设置的重启选项来重启系统,并结束安装。


2.2 PXE服务的构建过程

1.PXE客户机发出DHCP请求,向DHCP服务器申请IP地址。

2.DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,
并且告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,
默认在TFTP共享目录/var/lib/tftpboot/下

3.PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。

4.TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。

5.PXE客户机通过网络来启动到系统安装主界面。

6.PXE客户机向文件共享服务器(ftp、http、nfs等)发起获取centos或windows系统安装文件的请求。

7.文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。

8.PXE客户机进入到安装提示向导界面,用户需要手动来完成系统安装的操作。
在这里插入图片描述



三、PXE装机实例

提前准备:
一台作为pxe服务器,一台作为裸金属客户机,绑定同一块网卡,裸金属客户机vmnet1网卡取消勾选dhcp配置
关闭selinux和防火墙

一台主机:
1)配置双网卡 一个作用是dhcp,一个是使用网络源安装环境包
2)DHCP部署
3)tftp-server 服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
4)syslinux ###用来提供pxe的引导程序
5)xinetd ###用来托管tftp
6)vsftpd ###用来放置安装镜像,通过ftp访问镜像安装
7)kickstart ###用来无人值守安装


3.1 安装并启用 DHCP 服务

yum -y install dhcp
cp -rfp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 配置文件里做如下设置:
vim /etc/dhcp/dhcpd.conf
ddns-update-style none; ###禁止动态更新subnet 192.168.100.0 netmask 255.255.255.0 { ###配置网段range 192.168.100.40 192.168.100.50; ###配置地址池option routers 192.168.100.100; ###配置网关option domain-name-servers 114.114.114.114;next-server 192.168.100.100; ###指定tftp服务器的地址(*)filename "pxelinux.0"; ###指定pxe引导程序的文件名(*)
}systemctl start dhcpd
systemctl enable dhcpd

3.2 安装并启用 TFTP 服务

yum -y install tftp-server
yum -y install xinetdvim /etc/xinetd.d/tftp service tftp
{socket_type = dgramprotocol = udpwait = no ###wait no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接,表示是否开启多线程一起工作,否则需要等待user = rootserver = /usr/sbin/in.tftpdserver_args = -s /var/lib/tftpboot ###指定TFTP根目录(引导文件的存储路径) -c允许上传disable = no ###disable no表示开启TFTP服务 per_source = 11 ###通过限制一个主机的最大连接数,从而防止某个主机独占某个服务,这里每个IP地址的连接数是11个cps = 100 2 ###表示服务器最多启动100个连接,如果达到这个数目将停止启动新服务2秒。在此期间不接受任何请求flags = IPv4
}###准备 tftp 需要共享出去的文件
mount /dev/cdrom /mnt
cd /mnt/images/pxeboot/###内核文件 内核初始化镜像文件 /var/lib/tftpboot/ 站点
cp initrd.img vmlinuz /var/lib/tftpboot/systemctl start xinetd
systemctl enable xinetd
systemctl start tftp
systemctl enable tftp

3.3 准备 PXE 引导程序pxelinux.0

yum provides */pxelinux.0 ###查找这个文件是由哪个软件包安装的,当不是一个路径和一个软件包时用*/
yum -y install syslinux
rpm -ql syslinux | grep pxelinux ###查找pxe引导程序的位置
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ ###拷贝到tftp的根目录下,系统引导文件

3.4 配置启动菜单文件

mkdir /var/lib/tftpboot/pxelinux.cfg ###默认pxelinux.cfg是没有的需要手动创建,注意它是一个目录而非文件虽然是以.cfg结尾以下为纯手工配置default菜单文件
vim /var/lib/tftpboot/pxelinux.cfg/default default auto ###指定默认入口名称 ,对应下面的label auto
prompt 1 ###设置是否等待用户选择,1 表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式label auto ###默认的图形安装kernel vmlinuz append initrd=initrd.img method=ftp://192.168.100.100/centos7 ###method必须指定网络路径label linux text ###文本安装模式,出现boot:时输入linux textkernel vmlinuz append text initrd=initrd.img method=ftp://192.168.100.100/centos7 label linux rescue ###救援模式,出现boot:时输入linux rescuekernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7

3.5 安装ftp服务,准备 CentOS 7 安装源

yum -y install vsftpdmount /dev/cdrom /mntmkdir /var/ftp/centos7cp -rf /mnt/* /var/ftp/centos7 ###将镜像复制其中systemctl start vsftpd

四、实现 Kickstart 无人值守安装

1.准备安装应答文件
(1)安装system-config-kickstart工具yum install -y system-config-kickstart

(2)打开"Kickstart配置程序”窗口
通过桌面菜单"应用程序"–>“系统工具”–>"Kickstart”打开或执行"system-config-kickstart”命令打开

在这里插入图片描述

3、配置选项
默认语言设为“中文(简体)”
时区设为“Asia/Shanghai”
设置root密码
高级配置中勾选“安装后重启”。
在这里插入图片描述

安装方法
选FTP
FTP服务器:ftp://192.168.100.100
FTP目录:centos7
在这里插入图片描述

引导装载程序选项

“安装类型”:安装新引导装载程序
“安装选项”:在主引导记录(MBR)中安装引导装载程序
在这里插入图片描述
主引导记录:清除主引导记录
分区:删除所有现存分区
磁盘标签:初始化磁盘标签
布局:添加分区
挂载点:/boot,文件系统类型:xfs,固定大小:500M
文件系统类型:swap,固定大小:4096M

挂载点:/,文件系统类型:xfs,使用磁盘上全部未使用空间

在这里插入图片描述

网络配置:
添加网络设备“ens33”
网络类型设为“DHCP”在这里插入图片描述

防火墙配置:
禁用 SELinux、禁用防火墙
在这里插入图片描述
安装后脚本:
勾选“使用解释程序”:/bin/bash
在这里插入图片描述
4、保存自动应答文件
选择“Kickstart 配置程序”窗口的“文件”–>“保存”命令,选择指定保存位置,文件名为ks.cfg
默认保存在/root/ks.cfg在这里插入图片描述
在这里插入图片描述

5、配置安装软件包
可以根据需要将/root/anaconda-ks.cfg 的软件包安装脚本复制到 ks.cfg文件中,只需要复制%packages 到%end 部分即可。

如果需要自己配置软件包,需要编辑ks.cfg文件
vim ks.cfg
添加至最后%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@development
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11
chrony%end如要求最小化安装,可复制下面内容添加到最后vim ks.cfg
%packages
@^minimal
%end

6、编辑引导菜单文件 default,添加 ks 引导参数

vim /var/lib/tftpboot/pxelinux.cfg/default

在这里插入图片描述






推荐阅读
  • PHP程序员玩转Linux系列 搭建FTP代码开发环境
    PHP程序员玩转Linux系列搭建FTP代码开发环境-PHP程序员玩转Linux系列文章:有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的是让大家 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • linux ftp 线程数设置,Linux搭建ftp在windows下这么访问,需要怎么设置【设置vsftp最大连接数和每个ip的最大连接数】...
    文章来源:http:zhidao.baidu.comlink?urlLOfStD1kcxGhI_D5qC7oka3_4QZc1nn1SJwWaSd4onWoVl5Wt ... [详细]
  • 阿里云如何部署php(2023年最新分享)
    导读:很多朋友问到关于阿里云如何部署php的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • 本文介绍在使用vmware中配置centos6.5时遇到的网络问题,包括host-only和natip的配置,以及无法上网的原因。同时提供了解决方法,包括去掉host-only配置文件中的gateway。 ... [详细]
  • SVN 功能说明(简版)
    Subversion(SVN)是什么?SVN是一种版本管理系统,是开源软件的基石。即使在沟通充分的情况下,多人维护同一份源代码的一定也会 ... [详细]
  • Jenkins的分布式构建,在Jenkins的配置中叫做节点,分布式构建能够让同一套代码或项目在不同的环境(如:Windows和Linux系统)中编译、部署等。将jenkins项目 ... [详细]
  • 【教程】SecureCRT8.5安装和注册的详细步骤及操作指南
    00.目录文章目录00.目录01.SecureCRT8.5介绍02.SecureCRT8.5的特性03.SecureCRT8.5的特点04.SecureCRT8.5安装05.Sec ... [详细]
  • Pycharm配置文档教程
    1桌面找到快捷方式双击打开234需要自行注册5看自己喜欢选择喜欢白色选择左边喜欢黑色选择右边67可选如果你对Markdown感兴趣;或者会用就点击install不敢兴趣调到步骤88 ... [详细]
  • Ionic微信开发之环境配置
    在开发微信版的H5页面时,如果需要正常调用微信公众号的开放接口(测试或者发布情况),根据官方要求需要保证网页域名和后端维护的一致。因此,进行真服测试就显得很有必要。WebStorm ... [详细]
author-avatar
ZERO-DOEN
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有