文章目录

  • 1. PXE 概述
    • 1.1 PXE 定义
    • 1.2 PXE 批量部署的优点
    • 1.3 PXE 搭建的前提条件
    • 1.4 PXE 架构示意图
  • 2. 搭建 PXE 远程安装服务器
    • 2.1 安装并启用 TFTP 服务
    • 2.2 安装并启用 DHCP 服务
    • 2.3 准备 Linux 内核、初始化镜像文件
    • 2.4 准备 PXE 引导程序
    • 2.5 安装并启用 FTP 服务,准备 CentOS7 安装源
    • 2.6 配置启动菜单文件
    • 2.7 关闭防火墙和 selinux,重启服务
    • 2.8 验证 PXE 网络安装
  • 3. 实现 Kickstart 无人值守安装
    • 3.1 安装 Kickstart 工具
    • 3.2 打开 "Kickstart 配置程序" 窗口
    • 3.3 配置 Kickstart 选项
      • (1) 基本配置
      • (2) 安装方法
      • (3) 引导装载程序选项
      • (4) 分区信息
      • (5) 网络配置
      • (6) 防火墙配置
      • (7) 安装后脚本(不是必需)
      • (8) 保存自动应答文件
    • 3.4 配置需要安装的软件包
    • 3.5 编辑引导菜单文件 default,添加 ks 引导参数
    • 3.6 验证无人值守安装

1. PXE 概述

1.1 PXE 定义

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

1.2 PXE 批量部署的优点

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

1.3 PXE 搭建的前提条件

客户端:
  客户机的网卡要支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在 BIOS 设置中允许从 Network 或 LAN 启动即可。
服务端:
  网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置,服务器要通过 TFTP 服务(简单文件传输协议)来提供系统内核和引导镜像文件的下载。

1.4 PXE 架构示意图

2. 搭建 PXE 远程安装服务器

  PXE 远程安装服务器集成了 CentOS7 安装源、TFTP 服务、DHCP 服务、FTP 服务,能够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。

2.1 安装并启用 TFTP 服务

  • TFTP 是一个基于 UDP 协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小文件传输的应用场合。TFTP 服务默认由 xinetd 服务进行管理,使用 UDP 端口 69。
  • xinetd 是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级 Internet 服务,xinetd 服务的配置文件位于 /etc/xinetd.conf ,配置时只要将 “disable = yes” 改成 “disable = no” 即可。
yum -y install tftp-server xinetd
#修改 TFTP 服务的配置文件
vim /etc/xinetd.d/tftp
......protocol         = udp                  #TFTP默认使用UDP协议wait             = no                   #no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接server_args      = -s /var/lib/tftpboot #指定TFTP根目录(引导文件的存储路径)disable          = no                   #no表示开启TFTP服务
......
#开启服务并设置开机自启
systemctl start tftp && systemctl enable tftp
systemctl start xinetd && systemctl enable xinetd

2.2 安装并启用 DHCP 服务

  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用 UDP 协议工作。
yum -y install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#修改 DHCP 服务的配置文件,添加如下内容
vim /etc/dhcp/dhcpd.conf
ddns-update-style none;      #禁用 DNS 动态更新
next-server 192.168.10.20;   #指定 TFTP 服务器的地址
filename "pxelinux.0";       #指定要下载的 PXE 引导程序的文件subnet 192.168.10.0 netmask 255.255.255.0 {    #声明要分配的网段地址range 192.168.10.100 192.168.10.200;         #设置地址池option routers 192.168.10.20;                #设置默认网关地址,指向 TFTP 服务器的 IP 地址
}
#开启 DHCP 服务并设置开机自启
systemctl start dhcpd && systemctl enable dhcpd

2.3 准备 Linux 内核、初始化镜像文件

VMware 虚拟机设置里 CD/DVD 一栏设备状态勾选已连接
mount /dev/sr0 /mnt
cd /mnt/images/pxeboot
cp vmlinuz /var/lib/tftpboot/       #复制 linux 系统的内核文件到 TFTP 根目录下
cp initrd.img /var/lib/tftpboot/    #复制初始化镜像文件(linux 引导加载模块)到 TFTP 根目录下

2.4 准备 PXE 引导程序

yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

2.5 安装并启用 FTP 服务,准备 CentOS7 安装源

yum -y install vsftpd
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7/     #过程较长,需等待一会,可加 & 后台执行,jobs 查看
systemctl start vsftpd && systemctl enable vsftpd

2.6 配置启动菜单文件

  • 启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像
  • 默认的启动菜单文件在 TFTP 根目录(/var/lib/tftpboot/)的 pxelinux.cfg 子目录下,文件名为 default
mkdir /var/lib/tftpboot/pxelinux.cfgvim /var/lib/tftpboot/pxelinux.cfg/default
default auto        #指定默认入口名称
prompt 0            #设置是否等待用户选择,"1" 表示等待用户控制,"0" 表示不等待,不想手动就设 "0" 吧label auto            #图形安装(默认)引导入口,label 用来定义启动项
kernel vmlinuz      # kernel 和 append 用来定义引导参数
append initrd=initrd.img
method=ftp://192.168.10.20/centos7label linux text #文本安装引导入口
kernel vmlinuz
append text initrd=initrd.img
method=ftp://192.168.10.20/centos7label linux rescue   #救援模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img
method=ftp://192.168.10.20/centos7

2.7 关闭防火墙和 selinux,重启服务

systemctl stop firewalld && systemctl disable firewalld
setenforce 0    #临时关闭 selinux
systemctl restart vsftpd
systemctl restart tftp
systemctl restart dhcpd

2.8 验证 PXE 网络安装

使用 VMware 创建的空机(不要挂载光盘)进行测试,虚拟机内存至少需要 2GB,否则在启动安装时可能会报错。
开启虚拟机,在提示字符串 “boot:” 后直接按 Enter 键(或执行 “auto” 命令),将会自动通过网络下载安装文件,并进入默认的图形安装入口:

  • 执行 “linux text” 命令,则进入文本安装入口
  • 执行 “linux rescue” 命令,则进入救援模式

    回车后开始自动装机。

3. 实现 Kickstart 无人值守安装

  通过 PXE 技术安装 Linux 系统使得安装介质不再受限于光盘、移动硬盘等设备,大大提高了系统安装的灵活性。但是安装期间仍需要手动选择语言、键盘类型、指定安装源等一系列交互操作,当需要批量安装时非常不方便。通过使用 Kickstart 工具配置安装应答文件,自动完成安装过程中的各种设置,实现真正的无人值守安装。

3.1 安装 Kickstart 工具

yum -y install system-config-kickstart

3.2 打开 “Kickstart 配置程序” 窗口

通过桌面菜单 "应用程序" --> "系统工具" --> "Kickstart" 打开
或
执行 "system-config-kickstart" 命令打开

如果是使用最小化安装的系统没有图形界面可以尝试手动安装图形界面,参考:
Linux 安装图形界面

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release && yum clean all && yum makecache
yum -y groupinstall "X Window System" "GNOME Desktop" kde-l10n-Chinese
startx  #进入图形化界面

3.3 配置 Kickstart 选项

(1) 基本配置

(2) 安装方法

(3) 引导装载程序选项

(4) 分区信息

  • /boot 500M
  • /home 4096M
  • /swap 4096M
  • / 分配剩余所有空间

    分区总览

    除 / ,/boot ,swap 这三个分区外按需配置。

(5) 网络配置



(6) 防火墙配置

(7) 安装后脚本(不是必需)

勾选 "使用解释程序":/bin/bash
#脚本内容,注意改成自己的 IP
rm -rf /etc/yum.repos.d/*
echo '[local]
name=local
baseurl=ftp://192.168.10.20/centos7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo


上面的步骤有英文有中文,是因为我在不同的机器上实验的,不过步骤都是一样的。

(8) 保存自动应答文件

选择 “kickstart 配置程序” 窗口的 “文件” - “保存” 命令,选择指定保存的位置,文件名为 ks.cfg,默认保存在 /root/ks.cfg,我们需要将其保存在 /var/ftp 目录。

cp /root/ks.cfg /var/ftp/ks.cfg


[root@c7-1 ~]#ll /var/ftp
总用量 4
drwxr-xr-x 8 root root  220 9月   1 19:19 centos7
-rw-r--r-- 1 root root 1164 9月   1 23:46 ks.cfg
drwxr-xr-x 2 root root    6 6月  10 00:15 pub

3.4 配置需要安装的软件包

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

%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
kexec-tools%end

如要求最小化安装,可复制如下内容:

%packages
@^minimal
%end

这个每个人可能不太一样,复制自己的。

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

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


注意这步 ks 文件调用错了,安装会出问题。

3.6 验证无人值守安装

重启服务端服务:

systemctl restart vsftpd && systemctl restart dhcpd && systemctl restart tftp

当客户机每次以 PXE 方式引导时,将自动下载 ks.cfg 应答配置文件,然后根据其中的设置安装 CentOS7 系统。

参考:
Linux 批量装机

PXE+Kickstart 高效批量网络装机相关推荐

  1. PXE高效批量网络装机(含PXE+kickstart自动安装)

    目录 一.PXE概述 PXE批量部署的优点 PXE(Preboot eXcution Environment) 服务端 客户端 二.配置PXE装机服务器 基本部署过程 1.准备CentOS 7 安装源 ...

  2. PXE高效批量网络装机

    前言 目录 前言 1.1 PXE简介 1.2 PXE批量部署的优点 1.3 KickStart 概述 1.4  PXE服务器和客户机的工作过程: ​ 二.配置PXE装机服务器 2.1 搭建 PXE 远 ...

  3. 第四十集 Linux PXE高效批量网络装机部署

    提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 Linux PXE高效批量网络装机部署 PXE概述 部署PXE远程安装服务 PXE高效批量网络装机 PXE概述 1.PXE全名: (P ...

  4. 25PXE高效批量网络装机

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

  5. Linux-PXE高效批量网络装机!超详细的实验步骤+超详细的理论!(可跟做!新手都能做起来)

    PXE高效批量网络装机 一.部署PXE远程安装服务 1.1.搭建PXE远程安装服务器 1.1.1.PXE概述 1.1.2.配置PXE装机服务器 1.2.验证PXE网络安装 二.实现Kickstart无 ...

  6. Linux网络服务:PXE高效批量网络装机

    目录 一.理论 1.PXE批量网络装机概述 2.搭建 PXE 远程安装服务器 3.实现Kickstart无人值守安装 二.实验 1.搭建PXE远程安装服务器 2.安装Kickstart无人值守安装 3 ...

  7. PXE高效批量网络装机实现Kickstart无人值守安装

    目录 1,什么是PXE 2, PXE批量部署的优点 3,部署要求 4, 搭建PXE远程安装服务器 5,等待用户控制的方式实现PXE启动菜单安装 6,PXE客户机自动安装---俗称无人值守(以上系统环境 ...

  8. pxe高效批量网络装机--手把手教学

    文章目录 引言 一.什么是PEX 1.原理和概念 2.PXE批量部署的优点 3.搭建PXE网络体系的前提条件 4.KickStart 概述 5.PXE服务的构建过程 6.搭建 PXE 远程安装服务器 ...

  9. PXE高效批量网络装机比较乱,用心看

    1.部署 PXE 远程安装服务 在大规模的 Linux 应用环境中,如 Web 群集.分布式计算等,服务器往往并不配备光驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的 US ...

最新文章

  1. java函数实现进制转换与java实现八进制到十进制的转换(百练OJ:2735:八进制到十进制)
  2. mysql数据库系统配置文件_MySQL数据库(6)----配置文件 my.cnf 的使用
  3. 每天一道LeetCode-----寻找地增序列中第一个大于等于目标元素的位置
  4. 静态顺序表的基本操作
  5. Android官方开发文档Training系列课程中文版:线程执行操作之创建多线程管理器
  6. mysql dp.cal 显示汉子_计算1到N中各个数字出现的次数 --数位DP
  7. 上海新阳半导体收到ASML-1400光刻机 将用于研发193nm ArF光刻胶
  8. 1347 格子游戏 (并查集)
  9. 去哪里找自媒体视频剪辑中的素材?
  10. nv驱动版本linux,完善支持NV显卡Linux驱动275.19正式版,275.19增加了对
  11. 联想微型计算机m4350q升级,拆解:高度集成化的联想M4350q
  12. Docker 官方安装文档
  13. Win11新建不了文本文档?Win11右键无法新建文本文档的解决方法
  14. CATIA V5 R19 WIN7 64位系统的安装方法
  15. 冒泡排序基本思想及其复杂度分析
  16. 30分钟教你写出10分的淘宝标题
  17. CSP题目:小明种苹果树
  18. win10软件安装出现错误代码2503/2502,解决方案
  19. 多个点坐标存储在str中,如何转换成LineString?
  20. vs code 语法_VS Code上的Java现在具有语法模式和SonarLint支持

热门文章

  1. Caused by: java.lang.ClassNotFoundException: org.springframework.boot.actuate.health.OrderedHealthAg
  2. JS中判断两个字符串,明明看着相等却判断不相等的问题
  3. uniapp微信小程序分享后,点击进入分享页面无法回到首页
  4. Java匹马行天下之一顿操作猛如虎,框架作用知多少?,3轮技术面和1轮Hr面拿下offer
  5. 【等保三级】过等保三级需要哪些设备?大概多少钱?
  6. raspberry pi java8_java - Raspberry PI 2 Java 8 JVM错误 - 堆栈内存溢出
  7. 半波对称振子方向图_Matlab画平行二元半波振子阵立体方向图
  8. 基于有源钳位三电平的有源电力滤波器
  9. 874.walking-robot-simulation
  10. CelebA-HQ的jpg格式版转化