PXE服务器介绍及部署


PXE简介:

      PXE:预安装环境 . 是Intel公司推出的一款通过网络来引导操作系统的协议 . 广泛应用于网吧无盘系统 .


实验目标:

      用centos7 系统部署一台pxe 服务器, 通过PXE网络来给客户端实现手动或自动安装 centos7 操作系统 .


PXE 服务器需要的支撑软件: 

      DHCP + TFTP +sys Linux (提供pxe 引导程序文件系统文件pxelinux.0)+ 文件共享(nfs , ftp , http , samba 等) . 


工作原理流程:

                PXE自动化系统安装服务器(DHCP + TFTP + syslinux +vsftpd)_第1张图片

PXE服务器和客户机的工作过程:

1.      PXE客户机发出DHCP请求,向服务器申请IP地址。

2.      DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机TFTP(简单文件传输协议)服务器的IP地址和PXE引导程序文件pxelinux.0

3.      PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。

4.      TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。

5.      PXE客户机通过网络来启动到系统安装主界面。

6.      PXE客户机向文件共享服务器发起获取centoswindows系统安装文件的请求。

7.      文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。

8.      PXE客户机进入到安装提示向导界面,用户需要手动来完成系统的操作。


kickstart自动化系统安装:

PXE服务器上用vimkcikstart工具创建一个系统自动安装的应答文件ks.cfg(自行命名),并用文件共享服务来共享ks.cfg文件。ks.cfg自动应答文件中是记录的安装操作步骤。客户机在进入安装界面时会自动根据ks.cfg文件中的内容来完成安装操作。


PXE 服务器部署流程:

  •      关闭selinux 和 防火墙

            setenforce   0

            systemctl   stop   firewalld

  •      部署 DHCP 服务器

            1. 查看软件是否安装 :  rpm  -q  dhcp

            2. 安装DHCP服务器软件 : yum  install  -y  dhcp

            3. 查看文件配置列表 : rpm  -qc  dhcp    (/etc/dhcp/dhcpd.conf  为  dhcp服务器的主配置文件)

            4. 编辑dhcpd.conf 配置文件:

                先查看主配置文件 , 再用vim编辑如下图红色标记文件

                PXE自动化系统安装服务器(DHCP + TFTP + syslinux +vsftpd)_第2张图片

                找到其中例子如下图所示

                PXE自动化系统安装服务器(DHCP + TFTP + syslinux +vsftpd)_第3张图片

                将其复制到主配置文件 /etc/dhcp/dhcpd.conf 中 ,并添加两行,以本人IP(192.168.11.11/24 为例) , 如下图

                192.168.11.11 为 tftp 服务器IP地址 , filename 为PXE引导程序文件名称 .

                PXE自动化系统安装服务器(DHCP + TFTP + syslinux +vsftpd)_第4张图片

            5. 启动 dhcp 服务 , 并允许开机自启动

                systemctl   restart  dhcpd

                systemctl   enable  dhcpd

 

  •      部署tftp-server服务流程:

     1. 查看软件是否已安装: rpm  -q  tftp-server

     2. 安装tftp 服务软件: yum  install  -y  tftp-server

     3. 查看tftp 服务配置文件并用vim 编辑此文件 , 将配置文件中的disabled = yes  改为 = no 如图:

          image.png  

          image.png

      4. 启动 tftp 服务 , 并设置开机自启动

           systemctl  restart  tftp

           systemctl  enable  tftp     


  •      安装提供pxelinux.0的syslinux软件共享pxe引导程序文件

            1. 查软件是否已安装:  rpm  -q  syslinux  mlocate

            2. 安装指定的软件:     yum  install  -y  syslinux  mlocate

            3. 更新locate文件查找数据库:   updatedb

            4. 查找pxelinux.0文件:   locate  pxelinux.0

            5.  切换到tftp-server的默认共享目录:  cd  /var/lib/tftpboot

            6. 复制指定的文件到当前目录中:  cp  -v  /usr/share/syslinux/pxelinux.0   ./

            7. 查看磁盘空间使用状态:  df  -hT

            8. 复制光盘挂载点目录中指定的文件到当前目录中:  cp  -v  /dvd/isolinux/*  ./

            9. 在当前目录中创建pxelinux.cfg目录:  mkdir  -v  pxelinux.cfg

            10. 复制指定的文件到指定目录中并改名为default:  cp  -v  isolinux.cfg    pxelinux.cfg/default 


  •     文件共享服务部署(以vsftpd 为例):

      

1.  查软件是否已安装:rpm  -q  vsftpd

2.  安装tftp-server服务器软件:yum   install  -y  vsftpd

3.  查配置文件列表:rpm  -qc   vsftpd

4.  启动vsftpd服务,允许开机自动启动服务

          systemctl  restart  vsftpd

          systemctl  enable  vsftpd

    5.   创建/var/ftp/dvd目录 , 共享centos7的系统镜像到/var/ftp/dvd目录

         mkdir  -v  /var/ftp/dvd

         mount  /dev/sr0   /var/ftp/dvd


完成上述  dhcp , tftp , vsftpd 服务后 , 采用kickstart 程序或用 vim 来创建 ks.cfg 配置文件 . 并用文件共享服务来共享ks.cfg 自动应答文件.

  •       使用 vim 创建 ks.cfg 自动应答文件:

      技巧 : linux系统在安装时会自动生成一个anaconda-ks.cfg 配置文件 ,文件位于/root 目录中 . anaconda-ks.cfg 里面记录的就是用户在安装系统时所作的操作 , 像选择语言环境  , 硬盘分区 , 安装的软件包 , 网卡IP设置 , 设置主机名 , root密码 ,新建普通等一系列操作 

      具体步骤: 

      1.修改/root/anaconda-ks.cfg 权限为 644 , 复制该文件到vsftpd服务共享目录/var/ftp/ks 目录中

         PXE自动化系统安装服务器(DHCP + TFTP + syslinux +vsftpd)_第5张图片

       2.修改  /var/lib/tftpboot/pxelinux.cfg/default 启动菜单文件

           vim  /var/lib/thtpboot/pxelinux.cfg/default

           :set nu 显示行号

           找到第64行文件,

           修改64行内容为append  initrd=initrd.img  method=ftp://192.168.11.11/dvd  ks=ftp://192.168.11.11/ks/ks.cfg            

          image.png         

         

          之后开启客户机 , 客户机会先获取IP , 再进入安装界面,如图:

         PXE自动化系统安装服务器(DHCP + TFTP + syslinux +vsftpd)_第6张图片

   

        用上下方向键选择第一个 , 按 Tab 键 , 下面会出现图上白色的字样 , 再按enter 键安装 , 客户机会自动根据/var/lib/tftpboot/pxelinux.cfg/default 内容进行自动化安装 . 

----------------------------     

      附:ks.cfg 配置文件解析:

      

cat    /var/ftp/ks/ks.cfg    看ks.cfg自动应答文件

#version=DEVEL系统版本号为DEVEL开发版

# System   authorization information系统认证信息,即指定系统密码加密方式为sha512加密算法

auth --enableshadow --passalgo=sha512

# Use CDROM   installation media使用CDROM光盘安装媒体

cdrom

# Use graphical   install使用图形安装界面进行系统安装,此处可用graphical图形、也可用text文本方式。

graphical

# Run the Setup   Agent on first boot运行设置代理在第1次启动时

firstboot --enable

ignoredisk --only-use=sda

# Keyboard   layouts键盘布局

keyboard --vckeymap=cn --xlayouts='cn'

# System   language系统语言环境

lang zh_CN.UTF-8

 

# Network   information网络信息,包括IP地址获取方式(static或dhcp)、网关、device网卡设备名、nameserver域名解析服务器IP地址、netmask子网掩码、IPv6的IP地址等。

network    --bootproto=static --device=ens33 --gateway=192.168.11.2   --ip=192.168.11.11 --nameserver=114.114.114.114,8.8.8.8   --netmask=255.255.255.0 --ipv6=auto --activate

network    --hostname=localhost.localdomain

 

# Root password――指定root用户的登录密码,是加密后的密码

rootpw --iscrypted   $6$6vsqEcQaDu/y9CkV$1ZSy74HR1mxG.i0xBiUALwywaWCx2zgbWx5QRbJ2Nskck.29C2UxjXIr5jM6LatiaKtip7nvnQ2B5xrype.pA.

# System   services系统服务,以下是允许chronyd网络时间服务开机自动启动

services --enabled="chronyd"

# System   timezone系统时区,新建普通用户jin并设置登录密码

timezone Asia/Shanghai --isUtc

user --groups=wheel --name=jin   --password=$6$MHU28rsP7sGGkw7s$JaqYHxDXAHmQaEHS33Py7kvnrKtfMnFp8HqlGw3xy6PAo1dtkxeKOGpi2Yg9UqXJqDLnTjsBkauRekkPYycvt/   --iscrypted --gecos="jin"

# X Window   System configuration information――x window系统配置

xconfig    --startxonboot

# System   bootloader configuration系统引导程序配置

bootloader --append="   crashkernel=auto" --location=mbr --boot-drive=sda

# Partition   clearing information分区表清除信息

clearpart --none --initlabel

# Disk   partitioning information磁盘分区表信息

#创建名称为pv.157这个PV,在sda硬盘上,容量大小为50175兆

part pv.157 --fstype="lvmpv"   --ondisk=sda --size=50175

#创建/boot分区,文件系统类型为xfs,在sda硬盘上,容量大小为1024兆

part /boot --fstype="xfs"   --ondisk=sda --size=1024

#创建名称为centos的VG卷组,PE大小为4096K,在pv.157这个PV中创建

volgroup centos --pesize=4096 pv.157

#创建/根的逻辑卷,文件系统类型为xfs,最大容量为51200兆,初始容量大小为1024兆,逻辑卷名称为root,组卷名称为centos

logvol  /    --fstype="xfs" --grow --maxsize=51200 --size=1024   --name=root --vgname=centos

logvol swap  --fstype="swap" --size=2048   --name=swap --vgname=centos

 

#设置需要安装的软件包和软件包分组

%packages

@^gnome-desktop-environment

@base

@core

@desktop-debugging

@dial-up

@directory-client

@fonts

@gnome-desktop

@guest-agents

@guest-desktop-agents

@input-methods

@internet-browser

@java-platform

@multimedia

@network-file-system-client

@networkmanager-submodules

@print-client

@x11

chrony

kexec-tools

 

%end

 

%addon com_redhat_kdump --enable   --reserve-mb='auto'

 

%end

 

%anaconda

pwpolicy root --minlen=6 --minquality=1   --notstrict --nochanges --notempty

pwpolicy user --minlen=6 --minquality=1   --notstrict --nochanges --emptyok

pwpolicy luks --minlen=6 --minquality=1   --notstrict --nochanges --notempty

%end

 ------------------------------


    使用kickstart软件来生成ks.cfg自动应答文件。  



    步骤:

             1. 搜索kickstart 关键字的软件

                 yum  search  kickstart

             2. 安装 kickstart 软件包

                 yum  install  -y  system-config-kickstart

             3. 启动kickstart 配置程序

                 system-config-kickstart

     完成安装之后,启动kickstart , 会自动弹出 kickstart 设置界面 , 如图所示:

           PXE自动化系统安装服务器(DHCP + TFTP + syslinux +vsftpd)_第7张图片

            

     点击左上角文件 --> 预览 , 里面所示为 kickstart 生成的自动化安装文件 ks.cfg 的内容 :

         PXE自动化系统安装服务器(DHCP + TFTP + syslinux +vsftpd)_第8张图片

   

     问题:图中的“软件包选择”界面会出现下图所示的错误:问题的原因是yum源的repo文件中的“仓库标识”必须用[development]

       PXE自动化系统安装服务器(DHCP + TFTP + syslinux +vsftpd)_第9张图片   


             修改yum源配置文件:

             vim   /etc/yum.repos.d/local.repo   文件内容如下

            [development]

            name=centos 7.5  linux

            baseurl=file:///dvd

            enabled=1

            gpgcheck=0

    

    yum 源设置可详细参考 https://blog.51cto.com/14181896/2344517

    修改yum 源仓库标识之后 , 再启用kickstart , 软件包选择就会变成如下图所示 , 勾选需要安装的软键 , 客户机安装系统上就会自动安装 .

   PXE自动化系统安装服务器(DHCP + TFTP + syslinux +vsftpd)_第10张图片


   管理员可根据需求对kickstart软件进行设置自动化安装过程 , 设置好之后 ,左上角文件保存 , 会自动生成一个ks.cfg 的文件 ,把生成的文件放在 /var/ftp下 , 客户机会根据kickstart设置的内容进行自动安装 .