Linux网络服务——PXE服务器实现Linux安装自动部署(包含操作详解)

Posted 0611#

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux网络服务——PXE服务器实现Linux安装自动部署(包含操作详解)相关的知识,希望对你有一定的参考价值。

预启动执行环境

  • 预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。

PXE简介

  • PXE当初是作为Intel的有线管理体系的一部分,Intel 和 Systemsoft于1999年9月20日公布其规格(版本2.1)通过使用像网际协议(IP)、用户数据报协议(UDP)、动态主机设定协定(DHCP)、小型文件传输协议(TFTP)等几种网络协议和全局唯一标识符(GUID)、通用网络驱动接口(UNDI)、通用唯一识别码(UUID)的概念并通过对客户机(通过PXE自检的电脑)固件扩展预设的API来实现目的。
  • PXE 客户机(client)这个术语是指机器在PXE启动过程中的角色。一个PXE 客户机(client)可以是一台服务器、桌面级电脑、笔记本电脑或者其他装有PXE启动代码的机器。

实验环境准备

一、准备两台服务器

  • 一台为PXE服务器一台为被使用PXE自动安装的服务器
  • PXE服务器采用全新安装没有配置任何数据
  • 预安装测试服务器采用单独配置后没有连接镜像使用物理驱动器

二、配置预安装服务器的网络

三、预安装系统服务器的内存配置

  • 内存设置为2GB
  • 通过网络安装 需要将安装镜像进行读取 往内存里写入数据如果内存过小可能无法读取

PXE服务器配置准备工作

1、关闭防火墙

[root@pxe ~]# systemctl stop firewalld   #关闭防火墙

2、关闭selinux

[root@pxe ~]# setenforce 0               #关闭selinux

3、配置Yum源

3.1)将原有的Yum源打包备份
3.2)使用vim编辑新的配置文件

[pxerepo]
name=this is pxe repotest
baseurl=file:///mnt/cdrom
enabled=1    #开启yum仓库
gpgcheck=0   #yum源验证 1验证 0不用验证

3.3)刷新Yum源

[root@pxe yum.repos.d]# yum repolist

3.4)PXE服务器网卡配置

4)配置完成后刷新网卡

[root@pxe ~]# ifdown ens32;ifup ens32

PXE服务器配置

1、安装dhcp、tftp、httpd、syslinux

syslinux会为我们提供相应的配置文件这些配置文件在我们作PXE引导的时候必要的

[root@pxe ~]# yum -y install dhcp          #安装dhcp
[root@pxe ~]# yum -y install tftp-server   #安装tftp服务
[root@pxe ~]# yum -y install httpd         #安装Apache
[root@pxe ~]# yum -y install syslinux      #安装syslinux

2、配置dhcp服务

[root@pxe dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf 
 #将配置文件案例复制到当前目录下并覆盖配置文件
[root@pxe ~]# vim /etc/dhcp/dhcpd.conf               #进入配置文件
subnet 192.168.100.0 netmask 255.255.255.0 {         #分配的网段
  range 192.168.100.11 192.168.100.50;               #可用网段的范围
  default-lease-time 3600;                           #租约设置为1小时
  filename "pxelinux.0";   
  #文件路径指定PXE引导程序的文件 文件在syslinux中 文件名沿用syslinux默认的文件名
  next-server 192.168.100.10;            #指定tftp文件的IP地址
}
[root@pxe dhcp]# systemctl restart dhcpd    #配置完成后刷新
[root@pxe dhcp]# systemctl status dhcpd     #并且习惯性的检查状态

3、配置tftp服务器

[root@pxe ~]# vim /etc/xinetd.d/tftp   #编辑tftp服务器配置

启用tftp服务 将yes改为no就表示启用

[root@pxe ~]# systemctl restart tftp.socket   #重启tftp服务
[root@pxe ~]# systemctl status tftp.socket    #查看tftp状态

4、拷贝PXE服务器的相关文件

拷贝至tftp的根目录/var/lib/tftpboot

该路径为PXE服务器的配置文件所有PXE引导程序都是通过调用该目录下的文件进行的默认情况下什么都没有需要拷贝相关的文件

[root@pxe xinetd.d]# cd /var/lib/tftpboot   #进入配置文件
[root@pxe tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./    #将syslinux里的PXE引导文件拷贝至当前目录下
[root@pxe tftpboot]# cp /usr/share/syslinux/menu.c32 ./      #拷贝启动菜单至当前目录下
[root@pxe tftpboot]# cp /mnt/cdrom/isolinux/vmlinuz ./       #拷贝光盘中CentOS7安装引导文件1至当前目录下
[root@pxe tftpboot]# cp /mnt/cdrom/isolinux/initrd.img ./    #拷贝光盘中CentOS7安装引导文件2至当前目录下

启动菜单有两种 一种是图形化界面一种是命令行模式 本次采用命令行模式的 menu.c32

5、制作安装的菜单文件

/var/lib/tftpboot/pxelinux.cfg

[root@pxe tftpboot]# mkdir pxelinux.cfg       #跟随上述路径在当前路径建立一个目录 名称是固定的
[root@pxe tftpboot]# cd pxelinux.cfg/
[root@pxe pxelinux.cfg]# touch default        #创建一个default文件   安装的菜单界面

5.1)编辑default文件

[root@pxe pxelinux.cfg]#  vim default
default menu.c32      #调用菜单文件
timeout 300           #超时时间
prompt 0              

label 1               #定义标签1
menu lable ^1) Install CentOS7   #菜单定义第一个文件
menu default                     #默认菜单
kernel vmlinuz                   #调用内核文件
append initrd=initrd.img method=http://192.168.100.10/CentOS7 ks=http://192.168.100.10/ks.cfg         #引导文件initrd.img  method:安装介质来自apache  ks=安装脚本 名称为ks.cfg 

6、配置Web服务器

[root@pxe ~]# systemctl restart httpd   #重启Apache服务器
[root@pxe ~]# cd /var/www/html          #进入Apache服务器根目录
[root@pxe html]# mkdir CentOS7          #建立CentOS7子目录
[root@pxe ~]# mount /dev/cdrom /var/www/html/CentOS7/  #将光盘挂载至该目录

访问默认主页下的CentOS7文件能够被访问

7、编辑ks.cfg文件

[root@pxe ~]# cp anaconda-ks.cfg  /var/www/html/    #将根目录下的anaconda文件拷贝至html文件下
[root@pxe ~]# cd /var/www/html/                     #进入html文件
[root@pxe html]# mv anaconda-ks.cfg ks.cfg          #将文件名改为ks.cfg
[root@pxe html]# chmod +r ks.cfg                    #将文件添加可读权限

访问默认主页下的ks.cfg文件能够被访问

7.1)ks.cfg文件配置

[root@pxe html]# vim ks.cfg            #进入文件
#cdrom
url --url http://192.168.0.1/CentOS7   #安装媒体介质更改为Apache路径
#graphical
text                                   #安装模式更改为命令行安装
#clearpart --none --initlabel         
clearpart --all --initlabel            #磁盘初始化
reboot                                 #文件最后添加重启命令否则不会自动重启

8、重启所有的服务,使配置生效

[root@pxe ~]# systemctl restart httpd
[root@pxe ~]# systemctl restart tftp.socket
[root@pxe ~]# systemctl restart dhcpd

PXE无人值守自动化装机测试

  • 安装过程第一个界面

  • 软件安装完成提示

  • 安装完成登陆界面

以上是关于Linux网络服务——PXE服务器实现Linux安装自动部署(包含操作详解)的主要内容,如果未能解决你的问题,请参考以下文章

[PXE] linux(centos)PXE服务器搭建,安装,启动及pxe协议详解

Linux6.5中配置PXE自动装机,实现批量装机服务。

Linux PXE远程安装服务 并实现KIckstart无人值守安装

Linux利用PXE实现自动化安装CentOS流程介绍

在Linux上部署PXE远程安装服务

linux-PXE-12