1.        PXE介绍

(1)PXE(preboot execute environment,预启动执行环境)是Intel公司提出的一项通过网络来引导系统的标准。

PXE最直接的表现是:在网络环境下工作站可以省去硬盘,但又不是通常所说的无盘站的概念,因为使用该技术的PC在网络方式下的运行速度要比有盘PC快三倍以上。当然使用PXE的PC也不是传统意义上的TERMINAL终端,因为使用了PXE的PC并不消耗服务器的CPU,RAM等资源,故服务器的硬件要求极低。

(2)kickstart与PXE的关系

kickstart实现方式依赖于PXE环境。通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统。

PXE客户端会调用网络协议(IP)、用户数据报协议(UDP)、动态主机设定协议 (DHCP)、小型文件传输协议(TFTP)等网络协议。

2.        PXE+KickStart大概运行原理:

(1)DHCP服务器用来给客户机分配IP;

(2)TFTP服务器用来存放PXE的相关文件,比如:系统引导文件;

(3)FTP服务器用来存放系统安装文件;

(4)KickStart所生成的ks.cfg配置文件;

(5)带有一个PXE支持网卡的将安装的主机。

3.        PXE+Kickstart+DHCP+TFTP+FTP/HTTP/NFS 实现半自动化装机

3.1        system-config-kickstart需要图形化界面包X server支持,可通过如下安装:

[root@WWcentos ~]# yum install xorg-x11-xauth此时已安装好:
[root@WWcentos ~]# rpm -qa |grep xorg-x11-xauth
xorg-x11-xauth-1.0.9-1.el7.x86_64

3.2        在MoBaXterm或者其他终端工具上配置参数ssh -X host

3.3        搭建DHCP服务:

(1)DHCP服务器主要实现在企业内部网络为客户端分配IP地址等网络参数。

(2)安装DHCP

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

(3)copy样例文件到/etc/dhcp/dhcpd.conf        安装后,DHCP服务的主配置文件为/etc/dhcp/dhcpd.conf,进行修改主配置文件以实现为客户端分配网络参数。

[root@192 ~]# cd /usr/share/doc/dhcp-4.2.5/
[root@192 dhcp-4.2.5]# ll
total 8
-rw-r--r--. 1 root root 3306 Jun 10  2021 dhcpd6.conf.example
-rw-r--r--. 1 root root 3262 Nov 20  2012 dhcpd.conf.example
drwxr-xr-x. 2 root root   70 Sep 12 09:15 ldap[root@192 dhcp-4.2.5]# cp dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? yes
[root@192 dhcp-4.2.5]#

(4)修改配置文件:vim /etc/dhcp/dhcpd.conf

ddns-update-style interim;      #设置DHCP服务器模式
ignore client-updates;          #禁止客户端更新
log-facility local7;            #使用rsyslog记录日志
subnet 192.168.137.0 netmask 255.255.255.0 {range 192.168.137.200 192.168.137.220;             #地址池option subnet-mask 255.255.255.0;                 #子网掩码option domain-name-servers 192.168.137.2;        #设置DNSoption domain-name "contoso.com";                   #域名搜索列表option routers 192.168.137.2;   #网关地址default-lease-time 600;    #默认租约期限(单位秒)max-lease-time 7200;    #最大租约期限(单位秒)next-server 192.168.137.138;    #下一个访问的服务器地址,tftp服务器地址。(这里写此主机的服务器地址)filename "pxelinux.0";    #在next-server上需要下载的文件
}

(5)重启服务 systemctl restart dhcpd

[root@192 yum.repos.d]# systemctl restart dhcpd[root@192 yum.repos.d]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor prese                                                                                   t: disabled)Active: active (running) since Mon 2022-09-12 10:32:07 CST; 20s ago

注意:如若出现报错,查看其日志信息:日志位置为 /var/log/messages

(6)检测端口信息 netstat -lntup |grep dhcpd

[root@192 yum.repos.d]# netstat -lntup |grep dhcpd
udp        0      0 0.0.0.0:67              0.0.0.0:*                       2019/dhcpd

3.4        搭建TFTP服务

(1)TFTP服务为客户端提供一种简单的文件共享,非常适用于传输小且简单的PXE启动文件。

(2)安装TFTP

[root@192 ~]# yum install xinetd tftp tftp-server -y

(3)修改配置文件:vim /etc/xinetd.d/tftp

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{socket_type             = dgramprotocol                = udpwait                    = yesuser                    = rootserver                  = /usr/sbin/in.tftpdserver_args             = -s /var/lib/tftpbootdisable                 = noper_source              = 11cps                     = 100 2flags                   = IPv4
}

即:disable = no        #将原来的yes改为no

(4)重启TFTP服务

[root@192 ~]# systemctl restart xinetd

(5)检查端口信息:netstat -a |grep tftp

[root@192 ~]# netstat -a |grep tftp
udp        0      0 0.0.0.0:tftp            0.0.0.0:*
[root@192 ~]# netstat -atunp |grep xinetd
udp        0      0 0.0.0.0:69              0.0.0.0:*                      2181/xinetd

3.5        获取pxelinux.0系统

(1)安装syslinux

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

(2)拷贝pxelinux.0文件到TFTP服务器:

[root@192 syslinux]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@192 ~]# cd /var/lib/tftpboot/
[root@192 tftpboot]# ll
total 28
-rw-r--r--. 1 root root 26759 Sep 12 11:08 pxelinux.0

(3)将镜像放在光驱运行

[root@192 tftpboot]# mount -o loop -t iso9660 /dev/sr0 /media/

(4)从光盘中复制启动镜像文件和启动配置文件到TFTP共享目录

[root@192 tftpboot]# cp -a /media/isolinux/* /var/lib/tftpboot/
[root@192 tftpboot]# ll
total 60868
-r--r--r--. 1 root root     2048 Nov  4  2020 boot.cat
-rw-r--r--. 1 root root       84 Oct 27  2020 boot.msg
-rw-r--r--. 1 root root      281 Oct 27  2020 grub.conf
-rw-r--r--. 1 root root 55129656 Oct 27  2020 initrd.img
-rw-r--r--. 1 root root    24576 Nov  3  2020 isolinux.bin
-rw-r--r--. 1 root root     3032 Oct 27  2020 isolinux.cfg
-rw-r--r--. 1 root root   190896 Nov  6  2016 memtest
-rw-r--r--. 1 root root    26759 Sep 12 11:08 pxelinux.0
-rw-r--r--. 1 root root      186 Oct  1  2015 splash.png
-r--r--r--. 1 root root     2215 Nov  4  2020 TRANS.TBL
-rw-r--r--. 1 root root   153104 Oct 31  2018 vesamenu.c32
-rwxr-xr-x. 1 root root  6769256 Oct 20  2020 vmlinuz

(5)在 /var/lib/tftpboot/ 下创建配置文件

[root@192 tftpboot]# mkdir pxelinux.cfg
[root@192 tftpboot]# cd pxelinux.cfg/
[root@192 pxelinux.cfg]# touch default
写入配置文件:
[root@192 pxelinux.cfg]# vi defaultdefault vesamenu.c32
timeout 60display boot.msg
menu backgroud splash2.png
menu title beautiful girllabel centos7 64 <Auto Installation>menu label Install CentOS Linux ^7 x86_64 <Auto>kernel vmlinuzappend initrd=initrd.img inst.stage2=ftp://192.168.137.138/pubinst.repo=ftp://192.168.137.138/pubinst.ks=ftp://192.168.137.138/ks.cfglabel centos7 64 <Manual Installation>menu label Install CentOS Linux ^7 x86_64 <Manual>kernel vmlinuzappend initrd=initrd.img inst.stage2=ftp://192.168.137.138/publabel localmenu defaultmenu label Boot from ^local drivelocalboot 0xffffmenu end

3.6        搭建FTP服务

(1)FTP(file Transfer Protocol)即文件传输协议。

Vsftp是一种利用FTP协议进行数据共享的软件,vsftp主要提供一种安全的数据共享服务。将Vsftp作为Centos系统文件的共享服务平台,当客户端从网络启动正式进入到安装界面后,还需要读取Centos光盘中的系统文件,以完成最后的安装。这些文件就通过Vsftp共享给网络用户。

(2)安装FTP

[root@192 ~]# yum install vsftpd -y

(3)重启vsftpd服务

[root@192 ~]# systemctl restart vsftpd

(4)将镜像挂载到ftp的发布目录,便于使用ftp访问

[root@192 ~]# umount /media    #先卸载原来挂载的目录
[root@192 ~]# mount /dev/sr0 /var/ftp/pub
mount: /dev/sr0 is write-protected, mounting read-only
[root@192 ~]# cd /var/ftp/pub/
[root@192 pub]# ll
total 696
-rw-r--r--.  3 root root     14 Oct 30  2020 CentOS_BuildTag
drwxr-xr-x.  3 root root   2048 Oct 27  2020 EFI
-rw-rw-r--. 21 root root    227 Aug 30  2017 EULA
-rw-rw-r--. 21 root root  18009 Dec 10  2015 GPL
drwxr-xr-x.  3 root root   2048 Oct 27  2020 images
drwxr-xr-x.  2 root root   2048 Nov  3  2020 isolinux
drwxr-xr-x.  2 root root   2048 Oct 27  2020 LiveOS
drwxr-xr-x.  2 root root 673792 Nov  4  2020 Packages
drwxr-xr-x.  2 root root   4096 Nov  4  2020 repodata
-rw-rw-r--. 21 root root   1690 Dec 10  2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--. 21 root root   1690 Dec 10  2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--.  1 root root   2883 Nov  4  2020 TRANS.TBL

3.7        关闭防火墙并关闭自启动

[root@192 ~]# systemctl stop firewalld
[root@192 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

3.8        关闭SElinux系统并且禁用SElinux

[root@192 pub]# getenforce
Enforcing
[root@192 pub]# setenforce 0此时:
[root@192 pub]# getenforce
Permissive
[root@192 pub]# vi /etc/sysconfig/selinux# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

即:将SELINUX=disabled

补充:Linux之SElinux的介绍:SElinux指安全增强型Linux系统,他是一个Linux内核模块,也是Linux的一个安全子系统。SElinux有两个级别:强制,警告。setenforce 0:表示警告(Permissive);setenforce 1:表示强制(Enforcing)。当SElinux功能开启后,会关闭系统中不安全的功能。

3.9        Kickstart文件的生成

(1)安装system-config-kickstart

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

(2)启动Kickstart图形界面,通过配置生成自动应答文件ks.cfg

(3)此时查看/root/目录下已经生成应答文件 ks.cfg

[root@192 ~]# ll
total 4
drwxr-xr-x. 2 root root   6 Sep  6 21:33 data
-rw-r--r--  1 root root 905 Sep 12 17:19 ks.cfg

(4)为ks.cfg添加新内容,以%packages开始,%end结尾,中间是需要安装的软件包或者软件包组的名称,这里我们安装core和base这两个包组。

[root@192 ~]# vi ks.cfg
[root@192 ~]# vi ks.cfg
[root@192 ~]# tail ks.cfg
# Disk partitioning information
part /boot --fstype="xfs" --size=300
part swap --fstype="xfs" --size=1000
part / --fstype="xfs" --grow --size=1%packages
@base
net-tools
@core
%end

(5)检查有无语法错误:

[root@192 ~]# ksvalidator ks.cfg

(6)将ks.cfg应答文件移动到/var/ftp/下

[root@192 ~]# mv ks.cfg /var/ftp/
[root@192 ~]# cd /var/ftp/
[root@192 ftp]# ll
total 6
-rw-r--r-- 1 root root  943 Sep 12 17:27 ks.cfg
drwxr-xr-x 8 root root 2048 Nov  4  2020 pub

(7)重启FTP服务

[root@192 ftp]# systemctl restart vsftpd

4.        创建虚拟机进行测试:

(1)新建虚拟机时需要注意:

(2)配置创建的虚拟机

光标移动至Boot,移动到最后,然后回车,按住shift和+号将Network这一行移动到第一行的位置,如下:

按F10保存退出:

32. PXE+Kickstart批量装机相关推荐

  1. PXE + kickstart批量装机及问题解决方案

    目录 一.常见的问题的解决方案 1.1 system-config-kickstart需要图形化界面包X server支持,可通过如下安装: 1.2 一定注意关闭防火墙以及selinux: 1.3验证 ...

  2. Pxe+Kickstart批量网络安装操作系统

    Pxe+Kickstart 实现无人值守批量网络安装操作系统 说明: 当批量给主机安装操作系统时,我们不可能用传统的方式--用光盘.U盘等,一台一台逐个安装,这样一来,费时又力,对于批量部署主机时,效 ...

  3. PXE网络批量装机+Kickstart无人值守安装

    1.什么是PXE? PXE( Preboot eXecution Environment,预启动执行环境 )是由Inter公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网 ...

  4. 虚拟机批量安装LINUX,基于vmware workstation的 pxe + kickstart批量安装linux

    [一]环境配置 vmware workstation 14.1.2 用于创建虚拟机 linux镜像 CentOS-7-x86_64-DVD-1804(7.5版) 虚拟机使用的操作系统 FTP服务 用来 ...

  5. PXE+Kickstart 无人值守装机

                                                                                    PXE一键装机   PXE(Preboo ...

  6. linux kickstart乱码,PXE+kickstart 批量安装部署centos6系统

    安装的条件: 服务器端: 支持TFTP:提供引导文件与系统安装所必须的文件 支持DHCP服务器:分配IP地址.定位TFTP服务器位置. 客户端: 网卡支持PXE协议 主板支持网络引导 环境准备: 1. ...

  7. linux批量装机 非pxe,Linux-PXE批量装机

    1.tftpyuminstallxinetdtftp-server-y:xinetd:超级进程vim/etc/xinetd.d/tftp:编写tftp配置文件disable=no:关机禁制选项启动tf ...

  8. PXE+Kickstart 高效批量网络装机

    文章目录 1. PXE 概述 1.1 PXE 定义 1.2 PXE 批量部署的优点 1.3 PXE 搭建的前提条件 1.4 PXE 架构示意图 2. 搭建 PXE 远程安装服务器 2.1 安装并启用 ...

  9. Linux批量装机PXE+Kickstart

    文章目录 一.什么是PXE 二.图解PXE装机过程 三.实验 一.什么是PXE PXE,全称 Preboot eXecution Environment,预启动执行环境. PXE是由Inter公司开发 ...

最新文章

  1. 程序员必备技能:如何画好架构图?
  2. java 嵌套对象序列化_在javascript中将复杂的,嵌套的,用户定义的对象序列化为字符串...
  3. C#的二进制序列化组件MessagePack介绍
  4. java obervable_RxJava中Observable,Completable和Single之间有什么区别
  5. docker占满linux磁盘根目录的解决办法
  6. Android 设置 横屏 竖屏 (转)
  7. python 匿名函数 day15
  8. atitit 2017年学业计划 v5 r818.xlsx
  9. python学习小游戏
  10. mtkwin10驱动_Windows系统MTK手动安装驱动教程(Win10通用)
  11. 支持向量机(Vladimir Vapnik)
  12. linux能远程开机么,Linux下如何实现远程开机
  13. 【家庭药箱系列】布洛芬小史
  14. 为了拿到像素点,GetPixel的速度太慢,改用CreateDIBSection
  15. Workflow 在数据仓库建设中的应用与优化
  16. 被删除的pip,重新安装
  17. 论文浅尝 | ERNIE-ViL:从场景图中获取结构化知识来学习视觉语言联合表示
  18. CSMACA 与 CSMA/CD 区别
  19. python编程midi键盘按键_python 偷懒技巧——使用 keyboard 录制键盘事件
  20. HTML CSS之复合选择器中的交集选择器、并集选择器、后代选择器、子元素选择器、相邻兄弟选择器、属性选择器

热门文章

  1. 超级成功学(陈安之)——第一篇 如何追求超级成功
  2. HTML CSS实现翻页效果(动画)
  3. anchor-free存在什么缺点?
  4. web前端JavaScript嵌入百度地图API的方法 最详细
  5. 【C语言指针】一小时~你要是听不懂、我当场就把这个编译器......
  6. MacBook截屏快捷键(或录制屏幕)
  7. iframe src=”you page’s url” width=”100″ height=”30″ frameborder=”no” border=”0″ marginwidth=”0″ mar
  8. 充电五分钟即可充满手机 石墨烯电池会是未来吗?
  9. linux bower 安装目录,npm bower安装和使用
  10. xlrd,xlwt,pandas在excel中实战经验(此项目为自动化输出杭州市余杭区规划数据汇总统计)