PXE网络批量装机

420 阅读3分钟

系统装机有三种引导方式

  1. 硬盘
  2. 光驱
  3. 网络

装机过程

  • 加载 boot loader
  • 加载启动安装菜单
  • 加载内核和initrd系统
  • 加载根系统
  • 运行anaconda的安装向导

PXE简介

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

PXE概念图.webp

PXE具备以下三个优点:

1.规模化:同时装配多台服务器; 2.自动化:安装系统、配置各种服务; 3.远程实现:不需要光盘、U 盘等安装介质。

若要搭建 PXE 网络体系,必须满足以下几个前提条件

① 客户机

  • 客户机的网卡要支持PXE协议(集成BOOTROM芯片)。
  • 网卡自带DHCP服务和TFTP服务。
  • 主板支持网络引导。有一些需在BIOS设置中允许从 Network 或 LAN 启动即可。

② 服务端

  • 配置 DHCP 服务器 :为客户机自动分配地址、指定引导文件位置(指明TFTP服务器地址)。
  • 服务器要开启 TFTP 服务(简单文件传输协议):用来提供系统内核和引导镜像文件的下载。
  • 安装软件包syslinux :提供PXE引导程序。
  • 服务器提供FTP服务(或http) :提供安装源(例如镜像文件系统等)。

实验操作过程##

1、安装四个软件包:dhcp、tftp-server、vsftpd、syslinux。

 [root@localhost ~]# yum install dhcp tftp-server.x86_64 vsftpd syslinux -y

2、将虚拟机的网卡设置为仅主机模式,修改网卡配置文件,重启网络服务。模拟内网环境

仅主机.png

仅主机模式.png

2.配置DHCP服务器,分配IP地址,指明tftp服务器的地址

[root@localhost ~]# cd /usr/share/doc/dhcp-4.2.5/ 
[root@localhost dhcp-4.2.5]# ls  
dhcpd6.conf.example dhcpd.conf.example ldap
[root@localhost dhcp-4.2.5]# cp dhcpd.conf.example /etc/dhcp/dhcpd.conf  
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes 
[root@localhost dhcp-4.2.5]#
#编辑dhcp配置文件
subnet 172.16.100.0 netmask 255.255.255.0 //设置子网IP、子网掩码
range 172.16.100.10 172.16.100.30; //设置地址池
option routers 172.16.100.100;//设置网关地址
next-server 172.16.100.100;//指明TFTP服务器地址
filename "pxelinux.0";//声明使用pxelinux.0文件

3.修改TFTP服务配置文件/etc/xinetd.d/tftp,将服务开启(默认是关闭状态)

     [root@localhost ~]# 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             = dgram
    protocol                = udp
    wait                    = yes
    user                    = root
    server                  = /usr/sbin/in.tftpd
    server_args             = -s /var/lib/tftpboot
    disable                 = no   //将这里的yes修改成no,即开启服务
    per_source              = 11
    cps                     = 100 2
    flags                   = IPv4
}

1.png

4.将光盘挂载到/var/ftp的子目录centos7下,并将三大文件先拷入/var/lib/tftpboot/ 目录中:vmlinuz,initrd.img。pxelinux.0

[root@localhost syslinux]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/sr0 centos7/  ##将光盘挂载到/var/ftp/centos7/目录下
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ftp]# systemctl start vsftpd   ##开启服务
[root@localhost ftp]# systemctl enable vsftpd  ##设置开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@localhost ftp]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  vmlinuz  

复制文件.png

5.在/var/lib/tftpboot/ 目录下,创建子目录pxelinux.cfg,在pxelinux.cfg目录下编写引导程序的配置文件default。

[root@localhost tftpboot]# mkdir pxelinux.cfg  /创建子目录pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default  /编写default文件
default auto
prompt 0

label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://172.16.100.100/centos7  ##使用ftp服务,指名安装源的路径

6.关闭防火墙和selinux。启动 dhcpd、tftp、vsftpd 三个服务。

    [root@localhost ~]# systemctl stop firewalld.service ##关闭防火墙
    [root@localhost ~]# setenforce 0 
    [root@localhost ~]# systemctl start dhcpd ##启动dhcp服务
    [root@localhost ~]# systemctl start tftp ##启动tftp服务
    [root@localhost ~]# systemctl start vsftpd##启动ftp服务

安装一台空白虚拟机 在启动界面

装机.png

a92289c09b564aa2b8bcb14dce3925a9_tplv-k3u1fbpfcp-zoom-in-crop-mark_3024_0_0_0.webp

无人值守装机

1、服务端,yum install system-config-kickstart -y 安装kickstart软件

[root@localhost pxelinux.cfg]#  yum install system-config-kickstart -y

2、进入虚拟机,在应用程序中找到 Kickstart 工具进行配置

应用程序.png

基础配置.png

安装方法.png

引导装载.png

分区信息.png

boot.png

swap分区.png

根目录.png

网络配置.png

防火墙.png

安装后脚本.png

全部完成之后安装一台空的虚拟机,启动就可以直接安装。