一、PXE基础装机环境

目标:

本例要求为后续的PXE服务器构建提供RHEL7软件仓库,完成下列任务:

1> 在CentOS真机部署Web目录/var/www/html/rh7dvd
   2> 挂载RHEL7光盘镜像文件到该目录
   3> 访问 http://192.168.4.254/rhel7/ 测试,确保可用

方案:

PXE网络装机的整体思路 —— 装机条件准备:

  • 准备RHEL7安装源(HTTP方式YUM库)
  • 启用DHCP服务

PXE网络装机的整体思路 —— PXE引导配置:

  • 启用TFTP服务,提供装机用的内核、初始化文件
  • 提供PXE引导程序、配置启动菜单

步骤:

步骤一:通过 HTTP 方式发布RHEL7软件源

此环节可以直接使用网络内共有的YUM软件源,比如CentOS真机。

1)快速构建httpd服务器(若已构建,此步可跳过)

[root@room9pc13 ~]# yum  -y  install  httpd          //装包
    [root@room9pc13 ~]# systemctl  restart  httpd         //启动服务
    [root@room9pc13 ~]# systemctl  enable  httpd          //设置开机自启

2)准备yum仓库,部署到Web子目录

[root@room9pc13 ~]# mkdir  /var/www/html/rh7dvd      //建挂载点
    [root@room9pc13 ~]# vim  /etc/fstab
    .. ..
    /ISO/rhel-server-7.2-x86_64-dvd.iso  /var/www/html/rh7dvd  iso9660  loop,ro  0  0
    [root@room9pc13 ~]# mount  -a                         //挂载ISO镜像文件
    [root@room9pc13 ~]# ls  /var/www/html/rh7dvd/         //确认部署位置
    addons  isolinux       repodata
    EFI     LiveOS         RPM-GPG-KEY-redhat-beta
    EULA    media.repo     RPM-GPG-KEY-redhat-release
    GPL     Packages       TRANS.TBL
    images  release-notes

步骤二:确保yum仓库HTTP资源可用

从浏览器访问http://192.168.4.254/rh7dvd/,可看到仓库资源(如下图所示)。

二、配置并验证DHCP服务

目标:

本例要求为PXE客户机提供地址分配服务,在主机 svr7 上搭建支持PXE的DHCP服务器,提供的地址参数如下:

  • IP地址范围 192.168.4.10~200/24
  • PXE引导服务器位于 192.168.4.7、引导文件 pxelinux.0

然后在主机 pc207 上使用dhclient命令测试 DHCP地址分配服务。

方案:

DHCP地址分配的四次会话:DISCOVERY --> OFFER --> REQUEST -->ACK 。

DHCP服务器基本概念:

  • DHCP租期:允许客户机租用IP地址的时间期限,单位为秒
  • DHCP作用域:分配给客户机的IP地址所在的网段
  • DHCP地址池:用来动态分配的IP地址的范围

DHCP服务端:软件包dhcp、系统服务dhcpd

DHCP服务端配置文件:/etc/dhcp/dhcpd.conf

传输协议及端口:UDP 67(服务器)、UDP 68(客户端)

步骤:

步骤一:配置DHCP服务端

1)安装dhcp软件包

[root@svr7 ~]# yum  -y  install  dhcp
    .. ..

2)建立dhcpd.conf服务配置

[root@svr7 ~]# vim  /etc/dhcp/dhcpd.conf
    subnet 192.168.4.0 netmask 255.255.255.0 {
         range  192.168.4.10 192.168.4.200;
         next-server  192.168.4.7;
         filename  "pxelinux.0";
    }

3)启动系统服务dhcpd,并设置开机自启

[root@svr7 ~]# systemctl  restart  dhcpd
    [root@svr7 ~]# systemctl  enable  dhcpd
    Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

4)确认dhcpd服务状态

[root@svr7 ~]# netstat  -anptu  |  grep  dhcpd
    udp        0      0 0.0.0.0:67              0.0.0.0:*                           58693/dhcpd         
    .. ..

步骤二:在客户端测试DHCP服务

1)使用dhclient命令测试,观察获取IP地址的过程

[root@pc207 ~]# dhclient  -d  eth0
    Internet Systems Consortium DHCP Client 4.2.5
    Copyright 2004-2013 Internet Systems Consortium.
    All rights reserved.
    For info, please visit https://www.isc.org/software/dhcp/
    .. ..
    DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0x6707682f)
    DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x6707682f)
    DHCPOFFER from 192.168.4.7
    DHCPACK from 192.168.4.7 (xid=0x6707682f)
    bound to 192.168.4.10 -- renewal in 18008 seconds.
    ^C                                   //按Ctrl+c键退出测试

2)若因操作异常导致IP故障,可恢复客户机原有IP配置

[root@pc207 ~]# pkill  -9  dhclient                      //杀死dhclient进程
    [root@pc207 ~]# nmcli  connection  up  eth0              //激活原配置
    .. ..

三、配置PXE引导

目标:

本例要求为PXE装机提供引导服务,并提供必要的素材,完成下列任务:

1> 启用TFTP服务器,部署引导文件(内核vmlinuz、初始文件initrd.img、网卡启动程序pxelinux.0)
   2> 创建pxelinux.cfg/配置目录,在此目录下建立默认引导文件default

方案:

TFTP,Trivial File Transfer Protocol:简单文件传输协议,通过UDP 69端口提供小文件的传输服务,默认应将资源部署到/var/lib/tftpboot目录下,不支持认证和目录访问等复杂FTP操作。

网卡启动程序pxelinux.0由软件包syslinux提供。

PXE安装用的内核及初始化文件可从RHEL7的光盘目录/images/pxeboot/下提取。

PXE启动配置相关资料可参考RHEL7的光盘目录/isolinux/,其中包括图形支持模块vesamenu.c32、背景图片spash.png、菜单配置文件isolinux.cfg(使用时改名为default)。

步骤:

步骤一:快速构建TFTP服务器

1)安装tftp-server软件包

[root@svr7 ~]# yum -y install tftp-server
    .. ..

2)启动系统服务tftp,并设置开机自启

[root@svr7 ~]# systemctl  restart  tftp
    [root@svr7 ~]# systemctl  enable  tftp
    Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.

步骤二:部署启动文件

1)拷贝pxelinux.0程序,部署到TFTP目录

在软件包syslinux提供的目录下找到pxelinux.0程序

[root@svr7 ~]# yum  -y  install  syslinux
    [root@svr7 ~]# rpm  -ql  syslinux  |  grep pxelinux.0
    /usr/share/syslinux/gpxelinux.0
    /usr/share/syslinux/pxelinux.0

将其拷贝到/var/lib/tftpboot/目录下,确认部署结果:

[root@svr7 ~]# cp  /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
    [root@svr7 ~]# ls  /var/lib/tftpboot/
    pxelinux.0

2)拷贝引导装机的内核、初始镜像,部署到TFTP目录

当文件较多时,可以在TFTP目录下创建子目录:

[root@svr7 ~]# mkdir  /var/lib/tftpboot/rhel7

再通过RHEL7光盘目录找到PXE版内核vmlinuz、初始镜像initrd.img,将其拷贝到上述子目录:

[root@svr7 ~]# cd  /var/lib/tftpboot/rhel7/
    [root@svr7 rhel7]# wget  http://192.168.4.254/rh7dvd/isolinux/vmlinuz
    [root@svr7 rhel7]# wget  http://192.168.4.254/rh7dvd/isolinux/initrd.img
                                                  //下载内核、初始化文件

确认部署结果:

[root@svr7 pxeboot]# ls  -R  /var/lib/tftpboot/
    /var/lib/tftpboot/:
    pxelinux.0  rhel7
    /var/lib/tftpboot/rhel7:
    initrd.img  vmlinuz

步骤三:配置启动菜单

1)创建配置目录

[root@svr7 ~]# mkdir  /var/lib/tftpboot/pxelinux.cfg

2)以光盘中的isolinux目录为模板,拷贝必要的文件

[root@svr7 ~]# cd  /var/lib/tftpboot/
    [root@svr7 tftpboot]# wget  http://192.168.4.254/rh7dvd/isolinux/vesamenu.c32
                                                          //提供图形支持
    [root@svr7 tftpboot]# wget  http://192.168.4.254/rh7dvd/isolinux/splash.png  
                                                                //准备背景图片
    [root@svr7 tftpboot]# wget  -O  pxelinux.cfg/default  http://192.168.4.254/rh7dvd/isolinux/isolinux.cfg
                                                             //建立菜单配置
    [root@svr7 isolinux]# ls  -R  /var/lib/tftpboot/          //确认部署结果
    /var/lib/tftpboot/:
    pxelinux.0  pxelinux.cfg  rhel7  splash.png  vesamenu.c32
    /var/lib/tftpboot/pxelinux.cfg:
    default
    /var/lib/tftpboot/rhel7:
    initrd.img  vmlinuz

3)调整启动参数

[root@svr7 ~]# vim  /var/lib/tftpboot/pxelinux.cfg/default
    default vesamenu.c32                              //默认交给图形模块处理
    timeout 600                                      //选择限时为60秒(单位1/10秒)
    .. ..
    menu title  PXE  Installation  Server             //启动菜单标题信息
    .. ..
    label  linux                                  //菜单项标签
        menu  label  ^Install Red Hat Enterprise Linux 7.2
        kernel  rhel7/vmlinuz                      //内核的位置
        append  initrd=rhel7/initrd.img  inst.stage2=http://192.168.4.254/rh7dvd
                                                     //初始镜像、安装源位置
    label rescue
        menu label ^Rescue a Red Hat Enterprise Linux system
        kernel rhel7/vmlinuz
        append initrd=rhel7/initrd.img inst.stage2=http://192.168.4.254/rh7dvd rescue
    label local                                     //从硬盘启动
        menu  default                              //默认启动方式
        menu label Boot from ^local drive
        localboot 0xffff
    menu  end

步骤四:访问TFTP服务端确保可用

1)在pc207上安装tftp命令工具

[root@pc207 ~]# yum  -y  install  tftp
    .. ..

2)在pc207上访问svr7上的TFTP服务端,下载文件测试

[root@pc207 ~]# tftp  192.168.4.7  -c  get pxelinux.0
    [root@pc207 ~]# ls  -lh  pxelinux.0                      //检查下载结果
    -rw-r--r--. 1 root root 27K 1月  13 15:48 pxelinux.0

四、验证PXE网络装机

目标;

沿用案例三,本例要求新建一台虚拟机(内存1G、硬盘20G),完成PXE网络装机的过程测试:

1> 选择采用URL源,自动获取IP地址
   2> 指定路径 http://192.168.4.254/rh7dvd
   3> 后续过程与光盘本地安装相同

方案;

认识PXE客户机装机的引导环节:

1> 通过DHCP配置网卡、获知TFTP地址及PXE启动文件
    2> 从TFTP服务器下载PXE启动文件
    3> 读取启动配置(pxelinux.cfg/default)
    4> 根据用户选择下载 vmlinuz 和 initrd.img
    5> 内核 vmlinuz 运行后,主导安装过程

步骤;

步骤一:新建虚拟机pxetest

新建一台虚拟机,注意将安装方式选择“网络引导(PXE)”(如下图所示)。虚拟机的其他设置参考:内存1G、硬盘20G;网络类型要与PXE服务器相同,比如选用private1隔离网络。

注意:如果是生产环境中已经有系统的客户机,则需要调整BIOS设置,将网络引导作为第一启动设备。

步骤二:启动虚拟机pxetest,验证PXE网络安装过程

1)确认启动界面

客户机通过PXE引导以后,可以获得服务端提供的配置界面(如下图所示)。

2)选择第一个菜单项开始安装RHEL7操作系统

成功出现RHEL7安装程序的欢迎界面,根据提示选择中文(如下图所示)后继续。

3)下一步需手动选择安装源

指定位于http://192.168.4.254/rh7dvd的软件仓库(如下图所示),软件选择、安装位置等设置根据需要指定,确认后继续。

后续过程与正常的光盘安装类似,不再赘述。

顺利操作到这里说明PXE网络引导安装的目标已经实现了。

五、PXE+kickstart自动装机

目标:

本例要求在PXE服务器上为RHEL7客户机准备ks应答文件,完成下列任务:

1> 实现全自动的安装及配置
   2> 能够自动配好YUM仓库

然后在客户机上验证PXE+kickstart全自动装机过程:

1> 再次将测试客户机从PXE启动并安装
   2> 完成后,重启客户机并验证结果

方案:

使用图形配置工具system-config-kickstart来生成应答文件

步骤:

步骤一:准备应答文件

找一台RHEL7系统的模板虚拟机,使用配置工具生成应答文件。

1)在模板机上安装system-config-kickstart软件包

[root@svr7 ~]# yum  -y  install  system-config-kickstart
    .. ..

2)调整模板机的yum仓库设置

清理掉无关的yum源,只保留为客户机安装RHEL7系统所必要的yum源,并且将源的ID修改为development。

[root@svr7 ~]# vim  /etc/yum.repos.d/rh7dvd.repo
    [development]
    name = Red Hat Enterprise Linux 7
    baseurl = http://192.168.4.254/rh7dvd
    gpgcheck = 0

3)运行system-config-kickstart工具,创建应答文件

在支持图形程序的环境运行system-config-kickstart,即可打开该配置工具(如下图所示)。

通过“文件”菜单打开/root/anaconda-ks.cfg文件,作为应答配置模板,这样可以节省很多时间(如下图所示)。根据需要确认默认语言、时区,设置根口令、磁盘分区规划等基本信息。

在安装方法部分,选择“执行新安装”,并正确设置HTTP安装源的访问地址信息(如下图所示)。

在分区信息部分,选择清除主引导记录、删除所有现存分区、初始化磁盘标签,并手动添加/boot 200MB、SWAP分区 2000MB、/分区 所有剩余空间(如下图所示)。

在网络配置部分,确认已添加第一块网卡,设为DHCP自动获取(如下图所示)。

在防火墙配置部分,禁用SELinux、禁用防火墙(如下图所示)。

在软件包选择部分,根据客户机的实际需要定制。比如若要使用图形桌面环境,建议将GNOME相关的包勾选上(如下图所示)。

在安装后脚本部分,添加经验证的正确可执行语句,使客户机装好系统后能够自动配好YUM源(如下图所示)。

确认上述调整后,通过“文件”菜单将其保存为/root/ks-rhel7.cfg。

4)应答文件微调整

删除掉随模板机配置残留的不可用仓库记录(比如以repo --name开头的Server-HighAvailability、Server-ResilientStorage、autopart等行)

[root@svr7 ~]# vim  /root/ks-rhel7.cfg
    install                                                  //安装基本信息设置
    xconfig  --startxonboot
    keyboard --vckeymap=cn --xlayouts='cn'
    rootpw --iscrypted $1$.48kBNVL$e.Ym0L/RzkJonYwbg9Brq1
    timezone Asia/Shanghai
    url --url="http://192.168.4.254/rh7dvd"                  //安装源设置
    lang zh_CN
    firewall --disabled
    #repo --name="Server-HighAvailability" --baseurl=file:///run/install/repo/addons/HighAvailability
    #repo --name="Server-ResilientStorage" --baseurl=file:///run/install/repo/addons/ResilientStorage
    #autopart --type=lvm                                      //分区设置
    zerombr
    clearpart --all --initlabel
    part /boot --fstype="xfs" --size=200
    part swap --fstype="swap" --size=2000
    part / --fstype="xfs" --grow --size=1
    .. ..
    %post --interpreter=/bin/bash                          //安装后脚本设置
    echo  '[rhel7]
    name = Red Hat Enterprise Linux 7.2
    baseurl = http://192.168.4.254/rh7dvd
    gpgcheck = 0'  >  /etc/yum.repos.d/rhel7.repo
    %end
    %packages                                              //软件包设置
    @^graphical-server-environment
    @base
    @core
    @desktop-debugging
    @development
    .. ..
    initial-setup
    initial-setup-gui
    -NetworkManager
    -NetworkManager-team
    .. ..
    %end

步骤二:部署应答文件

1)将应答文件部署在客户机可访问的位置

部署并确认文件:

[root@room9pc13 ~]# scp  root@192.168.4.7:/root/ks-rhel7.cfg  /var/www/html/
    [root@room9pc13 ~]# ls  -lh  /var/www/html/ks-rhel7.cfg          //检查部署的文件
    -rw-r--r--. 1 root root 4.5K 1月  13 20:20 /var/www/html/ks-rhel7.cfg

在客户端下载应答文件,确保可访问:

[root@pc207 ~]# wget  http://192.168.4.254/ks-rhel7.cfg
    .. ..
    2017-01-13 20:22:19 (183 MB/s) - “ks-rhel7.cfg” 已保存 [4508]
    [root@pc207 ~]# ls  -lh  ks-rhel7.cfg                 //检查下载的文件
    -rw-r--r--. 1 root root 4.5K 1月  13 20:22 ks-rhel7.cfg

2)在PXE服务器上修改default引导配置,调用应答文件

找到相应的label启动项,在append后添加ks=应答文件地址,去掉原有的inst.stage2参数设置:

[root@svr7 ~]# vim  /var/lib/tftpboot/pxelinux.cfg/default
    .. ..
    label linux
        menu label ^Install Red Hat Enterprise Linux 7.2
        kernel rhel7/vmlinuz
        append initrd=rhel7/initrd.img ks=http://192.168.4.254/ks-rhel7.cfg
    .. ..

步骤三:验证PXE+kickstart自动应答

1)新建一台虚拟机裸机,确认支持PXE网卡启动

新建一台虚拟机裸机,注意以下事项:将内存设为1G、硬盘设为20G;网络类型要与pxesvr服务器的相同,比如选择private1。

2)启动虚拟机裸机,验证PXE网络安装过程

正常PXE引导,选择第一个启动项回车确认即快速进入全自动安装,后续过程基本无需人工干预(如下图所示)。

Service系统服务(五):PXE基础装机环境、配置并验证DHCP服务、配置PXE引导、验证PXE网络装机、PXE+kickstart自动装机的更多相关文章

  1. Cisco基础(一):Vlan的划分、配置trunk中继链路、以太通道配置、DHCP服务配置

    一.Vlan的划分 目标: VLAN(虚拟局域网)是对连接到的第二层交换机端口的网络用户的逻辑分段,不受网络用户的物理位置限制而根据用户需求进行网络分段.一个VLAN可以在 一个交换机或者跨交换机实现 ...

  2. (四)跟我一起玩Linux网络服务:DHCP服务配置之中继代理

    继第三部分的DHCP服务器的设置成功,我们来做一个中继代理服务器的配置吧. 我们的虚拟机结构如图: 具体参考: (一)跟我一起玩Linux网络服务:DNS服务——BIND(/etc/named.con ...

  3. Kali Linux常用服务配置教程启动DHCP服务

    Kali Linux常用服务配置教程启动DHCP服务 通过前面的介绍,DHCP服务就配置好了.接下来,用户就可以使用该服务器来获取IP地址了.下面将对前面配置的服务进行测试. 1.启动DHCP服务 如 ...

  4. Linux PXE + Kickstart 自动装机

    大规模装机时,使用无人值守装机便可大大简便人工操作,提高效率. PXE 网络安装 配置双网卡 这里ens33为nat网络,ens37为仅主机网络,配置ens37 [root@localhost ~]# ...

  5. pxe+Kickstart自动装机补充知识点

    1.vmlinuzvmlinuz是可引导的.压缩的内核.“vm”代表“Virtual Memory”.Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制.Linux能够使用硬盘 ...

  6. (三)跟我一起玩Linux网络服务:DHCP服务配置之主服务器配置

    我们今天来做DHCP服务器的配置,我们的前提示要实现用一台虚拟机做DHCP服务器 1.首先,我们要有DHCP软件,我们用到下面两个软件(可以使用其他方法从网上直接安装,具体方法网络搜索) dhcp-3 ...

  7. 项目(四)DHCP服务配置

    DHCP是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议. 使用DHCP可以减少管理员的工作量,避免IP地址冲突,当网络修改IP地址网段时 ...

  8. DHCP服务配置

    DHCP(Dynamic Host Configuration Protocol)动态主机配置协议 -->是由Internet工作任务小组设计开发的,专用于对TCP/IP网络中的计算机自定分配T ...

  9. Linux:DHCP服务配置

    DHCP服务程序能够使局域网内的主机自动且动态的获取IP地址.子网掩码.网关地址以及DNS服务器地址等信息.    说明:先安装DHCP服务     yum install dhcp -y       ...

随机推荐

  1. 【LeetCode 90】子集 II

    题目链接 [题解] 我们在枚举下一个要取哪个数字的时候. 如 1112233 for (int i = start;i<=n;i++) //其中start-1是上一次取的位置. 如果i>s ...

  2. PCB下元器件重叠放置--Altium Designer

    这里指的是同层元件重叠,即在大的器件下放置小的器件:虽然程序设计规则默认同层元件重叠是错误的,但是在实际设计中,同层元件重叠却经常使用. 以Altium Designer9.0为例:不过好像规则里并没 ...

  3. Delphi读取和写入utf-8编码格式的文件

    读取UTF-8格式的文件内容 function LoadUTF8File(AFileName: string): string; var ffileStream:TFileStream; fAnsiB ...

  4. 【靶场练习_sqli-labs】SQLi-LABS Page-3 (Stacked Injections)

    Less-39: ?id=1 and 1 ,?id=1 and 1 : 回显不同,数字型 ?id=0 union select 1,2,group_concat(table_name) from in ...

  5. Codeforces Round #506 (Div. 3) E

    Codeforces Round #506 (Div. 3) E dfs+贪心 #include<bits/stdc++.h> using namespace std; typedef l ...

  6. Asynchronous C# server[转]

    It hasn't been thoroughly tested, but seems to work OK. This should scale pretty nicely as well. Ori ...

  7. 开源 NAS 操作系统不完全汇总

    市面上能见到的 NAS 操作系统很多,有如 FreeNAS 这样意气风发的开源免费版,也有完全商业的闭源版本,更有如黑群晖之类的破解版本.NAS 系统的迭代是一个大浪淘沙的过程,活下来的系统在功能上逐 ...

  8. 3.tensorflow——NN

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data numClasses=10 inp ...

  9. js设置cookies

    //写入cookies的方法 function setCookie(name, value, seconds) { seconds = seconds || 0; //seconds有值就直接赋值,没 ...

  10. Learning OSG programing---osgScribe

    Learning OSG programing---osgScribe Scribe可以翻译为素描,抄写等.本例通过在模型表面添加一层素描,来显示模型的骨架. 关键代码: osg::ref_ptr&l ...