欢迎光临
我们一直在努力

PXE自动化安装:轻松部署Rocky9

利用 PXE 实现自动化系统部署

PXE介绍

PXE:Preboot Excution Environment,预启动执行环境,是由Intel公司研发,基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,可以引导和安装Windows,linux等多种操作系统。

PXE启动工作原理

在这里插入图片描述

利用PXE实现自动化安装流程

  • Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的所在TFTP服务器地址信息一并传送给Client。
  • Client向TFTP服务器发送获取pxelinux.0请求消息,TFTP服务器接收到消息之后,向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0。
  • Client执行接收到的pxelinux.0文件,并利用此文件启动。
  • Client向TFTP 服务器发送请求针对本机的配置信息文件(在TFTP 服务器的pxelinux.cfg目录下),TFTP服务器将启动菜单配置文件发回Client,继而Client根据启动菜单配置文件执行后续操作。
  • Client根据启动菜单配置文件里的信息,向TFTP发送Linux内核和initrd文件请求信息,TFTP接收到消息之后将内核和initrd文件发送给Client。
  • Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统。
  • Client启动Linux内核,加载相关的内核参数。
  • Client通过内核参数下载kickstart文件,并根据kickstart文件里的安装信息,下载安装源文件进行自动化安装。
  • 在Rocky9 上实现PXE自动化安装rocky9

    安装前准备
    关闭防火墙和SELINUX,DHCP服务器静态IP。
    网络要求:关闭Vmware软件中的DHCP服务,基于NAT模式。
    示例

    [root@Rocky ~]# yum install dhcp-server tftp-server httpd syslinux-nonlinux -y
    [root@Rocky ~]# systemctl enable –now httpd tftp dhcpd

    配置dhcp服务

    [root@Rocky ~]# vim /etc/dhcp/dhcpd.conf

    option domain-name "example.org";
    option domain-name-servers 223.5.5.5, 114.114.114.114;
    default-lease-time 600;
    max-lease-time 7200;
    log-facility local7;
    subnet 192.168.101.0 netmask 255.255.255.0 {
    range 192.168.101.100 192.168.101.200;
    option routers 192.168.101.2;
    next-server 192.168.101.19;
    filename "pxelinux.0";
    }

    准备相关目录

    [root@Rocky ~]# mkdir -pv /var/www/html/rocky/9/os/x86_64/
    [root@Rocky ~]# mount /dev/sr0 /var/www/html/rocky/9/os/x86_64/

    准备kickstart文件

    [root@Rocky ~]# mkdir /var/www/html/ks/
    [root@Rocky ~]# vim a.cfg
    # Network information
    network –bootproto=dhcp –device=ens160 –ipv6=auto –activate
    # Use CDROM installation media
    cdrom

    %packages
    # Use CDROM installation media
    cdrom

    %packages
    network –hostname=Rocky

    # Use CDROM installation media
    cdrom
    network –hostname=Rocky

    # Use CDROM installation media
    %packages
    @^minimal-environment
    @standard
    %end

    # Run the Setup Agent on first boot
    firstboot –enable

    # Generated using Blivet version 3.6.0
    ignoredisk –only-use=sda
    # Partition clearing information
    clearpart –none –initlabel
    # Disk partitioning information
    part /data –fstype="xfs" –ondisk=sda –size=51200
    part / –fstype="xfs" –ondisk=sda –size=102400
    part /boot –fstype="xfs" –ondisk=sda –size=1024
    part swap –fstype="swap" –ondisk=sda –size=2048

    # System timezone
    timezone Asia/Shanghai –utc

    # Root password
    rootpw –iscrypted $6$aGXglqz1YsyoNR49$MGdIO5Yn36hzTYDXFxAcR2Xi4c5FHOMuuvEVGlIffS9pfkhs5z3UIv24BKh2vP9tVCOWaNhGV7M/ec.G6HCmf.
    user –name=r –password=$6$hcGXX9Lxf1ao458C$WJUKYXyg1N1auKL1nYBpYWnVCFURsakFcTz5mk7lEXPbABwUkYPG.k0VDm4LcGqX8NjqV9ABDFseCJXCq6AQ.1
    –iscrypted –gecos="r"

    %post
    # 关闭防火墙
    systemctl disable firewalld
    systemctl stop firewalld
    # 禁用 SELinux
    sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
    setenforce 0
    %end

    "a.cfg" 58L, 1491B written
    [root@Rocky ~]# cp a.cfg /var/www/html/ks/rocky.cfg

    准备PXE启动相关文件

    [root@Rocky ~]# mkdir /var/lib/tftpboot/rocky9
    [root@Rocky ~]# cp /var/www/html/rocky/9/os/x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/rocky9/
    [root@Rocky ~]# cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
    [root@Rocky ~]# cp /var/www/html/rocky/9/os/x86_64/isolinux/{ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot/
    [root@Rocky ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
    [root@Rocky ~]# cp /var/www/html/rocky/9/os/x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
    [root@Rocky ~]# tree /var/lib/tftpboot/
    /var/lib/tftpboot/
    ├── ldlinux.c32
    ├── libcom32.c32
    ├── libutil.c32
    ├── menu.c32
    ├── pxelinux.0
    ├── pxelinux.cfg
    │ └── default
    └── rocky9
    ├── initrd.img
    └── vmlinuz

    2 directories, 8 files

    准备启动菜单文件

    [root@Rocky ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
    default menu.c32
    timeout 600
    menu title Install CentOS Linux

    label linux9
    menu label Auto Install CentOS Linux ^9
    kernel rocky9/vmlinuz
    append initrd=rocky9/initrd.img ks=http://192.168.101.19/ks/rocky.cfg

    label manual
    menu label ^Manual Install CentOS Linux 9.0
    kernel vmlinuz
    append initrd=initrd.img inst.repo=http://192.168.101.19/rocky/9/os/x86_64/

    label rescue
    menu label ^Rescue a CentOS Linux system 9
    kernel rocky9/vmlinuz
    append initrd=rocky9/initrd.img inst.repo=http://192.168.101.19/rocky/9/os/x86_64/ rescue

    label local
    menu default
    menu label Boot from ^local drive
    localboot 0xffff

    测试客户端基于PXE实现自动安装

    新准备一台主机,设置网卡引导,可看到看启动菜单,并实现自动安装
    注意:VMware workstation 对于不同的CentOS 版本,生成的虚拟机的硬件并不兼容。
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    赞(0)
    未经允许不得转载:171主机测评 » PXE自动化安装:轻松部署Rocky9
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址