Linux批量网络装机(pxe)的实现

一、前言

我会尽量使用通俗易懂的方式对linux实现批量装机进行一个操作流程和概念上的讲解,如果你有条件,可以跟着我的思路一起进行搭建。操作系统的安装应该是被大多数人熟悉的,本篇文章要做的是搭建一个远程服务器,这个服务器存在的作用是当有其他终端连接到这个服务器时可以自动获取到该服务器的linux操作系统相关文件并进行无人自动安装。如果你有疑问或者批评指正可以给我评论留言或私信探讨。

本次实现基于如下环境:

1.真机为Windows10系统
2.VMware15虚拟机管理平台
3.CentOS7镜像

二、流程总览

1.需求

同时运行多台服务器是一个常见的需求,当存在多台设备需要统一通过网络远程安装linux操作系统时,批量安装规模化、自动化和可以远程实现的优点显而易见。通过一系列操作指定一台服务器专门存储系统安装相关配置文件与基本软件包,我们称之为服务器A,同时现在需要为服务器B、C、D都批量安装一样的操作系统,便可以为服务器A搭建专门用于远程安装的机制,当B、C、D向A发出请求时,便为这些服务器提供批量安装操作系统的服务。

2.实现前提

(1)本次实验操作前,应当已经在VMware中安装好CentOS7操作系统,即服务器A,并关闭服务器防火墙和SELinux安全机制,防止系统进行警告或禁止操作。

  • 关闭防火墙的方式如下

      systemctl stop firewalld #关闭防火墙
      systemctl disable firewalld #关闭防火墙开机自启动
    

在这里插入图片描述

  • 关闭SELinux安全机制的方式如下

      setenforce 0 #将Linux安全机制由强制(enforcing)转为宽松(permissive)
      getenforce   #查看当前安全机制状态
    

在这里插入图片描述

(2)关于开机启动项的概念,机器B在开机的时候会按照如下顺序去寻找自己的操作系统:本地硬盘、光驱设备、U盘、网络引导安装。所以我们在VMware中新建一台虚拟机时会首先寻找本地硬盘、光驱设备、U盘中的操作系统,新建的虚拟机选择稍后安装操作系统,这样的虚拟机是一个空白盘,前三个都找不到操作系统,就会采用网络引导安装的方式,请求服务器进行操作系统的安装。

(3)首先需要为我们的服务器A配置好一个永久ip地址,配置方式如下:

nmcli connection modify eth0//修改 网卡名
ipv4.method manual //配置方法:手动
ipv4.addresses 192.168.4.7/24//地址
ipv4.gateway 192.168.4.254//网关
connnection.autoconnect yes//开机自启动所有参数
注意:所有命令均敲在一行中,之间以空格隔开

3.我们将会做什么

(1)会实现一个在服务器A上的dhcp服务搭建。众所周知,Linux系统的很多功能实现都依靠各种服务,即通过软件包进行软件安装,然后启动服务。DHCP服务的功能在于,当客户端B向服务器A发出请求时,A为B动态分配B的ip地址,同时告诉B他应该去哪寻找安装系统所需要的文件。
(2)为服务器A搭建一个tftp服务,这是一个简单的文件传输协议,不需要任何的加密认证就可以在服务器和客户端之间进行文件传输。
(3)准备好安装操作系统的相关配置文件,这些配置文件需要被放在服务器A的tftp共享文件夹中,就像一个网盘那样,当客户机发出请求,就可以提供操作系统相关文件。
(4)在服务器A上生成一个应答文件,当有客户机发出安装操作系统的请求时,服务器A可以实现无人值守,即自动为客户机安装系统。

三、在服务器A上部署DHCP地址分配服务

1.什么是DHCP?

这是一个动态主机配置协议,主要用来简化主机地址的分配管理,在服务器A上完成DHCP服务的配置后,便可以为客户机B自动分配好入网参数,如IP地址、子网掩码、广播地址、默认网关地址、DNS服务器地址。

2.如何开启DHCP服务?

首先安装好DHCP软件包,软件包在centos7自带的镜像中就有,推荐使用yum仓库进行安装,yum仓库的配置方法我会单独另写文章进行讲解。DHCP软件包安装完成后,需要修改dhcp的相关配置文件并启动服务。

  • 使用yum安装DHCP软件包的命令如下:

      yum -y install dhcp
    

在这里插入图片描述

  • 完成DHCP软件包的安装后就要进行配置文件的修改,DHCP配置文件的默认目录在/etc/dhcp/dhcpd.conf,可以用vim编辑器将其打开。打开后文件基本是空白的,但是给了一个模板文件的地址:

在这里插入图片描述

这里不建议手动进行配置的书写,可以直接进入末行模式,输入r和目录来将模板文件的内容拷贝进来:

请添加图片描述
然后删除掉这一阶段不需要用到的配置,只留以下配置:

subnet  192.168.4.0     netmask 255.255.255.0 {       #作用网段
  range 192.168.4.100 192.168.4.200;                  #ip地址段
  option domain-name-servers 192.168.4.7;             #客户机指定dns地址
  option routers 192.168.4.254;                       #网关
  default-lease-time 600;
  max-lease-time 7200;
}

在这里插入图片描述
接着增加两行配置来指出客户机需要去寻找的下一个包含操作系统相关配置文件的服务器ip地址,这里为本机,以及指出网卡的引导文件名称:

  next-server 192.168.4.7;#下一个服务器的ip地址
  filename "pxelinux.0";  #指明网卡引导文件名称

在这里插入图片描述

3.什么是pxelinux.0?

这是一个网卡引导文件,为网卡自带文件,可以理解为一个装机说明书,是一个二进制文件,之后的过程中给我们将安装一个软件以获得该文件。

4.启动dhcpd服务

到这一步为止,我们就完成了服务器端dhcpd服务的搭建,要注意dhcp软件的服务名是dhcpd,启动命令如下:

systemctl start dhcpd

四、在服务器A上搭建好tftp服务

1.什么是tftp服务?

它是一个简单的文件传输协议,不需要任何加密的方式就可以将公开目录的文件进行分享,它的默认端口是69,默认共享的主目录位于/var/lib/tftpboot下。

2.如何部署tftp服务

它的软件包名为tftp-server,服务名为tftp。安装软件包操作如下:

 yum -y install tftp-server

启动服务操作如下:

 systemctl start tftp

五、在服务器A上准备好安装操作系统所需的配置文件

1.部署pxelinux.0文件

(1)安装syslinux软件包获得pxelinux.0文件

首先我们要安装软件包syslinux,会在如下目录生成pxelinux.0文件:/usr/share/syslinux/pxelinux.0,将它拷贝到/var/lib/tftpboot,也就是tftp服务的共享文件目录,操作如下:

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

(2)在tftp目录部署安装操作系统时的菜单文件

这是操作系统安装时引导界面的菜单配置文件,首先要建立存放菜单文件的默认目录,然后将CentOS7镜像(我这里挂载到了/mydvd目录下)中的菜单模板文件放入菜单文件目录并命名为default,操作如下:

mkdir /var/lib/tftpboot/pxelinux.cfg
cp /mydvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

(3)部署图形模块

将CentOS7镜像下的图形模块和背景也放到tftp公共目录中,操作如下:

cp /mydvd/isolinux/vesamenu.c32 /mydvd/isolinux/splash.png /var/lib/tftpboot/

(4)部署启动内核与驱动程序

将CentOS7镜像下的操作内核与驱动程序放到tftp公共目录中,操作如下:

cp /mydvd/isolinux/vmlinuz /mydvd/isolinux/initrd.img /var/lib/tftpboot/ 

(5)完整的tftpboot目录展示

在这里插入图片描述

六、检测到现在为止所有的配置是否正常

1.重启tftp服务与dhcpd服务
2.确认关闭防火墙与selinux
3.查看dhcpd服务器主配置文件内容
4.查看菜单文件名称
5.确认tftpboot的六项内容

七、用ftp服务共享操作系统安装的软件包

1.部署ftp服务

它的软件包名为和服务名为vsftpd,安装和启动服务操作如下:

yum -y install vsftpd
systemctl start vsftpd

它共享数据默认主目录为/var/ftp,默认端口为21.

2.挂载光驱设备到ftp共享目录

首先在ftp目录建立挂载点,在进行挂在后重启服务,操作如下:

mkdir /var/ftp/centos
mount /dev/cdrom /var/ftp/centos
systemctl restart vsftpd

八、新建空白虚拟机进行测试

新建虚拟机,选择稍后安装操作系统,并在网络适配器下选到和服务器A同一网段进行开机测试。
在这里插入图片描述
出现菜单即表示测试成功。

九、生成应答文件实现无人值守安装

1.安装图形工具,并将yum仓库改名

  • 安装图形仓库命令

    yum -y install system-config-kickstart
    
  • yum仓库配置

      [development]
      name=linux
      baseurl=file:///mydvd
      enabled=1
      gpgcheck=0
    

2.处理应答文件

启动system-config-kickstart图形工具,保存应答文件到/root,将应答文件保存到ftp共享目录,操作如下:

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

3.修改菜单文件

打开/var/lib/tftpboot/pxelinux.0菜单配置文件,将其中一行改为append initrd=initrd.img ks=ftp://192.168.4.7/ks.cfg,指定了应答文件的获取目标ip与目录。

至此,完成了Linux批量网络装机环境的实现,之后新建的处于统一网段的虚拟机都可以向服务器A请求网络安装操作系统。


@withcoco本人原创,禁止转载

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用内容提供了在Linux系统上安装syslinux和配置tftp服务器的步骤,引用内容提供了创建pxelinux.cfg目录的步骤,引用内容提供了保存自动应答软件和编辑引导菜单的步骤。 PXE(Preboot Execution Environment)是一种网络引导协议,可以通过网络服务器上安装和配置操作系统。使用PXE进行Linux装机可以实现批量装机和自动化装机的需求。 在进行Linux PXE装机之前,需要进行以下步骤: 1. 安装syslinux和tftp服务器:使用命令`yum install -y syslinux`安装syslinux,并使用命令`yum install -y tftp-server`安装tftp服务器。 2. 复制pxelinux.0文件到tftp服务器目录:使用命令`cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/`将pxelinux.0文件复制到tftp服务器的目录下。 3. 创建pxelinux.cfg目录:使用命令`mkdir /var/lib/tftpboot/pxelinux.cfg`创建pxelinux.cfg目录,该目录用于存放引导菜单的配置文件。 4. 准备自动应答文件:将自动应答文件(比如ks.cfg)保存到服务器上,可以使用命令`cp /root/anaconda-ks.cfg /var/ftp/ks.cfg`将anaconda-ks.cfg文件复制到/var/ftp/目录下。 5. 编辑引导菜单的配置文件:使用命令`vim /var/lib/tftpboot/pxelinux.cfg/default`编辑引导菜单的配置文件,添加以下内容: ``` default auto prompt 0 label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.100.10/centos7 ks=ftp://192.168.100.10/ks.cfg ``` 通过以上步骤,可以实现Linux PXE装机。在客户端上启动时,系统将从tftp服务器上下载引导文件pxelinux.0,然后根据引导菜单的配置文件default进行自动安装,同时使用指定的自动应答文件ks.cfg进行操作系统的配置。 请根据实际需求和网络环境进行相应的配置和调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Linux——轻松学会PXE高效网络装机](https://blog.csdn.net/m0_61744194/article/details/124291052)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [如何使用PXE实现Linux网络装机](https://blog.csdn.net/YsDou/article/details/120143627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值