• PXE+Kickstart无人值守安装操作系统


      一,简介

      1.1 什么是PXE

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

    严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。

      PXE的工作过程

    1. PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
    2. DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;
    3. PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;
    4. PXE Client 取得pxelinux.0 文件后之执行该文件;
    5. 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;
    6. 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;
    

      

      

      1.2什么是Kickstart

      Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。

      

      PXE+Kickstart 无人值守安装操作系统完整过程如下:

      

      

      二,安装环境

      操作系统:CentOS7.5 为EXSI虚拟机

      IP地址:172.16.20.32

      关闭防火墙和senlinux

    systemctl stop firewalld
    setenforce 0
    

      为了简化操作本次使用DHCP HTTPD和TFTP均安装在同一台服务器

      三,安装配置

      3.1安装dhcp服务

    yum -y install dhcp
    

      修改配置文件

    /etc/dhcp/dhcpd.conf
    

      

    ddns-update-style none;
    ignore client-updates;
    next-server 10.0.0.1;
    #文件名称
    filename "/pxelinux.0";
    #定义dhcp获取地址的网段为172.16.20.0/24
    subnet 172.16.20.0 netmask 255.255.255.0 {
            #定义dhcp获取的网关
            option routers  172.16.20.251;
            #定义dhcp获取的地址范围
            range 172.16.20.200 172.16.20.200;
            option subnet-mask 255.255.255.0;
            default-lease-time 21600;
            max-lease-time 43200;
            }
    

      指定监控网卡

      修改配置文件

    /etc/sysconfig/dhcpd
    

      增加一行指定监控的网卡为eth0

    DHCPDARGS=eth0
    

      启动dhcp服务

    systemctl start dhcpd
    

      在同网段开启一台虚拟机启动,可以看到已经从dhcp获取到IP地址但是没有tftp信息

       3.2安装tftp

    yum -y install tftp-server xinetd
    

      修改配置文件

    /etc/xinetd.d/tftp

      把disable改成no

    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 start tftp
    systemctl enable tftp
    

      

     

      启动

    systemctl start xinetd
    systemctl enable xinetd
    

      

      3.3安装httpd网页服务

    yum -y install httpd
    

      启动httpd网页服务

    systemctl start httpd
    systemctl enable httpd
    

      在站点目录下创建一个新目录用于挂载ISO镜像

    mkdir /var/www/html/centos6
    

      挂载

     mount /nas/nas/softs/iso/CentOS/CentOS-6.6-x86_64-minimal.iso /var/www/html/centos6/

      通过web页面浏览

      

      3.4安装syslinux

      安装

     yum -y install syslinux
    

      拷贝文件至tftp根目录

    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
    cp -a /var/www/html/centos6/isolinux/* /var/lib/tftpboot/
    

      新建目录存放客户端配置文件

    mkdir -p /var/lib/tftpboot/pxelinux.cfg
    cp /var/www/html/centos7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
    

      

      客户端启动主机即可选择安装

      输入安装的url地址

      正常安装centos步骤一步步进行下一步即可

      以上为半自动化安装修改配置文件

    /var/lib/tftpboot/pxelinux.cfg/default 
    

      

    #prompt 1
    default ks
    timeout 600
    
    display boot.msg
    
    menu background splash.jpg
    menu title Welcome to CentOS 6.6!
    menu color border 0 #ffffffff #00000000
    menu color sel 7 #ffffffff #ff000000
    menu color title 0 #ffffffff #00000000
    menu color tabmsg 0 #ffffffff #00000000
    menu color unsel 0 #ffffffff #00000000
    menu color hotsel 0 #ff000000 #ffffffff
    menu color hotkey 7 #ffffffff #ff000000
    menu color scrollbar 0 #ffffffff #00000000
    
    label linux
      menu label ^Install or upgrade an existing system
      menu default
      kernel vmlinuz
      append initrd=initrd.img
    label vesa
      menu label Install system with ^basic video driver
      kernel vmlinuz
      append initrd=initrd.img xdriver=vesa nomodeset
    label rescue
      menu label ^Rescue installed system
      kernel vmlinuz
      append initrd=initrd.img rescue
    label local
      menu label Boot from ^local drive
      localboot 0xffff
    label memtest86
      menu label ^Memory test
      kernel memtest
      append -
    
    label ks
      kernel vmlinuz
      append ks=http://172.16.30.31/ks.cfg initrd=initrd.img
    

      红色部分为增加部分,设置自动应答文件

      自动应答文件在新安装的主机的目录/root下 anaconda-ks.cfg

      安装centos6没有问题 无法安装centos7 (尚不清楚原因)

  • 相关阅读:
    【Python】批量导出word文档中的图片、嵌入式文件
    关于loguru日志模板并发重复打印修复
    wordpress检索分类法函数:get_terms
    java函数式编程及Consumer、Supplier、Function、Predicate四大接口
    解决 centos7 虚拟机 github 访问太慢的问题
    error execution phase preflight: couldn't validate the identity of the API Server.. x509: certificate has expired or is not yet valid:...
    vscode 避免每次ssh都输入密码
    深入理解 docker build 中的构建上下文
    SSH 出现 The authenticity of host xxx can't be established.
    Viusal Studio 代码片段管理
  • 原文地址:https://www.cnblogs.com/minseo/p/10774030.html
Copyright © 2020-2023  润新知