PXE

2017-08-25  本文已影响31人  Bruce_King

What's PXE ?

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

Why are you installing with PXE ?

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

How to install with PXE ?

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

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给关掉。

上一篇下一篇

猜你喜欢

热点阅读