云计算百科
云计算领域专业知识百科平台

PXE批量安装服务器

KickStart自动化安装部署

  • PXE原理

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统

  • PXE Client从PXE网卡启动,通过PXE BootRom以UDP的形式发送一个广播请求,向本网络中DHCP服务器所求IP
  • DHCP服务器收到客户端的请求,验证是否来KickStart自动化安装部署自合法的PXEClient的请求,验证通过返回响应,响应内容包含:分配的IP地址、pxelinux启动程序的位置以及配置文件的位置
  • 客户端收到服务器的回应后,发送一个帧到TFTP服务端,请求传输启动所需文件,包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件
  • 当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答,用以决定启动参数。BootROM由TFTP通讯协议从Boot Server下载启动安装程序锁必须的文件(pxelinux.0 pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核
  • 客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装Linux,如果是通过网络安装(NFS、FTP、HTTP),则会在这个时候初始化网络,并定位安装源位置。接着会读取default文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件
  • 将ks.cfg文件下载回来后,通过该文件找到OSServer,并按照该文件的配置请求下载安装过程需要的软件包。OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。
    • DHCP服务安装配置
  • 安装DHCP服务
  •       # yum -y install dhcp*

         # rpm -ql | grep "dhcpd.conf"

  • 编辑DHCP配置文件
  • # vim /etc/dhcpd/dhcpd.conf

                   default-lease-time 21600;

                   max-lease-time 43200;

                   subnet 192.168.245.0 netmask 255.255.255.0 {

                        range dynamic-bootp 192.168.245.180 192.168.245.200;

                        option subnet-mask 255.255.255.0;

                        option routers 192.168.245.2;

                        default-lease-time 21600;

                        max-lease-time 43200;

                        next-server 192.168.245.129;

                        filename "/pxelinux.0";

                        host InstallOS {

                            hardware ethernet 00:0C:29:BA:18:17;

                            fixed-address 192.168.245.185;

                        }

                  }

  • 启动dhcp服务
  •             # systemctl restart dhcpd

               # netstat -lntup | grep dhcpd

    • TFTP安装配置
  •  安装TFTP服务器
  •             # yum -y install tftp-server

  •  编辑TFTP服务配置文件
  •             # vim /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

                    }

  • 启动TFTP服务
  •             # systemctl restart tftp

                # netstat -lntup | grep 69

    • HTTP安装配置

  •  安装HTTP
  •          # yum -y install httpd

  •   挂载系统镜像,使镜像可以通过web访问
  •          # mkdir /var/www/html/centos7.6

             # mount /dev/cdrom /var/www/html/centos7.6

  • 启动httpd,访问镜像
  •         # systemctl restart httpd

    • PXE引导配置(bootstrap)
  •   安装syslinux
  •          syslinux是一个功能强大的引导加载程序,而且兼容各种介质。SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。如果没有找到pxelinux.0这个文件,可以安装一下。

                

                # yum -y install syslinux

                # cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

                # cp /var/www/html/centos7.6/isolinux/* /var/lib/tftpboot/ 

        # mkdir /var/lib/tftpboot/pxelinux.cfg/

        # cp /var/www/html/centos7.6/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

  • 编辑客户端配置文件default
  • # vim /var/lib/tftpboot/pxelinux.cfg/default

    default ks

    prompt 0

    label ks

      kernel vmlinuz

      append initrd=initrd.img ks=http://192.168.245.129/ks_config/Centos7.6-ks.cfg #cfg文件访问路径

    创建KS文件

        

    • 编写ks文件

            # ks_config

            # vim /var/www/html/ks_config/Centos7.6-ks.cfg

             install

             url –url="http://192.168.245.129/centos7.6/"  #镜像访问路径

             text

             lang en_US.UTF-8

             keyboard us                            

             zerombr

             bootloader –location=mbr –driveorder=sda –append="crashkernel=auto rhgb quiet"

             network –bootproto=dhcp –device=eth0 –onboot=yes –noipv6 –hostname=CentOS6

    timezone –utc Asia/Shanghai

    authconfig –enableshadow –passalgo=sha512

    rootpw  –iscrypted $6$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYGWlgKsn945fFTjRC658UXjuocwJbAjVI5D6/

    clearpart –all –initlabel

    part /boot –fstype=xfs –asprimary –size=500

    part swap –size=2048

    part / –fstype=xfs –grow –asprimary –size=20000

    firstboot –disable

    selinux –disabled

    firewall –disabled

    logging –level=info

    reboot

    %packages

    @base

    @compat-libraries

    @debugging

    @development

    tree

    nmap

    sysstat

    lrzsz

    dos2unix

    telnet

    %end

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » PXE批量安装服务器
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!