PXE高效批量网络装机

一,部署PXE远程安装服务

1:搭建PXE远程安装服务器

1.准备CentOS7安装源

  • 下载ISO : 访问CentOS官方网站(https://www.centos.org/),下载CentOS 7的ISO镜像文件。

  • 挂载ISO : 假设ISO文件位于/root/CentOS-7-x86_64-DVD.iso,可以使用以下命令挂载:

    复制代码
    mkdir /mnt/centos
    mount -o loop /root/CentOS-7-x86_64-DVD.iso /mnt/centos
  • 复制安装源 : 将必要的安装文件复制到TFTP服务器的指定目录,例如/var/lib/tftpboot/centos7:

    复制代码
    cp -r /mnt/centos/Packages /var/lib/tftpboot/centos7
    cp -r /mnt/centos/images/pxeboot/* /var/lib/tftpboot/centos7/pxeboot/

2.安装并启用TFTP服务

  • 安装软件: 使用以下命令安装TFTP服务和xinetd:

    复制代码
    yum install tftp-server xinetd -y
  • 编辑TFTP配置 : 打开/etc/xinetd.d/tftp,确保配置如下:

    复制代码
    service tftp
    {
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = root
        server          = /usr/sbin/in.tftpd
        server_args     = -s /var/lib/tftpboot
        disable         = no
        per_source      = 11
        cps             = 100 2
        flags           = IPv4
    }
  • 启动服务:

    复制代码
    systemctl start xinetd
    systemctl enable xinetd
    systemctl start tftp
    systemctl enable tftp

3.准备Linux内核,初始化镜像文件

  • 直接从第1.1步复制的pxeboot目录中已有vmlinuzinitrd.img,无需额外操作。

4.准备PXE引导程序

  • 安装syslinux:

    复制代码
    yum install syslinux -y
  • 复制引导文件:

    复制代码
    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

5.安装并启用DHCP服务

  • 安装DHCP:

    复制代码
    yum install dhcp -y
  • 编辑DHCP配置 : 编辑/etc/dhcp/dhcpd.conf,添加如下内容(记得替换<your_tftp_server_ip>为你的TFTP服务器IP地址):

    复制代码
    subnet <your_subnet> netmask <your_netmask> {
        range <dhcp_start_ip> <dhcp_end_ip>;
        option routers <your_router_ip>;
        option domain-name-servers <dns_server_ip>;
        
        # PXE Settings
        next-server <your_tftp_server_ip>;
        filename "pxelinux.0";
    }
  • 启动DHCP服务:

    复制代码
    systemctl start dhcpd
    systemctl enable dhcpd

6.配置启动菜单文件

  • 创建菜单文件 : 在/var/lib/tftpboot/pxelinux.cfg目录下创建default文件,内容如下:

    复制代码
    default centos7
    prompt 0
    timeout 60
    
    label centos7
        kernel centos7/pxeboot/vmlinuz
        append initrd=centos7/pxeboot/initrd.img inst.stage2=http://<your_http_server_ip>/centos7 images/pxeboot/ks.cfg

其中,http://<your_http_server_ip>/centos7应指向包含CentOS安装包的HTTP服务器目录,ks.cfg是Kickstart文件,用于自动化安装过程。

2:验证PXE网络安装

  • 客户端设置: 确保客户端计算机的BIOS或UEFI设置中,网络启动(PXE Boot)被设置为优先启动项。
  • 测试安装: 重新启动客户端计算机,它应该会自动从网络启动并显示安装菜单。按照菜单提示进行,即可开始安装过程。

以上步骤完成后,你就可以通过PXE网络安装CentOS 7了。注意,实际操作时可能需要根据具体的网络环境和需求进行适当调整。

二,实现Kickstart无人值守安装

1:准备安装应答文件

在 CentOS7系统中安装 system-config-kickstart 工具之后,即可通过图形化向导工具来配置安装应答文件。如果用户对自动应答文件的配置比较熟悉,也可以直接编辑 CentOS7 安装后自动创建的应答文件(rootanaconda-ks.cfg),根据需要适当修订后使用。

1.配置安装应答参数

  • 编写Kickstart文件: Kickstart文件是一个文本文件,包含了安装过程中需要的所有交互式输入信息。以下是基本结构示例,你可以根据实际需求进行修改:

    复制代码
    #version=DEVEL
    install
    url --url=http://<your_http_server_ip>/centos7
    lang en_US.UTF-8
    keyboard us
    timezone America/New_York
    rootpw --iscrypted <encrypted_password>
    network --bootproto dhcp --device eth0
    firewall --disabled
    selinux --disabled
    reboot
    text
    autopart
    bootloader --location=mbr
    %packages
    @base
    %end
    %post
    # Custom post-installation scripting here, if needed
    %end
  • install: 表明这是一个安装任务。

  • url: 指定安装源的URL。

  • lang, keyboard, timezone: 分别设定语言、键盘布局和时区。

  • rootpw: 设置root用户的密码,--iscrypted表示密码已经加密。

  • network: 配置网络设置,这里假设使用DHCP。

  • firewall, selinux: 关闭防火墙和SELinux。

  • autopart: 自动分区。

  • %packages: 指定要安装的软件包组或单个包。

  • %post: 定义安装后执行的脚本。

2.保存自动答应文件

  • 将上述内容保存为一个文本文件,通常命名为ks.cfg,并上传到HTTP服务器的某个目录下(例如之前提到的/centos7目录)。

2:实现批量自动装机

1.启用自动答应文件

  • 在PXE菜单配置文件(如/var/lib/tftpboot/pxelinux.cfg/default)中,确保Kickstart文件的引用路径正确无误。在之前的示例中,我们已经通过以下参数指定了Kickstart文件的路径:

    复制代码
    append initrd=... inst.stage2=http://<your_http_server_ip>/centos7 images/pxeboot/ks.cfg

这里inst.stage2后面跟的是Kickstart文件的HTTP地址。

2.验证无人值守安装

  • 客户端验证: 确认客户端的BIOS设置为PXE优先启动后,重新启动客户端。系统应自动从网络启动,遵循Kickstart文件中的配置进行无人干预安装。
  • 监控日志: 在安装服务器上,可以通过系统日志(如/var/log/messages或/var/log/dhcpd.log)来监控PXE启动和安装过程中的错误信息。
  • 验证安装结果: 安装完成后,客户端应当自动重启并进入已安装好的CentOS 7系统,无需任何人工干预。登录系统检查是否所有预期的软件包、配置都已正确应用。
相关推荐
鳄鱼皮坡9 分钟前
仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器
运维·服务器
菜包eo11 分钟前
二维码驱动的独立站视频集成方案
网络·python·音视频
即将头秃的程序媛21 分钟前
centos 7.9安装tomcat,并实现开机自启
linux·运维·centos
yzx99101329 分钟前
关于网络协议
网络·人工智能·python·网络协议
zsq1 小时前
【网络与系统安全】域类实施模型DTE
网络·安全·系统安全
小Mie不吃饭1 小时前
FastAPI 小白教程:从入门级到实战(源码教程)
运维·服务器
fo安方2 小时前
运维的利器–监控–zabbix–第三步:配置zabbix–中间件–Tomcat–步骤+验证
运维·中间件·zabbix
爱奥尼欧2 小时前
【Linux 系统】基础IO——Linux中对文件的理解
linux·服务器·microsoft
戒不掉的伤怀2 小时前
【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】
服务器·数据库·mysql
超喜欢下雨天2 小时前
服务器安装 ros2时遇到底层库依赖冲突的问题
linux·运维·服务器·ros2