PXE

作者: Bruce_King | 来源:发表于2017-08-25 20:45 被阅读31次

    What's PXE ?

    PXE简单地说就是通过一些服务和预先设置好的文件来实现操作系统的无人值守安装。

    Why are you installing with PXE ?

    在生产环境中,公司有可能一次性上架数百台甚至数千台服务器,一台一台安装操作系统听上去是一件很恐怖的事。通过PXE安装操作系统,可以大大减轻运维工程师的工作。

    How to install with PXE ?

    首先,我们先介绍几个过程中很重要的几个服务。

    • DHCP(Dynamic Host Configuration Protocol , 动态主机配置协议)
    • TFTP(Trivial File Transfer Protocol,简单文件传输协议)
    • FileServer(yum repository),可以由httpd、ftp服务提供

    DHCP
      DHCP是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务提供商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。其中UDP 67 和 68 端口,分别作为DHCP Server 和 DHCP Client的服务端口。在PXE中,DHCP主要负责给服务器分配IP地址,并指明TFTP服务器的位置。

    TFTP
      TFTP是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号为69。在PXE中,TFTP主要提供服务器启动和引导操作系统的一些重要文件。

    FileServer
      主要为PXE环境提供安装所需要的yum仓库,可以使用httpd或者ftp。

    PXE环境的安装示例:

    安装环境:
      CentOS 7

    所需软件:
      ~]#yum install -y dhcp
      ~]#yum install -y tftp-server
      ~]#yum install -y syslinux
      ~]#yum install -y httpd

      ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf  #复制一份dhcp的配置文件模板到/etc/dhcp/目录下
      ~]#vim /etc/dhcp/dhcpd.conf            #配置dhcp配置文件
    
           option domain-name "jrc.com";
           option routers 192.168.10.5;
           option domain-name-servers 192.168.10.1;
           default-lease-time 43200;
           max-lease-time 86400;
           subnet 192.168.10.0 netmask 255.255.255.0 {        #配置作用域
                   range 192.168.10.101 192.168.10.110;
                   filename "pxelinux.0";                     #提供Filename
                   next-server 192.168.10.5;                  #提供Filename的TFTP服务器地址
            }
      ~]#cp /usr/share/syslinux/pxelinux.0  /var/libtftpboot/   #将syslinux中的引导文件复制到TFTP共享目录下
      ~]#mount -r /dev/cdrom /mnt      #将镜像光盘挂载到/mnt目录
      ~]#cp /mnt/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/   #复制系统引导过程中的所需文件
      ~]#mkdir /var/lib/tftpboot/pxelinux.cfg/
      ~]#vim /var/lib/tftpboot/pxelinux.cfg/default    #创建default文本,配置引导界面中的各选项配置
            default menu.c32
               prompt 5
               timeout 30
               MENU TITLE CentOS 7 PXE Menu
               LABEL linux_autoinst
               MENU LABLE Install CentOS7 x86_64 auto
               KERNEL vmlinuz
               APPEND initrd=initrd.img inst.repo=http://192.168.10.5/CentOS/x86_64
      ~]#mkdir /var/www/html/CentOS7/x86_64
      ~]#umount /mnt    #卸载之前挂载的光盘
      ~]#mount /dev/cdrom /var/www/html/CentOS7/x86_64    #挂载光盘至指定目录下
    
       ~]#vim /var/www/html/CentOS7/centos7.cfg    创建kickstart配置文件
    
            #platform=x86, AMD64, 或 Intel EM64T
            #version=DEVEL
            # Install OS instead of upgrade
              install
            # X Window System configuration information
              xconfig  --startxonboot
            # Keyboard layouts
            # old format: keyboard us
            # new format:
              keyboard --vckeymap=cn --xlayouts='cn'
            # Reboot after installation
              reboot
            # Root password
              rootpw --iscrypted $1$HDHf2v4i$LMo.xGHfxQDOf8e043C.g/
            # System timezone
              timezone Asia/Shanghai
            # Use network installation
              url --url="http://192.168.10.5/CentOS7/x86_64"     #这是安装的repository地址.
            # System language
              lang zh_CN
              user --groups=wheel --name=mageedu --
             password=$6$1eWrOetY$DfLZgquGiOaNkwpEF4ItMipz.1kpn7Q.s6oXyoW2bALkWesRWHCCACICkJ.2zBXDbwEw0ibR.wxStLI41ZhfF1 --iscrypted --gecos="MageEdu"
    
       ~]#systemctl start dhcpd.service    #启动dhcp服务
       ~]#systemctl start tftp.socket    #启动tftp服务
       ~]#systemctl start httpd.service    #启动httpd服务
    

    所有的准备已经做好,只要有VM的虚拟机接入就可以了。

    attention:需要将VM上的DHCP给关掉。

    相关文章

      网友评论

          本文标题:PXE

          本文链接:https://www.haomeiwen.com/subject/qwysdxtx.html