PXE网络引导自动化安装系统详解

一、PXE:预引导加载环境

 1.PXE

         Preboot ExecuteEnvironment:支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTPtrivial file transfer protocol)或MTFTP(multicasttrivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成Client端自动化基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux等。

 

  2.基于PXE自动安装系统所需组件

     (1)DHCP服务器

             DHCP动态主机配置协议会在预引导加载操作系统的时候动态自动分配一个IP地址,同时完成网络加载的主机的设定;需要在其地址池subnet配置中配置一下参数:

filename "";

基于网卡引导时要加载的initial  boot file的文件名;

next-server  HOST;

要是一个tftp-servr,简单文件传输协议

   (2)tftp-server服务

            TFTPtrivialfile transfer protocol,简单文件传输协议服务器。基于UDP文件传输,一般该服务器仅用于PXE预引导加载环境。用于提供预引导加载文件pxelinux.0的读取。相关程序包:Server:tftp-serverClient: tftp,监听端口69/udp

           服务启动运行方式:

CentOS6:

# chkconfig tftp on

# service xinetd  restart

CentOS7:

# systemctl start  tftp.socket

   (3)syslinux

          提供适用于不同的操作系统的各种bootloader文件,支持DOSFATfilesystemsLinux ext2/ext3 filesystems(EXTLINUX) PXEnetwork boots(PXELINUX)ISO 9660 CD-ROMs (ISOLINUX);基于网卡引导的bootloader由其提供文件Wie/usr/share/syslinux/pxelinux.0

   (4) file server(yum repository)yum仓库

          基于网络引导加载文件的时候会根据脚本,引导到指定的路径加载yum仓库进行安装程序或者镜像文件,存储此yum仓库的位置称为file server。该file server可以通过http对外通过程序包或者镜像,实现引导之后的安装操作。

          file server可以creatrepo命令手动创建;可以直接复制或者挂载光盘的完整镜像作为通过程序包的文件存储源服务

 

 

 

二、DHCP服务器搭建

1.DHCP协议

    Dynamic Host Configuration Protocol动态主机配置协议局域网的网络协议,使用UDP协议工作

   (1)用途

          给内部网络或网络服务供应商自动分配IP地址给用户或者内部网络管理员作为对所有计算机作中央管理的手段

   (2)实现机制

            rarp:反向地址解析,实现MAC解析到分配IP

            lease(地址租约)机制:动态地址分配时候按照有效期分配IP地址,连续使用需要续租

   (3)C/S架构

             Server:需要配置一个静态地址,能够提供地址池(可用地址列表);监听67/UDP端口

             Client获取动态分配的地址,监听68/UDP端口

 

 2.DHCP交互工作流程

   (1) 常规获取过程

             DHCP获取的过程是通过广播方式进行。Client发出dhcp_discover发现报文,Server响应dhcp_offer报文;Client再次发出dhcp_request请求确认报文,Server作出dhcp_ack确认确认。

   (2) lease续租工作流程

              DHCP引入了lease租约概念,当达到可用时间50%进行续租(单波通信),发出dhcp_request报文。若DHCP服务器没响应,则在总时长限制75%87.5%等多次发起请求,DHCP服务器都未响应则主动放弃地址。若DHCP收到服务响应,则地址可使用时间延长到所设置时间的

   (3) DHCP服务端故障

         DHCP地址池发生该变无法请求到:dhcp会返回dhcp_nak拒绝;客户端会重新发出dhcp_discover发现报文请求分配地址

 

 3.dhcp- relay

       DHCP服务器工作生效范围:当前物理网络(局域网络)。当在两个局域网用一台DHCP服务器提供不同网段地址分配时候就要使用到dhcp relay(dhcp中继代理)概念。

  注意:

       1) 必须保证有本地网段的地址池,先为自己所在的局域网段提供地址

       2) 路由器:单播server通信,广播client;路由器将自己当做DHCP服务器的代理

 

 4.DHCP服务器安装配置

  (1)RPM包安装dhcp程序

           [root@localhost~]# yum install -y dhcp

     注意:

      [root@localhost ~]# rpm -ql dhcp         # 查看dhcp程序生成的相关文件

       1) dhcp程序提供三个服务相关,不能同时启动,分别对应ipv4地址分配、ipv6地址分配、dhcrelay代理中继服务

wKioL1bNiVWCrWvBAAA-XeMMveE875.png

       2) dhcpd.servicedhcp6.service对应的地址信息库,,用于动态IP分配历史记录

wKioL1bNiVaAZWhlAAAkIR4pLoM422.png

 (2) 配置文件

        /etc/dhcp/dhcpd.confiPv4_dhcp服务的主配置文件位置,提供了模板配置/usr/share/doc/dhcp*/dhcpd.conf.example,需要自己复制模板文件覆盖当前文件,在修改配置信息。

[root@localhost ~]# cp/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example   /etc/dhcp/dhcpd.conf

     1)基本配置

option  domain-name

客户端基于非FQDN,会自动补充搜索域

option  domain-name-server

DNS主机地址

default-lease-time  600

默认租约时长,默认单位秒

max-lease-time  7200

最大租约时长,默认单位秒

log-facility  local7

日志信息记录方式,local7指向/etc/rsyslong.conf中自定义的local7位置/var/log/boot.log

     2)地址池配置

subnet

定义网络

range   START END

定义地址分配池范围(起始地址、结束地址),其网段范围必须属于subnet配置的网络范围

option routers

配置网关主机地址

        实例:

 subnet 10.254.239.0 netmask 255.255.255.224{

     range 10.254.239.10 10.254.239.20;

    option routers rtr-239-0-1.example.org,rtr-239-0-2.example.org;

}

     扩展:pxe预引导加载相关配置

filename # ;

基于网络引导是加载的initial  boot file的文件名,网络引导系统加载文件

next-server  HOST;

initial boot  file所在的服务主机地址;

     3)host 配置主机固定分配IP

  host NAME {   }

hardware  ethernet #;

指明网卡的MAC地址

fixed-address  #;

指明固定分配的IP地址,该地址要在网络中,但不能再地址池中防止地址冲突

实例:

host  xuding  {

       hardware ethernet 0:0:c0:5d:bd:95;     

       fixed-address 172.16.210.1;

}

      4) class分类是识别制定地址池

 (3)手动测试DHCP获取命令:dhclient

       dhclient -d:强制显示在前台,获得地址分配过程

wKiom1bNiO7S_RYGAABLr-KjNKM657.png

                                                                                                                        

 

三、基于PXE自动安装系统服务配置(CentOS 7)

说明:演示搭建环境为CentOS 7系统,自动化安装的系统镜像为CentOS 7

  1.安装相关所需程序包

       [root@localhost ~]# yuminstall httpd

       [root@localhost ~]# yuminstall dhcp

       [root@localhost ~]# yuminstallsyslinux

       [root@localhost ~]# yuminstall tftp-sserver

 

  2.准备file server(yumrepository)yum仓库

     此处提供的yum仓库是通过httpweb服务对Client客户端通过程序包

        [root@localhost ~]# mkdir /var/www/html/centos7      # 创建安装程序文件放置位置

        [root@localhost ~]# mount –binf/media/cdrom /var/www/html/centos7      # 通过目录绑定的方式挂载光盘镜像

        [root@localhost ~]# cp  /tmp/centos7.cfg  /var/www/html/centos7   # 将配置好的kickstart文件放置到指定位置

   注意:

        1) yum仓库可以将光盘内的镜像全部复制到/var/www/html/centos7目录下,也可以自己creatrepo创建yum的依赖关系

        2) kickstart文件:anaconda(CentOS系列基于内核启动来实现定制自动安装操作)的配置文件,其可以通过修改/root目录下模板样式anaconda-ks.cfg来实现定制。在此配置文件中需要指明"url –url=http://172.16.0.1/"和需要安装的程序组。

 

  3.配置DHCP

       /etc/dhcp/dhcpd.conf文件中添加如下配置: 

option domain-name"xuding.com";

option domain-anem-servers172.16.0.1;

default-lease-time 3600;

max-lease-time 7200;                                                                                                                                                                               

subnet  172.16.0.0 netmask  255.255.0.0 {

range 172.16.200.101  172.16.200.110;

option route 17216.100.6;

filename "pxelinux.0";

next-server 172.16.100.6;

}

    注意:

option domain-anem-servers的范围大于option route所配置的路由范围,会先找option route 所提供的路由

 

  4.提供预引导加载等相关文件

       (1)syslinux程序包所提供的引导加载程序的库文件中的网络引导程序pxelinux.0复制到tftp对外提供服务的路

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

       (2) 将镜像文件中的部分文件复制到tftp服务提供使用

                 [root@localhost ~]# cp  /media/cdrom/images/pxelinux/{vmlinuz,initrd.img} /var/lib/tftpboot/

                 [root@localhost ~]#  cp   /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk}  /var/lib/tftpboot/

 

 5.tftp服务下创建程序文件提供pxelinux.cfg的配置

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

       [root@localhost ~]#  vim   /var/lib/tftpboot/pxelinux.cfg/default

 配置文件内容类似如下:

 menu.c32提供文本图形化选择界面,显示提手时间、超时时长、全局菜单、单个菜单、指明加载的内核、安装时候yum仓库位置、自动安装时所使用的ks配置

default menu.c32

  prompt 5

  timeout 30

 MENU TITLE  CentOS 7 PXE Menu

 

  LABEL linux

  MENU LABELInstall CentOS 7 x86_64

  KERNEL vmlinuz

  APPENDinitrd=initrd.img inst.repo=http://172.16.100.6/centos7ks=http://172.16.100.6/centos7.cfg

 

  6.启动各服务

[root@localhost ~]# systemctl start httpd.service

[root@localhost ~]# systemctl start dhcpd.service

[root@localhost ~]# systemctl start  tftp.socket

  此时,基于PXE的网络引导已经完成,可以为与该主机在同一网段内分配IP地址池内的IP,并进行自动化引导操作

 

注意:

  CentOS 6CentOS 7的配置有部分不同,参考如下:

cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

cp/media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/

cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}/var/lib/tftpboot/

mkdir/var/lib/tftpboot/pxelinux.cfg/

cp/media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

Nicolo:http://xuding.blog.51cto.com/4890434/1744751

原创文章,作者:Nicolo,如若转载,请注明出处:http://www.178linux.com/15731

(4)
上一篇 2016-04-30 23:13
下一篇 2016-04-30 23:14

相关推荐

  • 马哥教育网络班21期+第17周课程练习

    1、结合图形描述LVS的工作原理; lvs是基于内核的虚拟主机用来做四层的负载均衡,工作在netfilter框架的INPUT链上,有四种模式,上图为lvs-nat lvs-nat:有DNAT功能,支持端口映射,请求报文和响应报文都需要经过Director 请求过程:cip–>vip,Director,cip–>rip 响应…

    Linux干货 2016-12-26
  • 从Linux小白到大牛——与狼共舞的日子2

    马哥教育网络班21期+第2周课程练习 1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp:copy,复制文件 cp SRC DEST   SRC为文件     如果目录不存在:新建DEST,并将SRC中内容填充至DEST中     如果目…

    Linux干货 2016-07-17
  • httpd服务——CentOS6

    Web Service 应用层:http,https 实现某类具体应用 传输层协议:TCP,UDP,SCTP IANA:          0-1023:从所周知的端口,永久的分配给固定应用使用,特权端口       &…

    Linux干货 2016-10-09
  • 复习-RAID原理详解

    一、RAID RAID:冗余磁盘阵列,将多个磁盘不同的方式组成阵列,作为单一磁盘使用;通过RAID,大幅提高了I/O能力、容错性。 二、RAID级别 不同的磁盘阵列组成模式,称为磁盘级别,不同的RAID级别可提供不同的I/O能力提升、磁盘可用率和容错性 1、RAID 0 条带卷 strip  用两块和两块以上磁盘组成,RAID控制器将数据平均切割成…

    Linux干货 2016-07-04
  • 我与Linux的第一次亲密接触

        作为一个新手,经过一周的学习,我对Linux目前有了些许的了解,从Linux的发展史中,开源共享精神深深的感染了我,也使得我对Linux的兴趣更加浓厚。对于一个一直翘计算机课的我来说,入门和基础是一项非常艰巨的任务,初期为了搭建学习的环境,也是费了不小的功夫,相信许多萌也对此有很大的感触,在这里,我来和大家分享一下如何去构建环境。…

    Linux干货 2017-03-26
  • Linux进程管理及作业管理

    进程管理 进程概念 Linux内核:抢占式多任务 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等 Process: 运行中的程序的一个副本,是被载入内存的一个指令集合 进程ID(Process ID,PID)号码被用来标记各个进程 UID、GID、和SELinux语境决定对文件系统的存取和访问权限 通常从执行进程的用户来继承 进程存…

    Linux干货 2017-05-08