PXE自动装机

发布于:2024-06-13 ⋅ 阅读:(154) ⋅ 点赞:(0)

资源列表

操作系统 配置 主机名 IP
CentOS7.3.1611 2C4G pxe 192.168.207.131

基础环境

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

关闭内核安全机制

setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config

一、搭建PXE远程安装服务器

准备 CentOS 7 安装源

        CentOS 7 的网络安装源一般通过 HTTP、FTP 协议发布,另外也支持 NFS(Network File System,网络文件系统)协议

yum -y install vsftpd
mkdir /var/ftp/centos7
cp -rf /media/cdrom/* /var/ftp/centos7/
systemctl start vsftpd
systemctl enable vsftpd

安装并启用 TFTP 服务

TFTP 服务由 tftp-server 软件包提供,配置文件位于/etc/xinetd.d/tftp。配置时只要将 “disable = yes”改为“disable = no”,然后启动 TFTP 服务即可

yum -y install tftp-server
​
[root@192 ~]# cat /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
    per_source        = 11
    cps            = 100 2
    flags            = IPv4
}
#######################################################################
​
systemctl start tftp
systemctl enable tftp

准备 Linux 内核、初始化镜像文件

        用于 PXE 网络安装的 Linux 内核、初始化镜像文件可以从 CentOS 7 系统光盘获得, 分别为 vmlinuz 和 initrd.img,位于文件夹 images/pxeboot 下。找到这两个文件并将其复制 到 tftp 服务的根目录下

cd /media/cdrom/images/pxeboot
cp vmlinuz initrd.img /var/lib/tftpboot

准备 PXE 引导程序

        用于 PXE 网络安装的引导程序为 pxelinux.0,由软件包 syslinux 提供。安装好软件包 syslinux,然后将文件 pxelinux.0 也复制到 tftp 服务的根目录下

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

安装并启用 DHCP 服务

yum -y install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
​
# 在/etc/dhcp/dhcpd.conf中添加
# next-server指定TFTP 服务器的地址
# 指定 PXE 引导程序的文件名
######################################################
subnet 192.168.207.0 netmask 255.255.255.0 {
  range 192.168.207.20 192.168.207.30;
  option routers 192.168.207.2;
  next-server 192.168.207.131;
  filename "pxelinux.0";
}
######################################################
​
systemctl start dhcpd
systemctl enable dhcpd

配置启动菜单文件

        启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认 的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单 配置可参考以下操作手动建立

        上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。 其中,prompt 用来设置是否等待用户选择;label 用来定义并分隔启动项;kernel 和 append 用来定义引导参数。引导入口的个数及内容根据需要自行定义。例如,实现无人值守安装时 只需要一个入口就够了

mkdir /var/lib/tftpboot/pxelinux.cfg
vi /var/lib/tftpboot/pxelinux.cfg/default
##################################################################################
[root@192 ~]# cat /var/lib/tftpboot/pxelinux.cfg/default 
default auto
prompt 1
label auto
    kernel vmlinuz
    append initrd=initrd.img method=ftp://192.168.207.131/centos7
label linux text
    kernel vmlinuz
    append text initrd=initrd.img method=ftp://192.168.207.131/centos7
label linux rescue
    kernel vmlinuz
    append rescue initrd=initrd.img method=ftp://192.168.207.131/centos7
##################################################################################

验证 PXE 网络安装

  • 搭建好 PXE 远程安装服务器以后,就可以使用客户机进行安装测试了。对于新购买的 服务器或 PC 裸机,一般不需要额外设置;若要为已有系统的主机重装系统,则可能需要修 改 BIOS 设置,将“Boot First”设为“NETWORK”或“LAN”,然后重启主机;若使用 VMware 创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时会报错。

  • 如果服务器配置正确,网络连接、PXE 支持等都没有问题,则客户机重启后将自动配 置 IP 地址,然后从 TFTP 服务器中获取引导程序 pxelinux.0,并根据引导菜单配置提示用 户指定启动入口

  • 在提示字串“boot:”后直接按 Enter 键(或执行“auto”命令),将会进入默认的图形安装入 口;若执行“linux text”命令,则进入文本安装入口;若执行“linux rescue”命令,则进入救援 模式。

二、实现 Kickstart 无人值守安装

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

配置安装应答参数

  • 通过桌面菜单“应用程序”→“系统工具”→“Kickstart”即可打开“Kickstart 配置程序”窗口。 在“Kickstart 配置程序”窗口中,可以针对基本配置、安装方法、引导装载程序选项、分区信 息、网络配置等各种安装设置进行指定

  • 或者在命令行输入以下命令调出配置窗口

    system-config-kickstart

  • 网络配置及防火墙配置,在“网络配置”界面中,添加一个网络设备“ens33”,将网络类型设为“DHCP”。

  • 在“防火墙配置”界面中,可以选择禁用 SELinux、禁用防火墙

  • 软件包选择

    • CentOS 7 系统开始不再提供软件包的选择,如图 6.6 所示。如果需要安装软件包,可 以根据需要将/root/anaconda-ks.cfg 的软件包安装脚本复制到 ks.cfg 文件中,只需要复 制%packages 到%end 部分即可,在%packages 到%end 之间,包含以@开头的软件包列 表,将不需要的软件名删除,剩下的就是系统会自动安装的软件包。例如,仅保留以下内容 即为采用最小化安装

      %packages 
      @^minimal 
      %end
  • 安装后脚本

    rm -f /etc/yum.repos.d/*
    echo '[ftp]
    name=ftp
    baseurl=ftp://192.168.207.131/centos7
    enabled=1
    gpgcheck=0' > /etc/yum.repos.d/kgc.repo

保存自动应答文件

  • 选择“Kickstart 配置程序”窗口的“文件”→“保存”命令,指定目标文件夹、文件名,将配 置好的应答参数保存为文本文件,如/root/ks.cfg。以后若要修改此应答配置,可以在 “Kickstart 配置程序”窗口中打开进行调整,或者直接用 VI 等文本编辑工具进行修改。

    #platform=x86, AMD64, 或 Intel EM64T
    #version=DEVEL
    # Install OS instead of upgrade
    install
    # Keyboard layouts
    keyboard 'us'
    # Root password
    rootpw --iscrypted $1$5wSIbuZq$31QjMnWWZq1cmysez2Mcf0
    # System language
    lang zh_CN
    # Firewall configuration
    firewall --disabled
    # System authorization information
    auth  --useshadow  --passalgo=sha512
    # Use CDROM installation media
    cdrom
    # Use graphical install
    graphical
    firstboot --disable
    # SELinux configuration
    selinux --disabled
    
    # Network information
    network  --bootproto=dhcp --device=ens33
    # Reboot after installation
    reboot
    # System timezone
    timezone Asia/Shanghai
    # System bootloader configuration
    bootloader --location=mbr
    # Partition clearing information
    clearpart --all
    # Disk partitioning information
    part /home --fstype="xfs" --size=4096
    part / --fstype="xfs" --size=10240
    part swap --fstype="swap" --size=2048
    part /boot --fstype="xfs" --size=500
    
    %post --interpreter=/bin/bash
    rm -f /etc/yum.repos.d/*
    echo '[ftp]
    name=ftp
    baseurl=ftp://192.168.207.131/centos7
    enabled=1
    gpgcheck=0' > /etc/yum.repos.d/kgc.repo
    %end
    
    %packages
    @^minimal
    %end
    

启用自动应答文件

  • 在 PXE 远程安装服务器中,将上一节建立的应答文件复制到/var/ftp/centos7 目录下, 使客户机能够通过 ftp://192.168.207.131/centos7/ks.cfg 访问;然后编辑引导菜单文件 default, 添加 ks 引导参数以指定 ks.cfg 应答文件的 URL 路径

    cp /root/ks.cfg /var/ftp/ks.cfg
    
    [root@192 ~]# cat /var/lib/tftpboot/pxelinux.cfg/default
    default auto
    prompt 0
    label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.207.131/centos7 ks=ftp://192.168.207.131/ks.cfg

  • 注意:如果是在 VMware 虚拟机环境下,需要禁用 VMware 的 DHCP 功能;否则 安装文件将无法加载


网站公告

今日签到

点亮在社区的每一天
去签到