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

一、PXE:预引导加载环境

1.PXE

Preboot ExecuteEnvironment:支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial 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服务

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

服务启动运行方式:

CentOS6:

# chkconfig tftp on

# service xinetd  restart

CentOS7:

# systemctl start  tftp.socket

(3)syslinux包

提供适用于不同的操作系统的各种bootloader文件,支持DOSFATfilesystems、Linux 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程序

[[email protected]~]# yum install -y dhcp

注意:

[[email protected] ~]# rpm -ql dhcp         # 查看dhcp程序生成的相关文件

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

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

(2) 配置文件

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

[[email protected] ~]# 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:强制显示在前台,获得地址分配过程

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

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

1.安装相关所需程序包

[[email protected] ~]# yuminstall httpd

[[email protected] ~]# yuminstall dhcp

[[email protected] ~]# yuminstallsyslinux

[[email protected] ~]# yuminstall tftp-sserver

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

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

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

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

[[email protected] ~]# 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对外提供服务的路

[[email protected] ~]#   cp   /usr/share/syslinux/pxelinux.0   /var/lib/tftpboot/

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

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

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

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

[[email protected] ~]#  mkdir   /var/lib/tftpboot/pxelinux.cfg/

[[email protected] ~]#  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.启动各服务

[[email protected] ~]# systemctl start httpd.service

[[email protected] ~]# systemctl start dhcpd.service

[[email protected] ~]# systemctl start  tftp.socket

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

注意:

CentOS 6和CentOS 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

时间: 2024-11-07 11:18:54

PXE网络引导自动化安装系统详解的相关文章

利用DHCP,http,tftp,pxe实现纯自动化安装系统

一.实现原理所需要的服务简单介绍1.DHCP:动态主机配置协议,用于内部网络自动分配IP地址2.tfpt:简单的网络共享服务,类似于ftp3.pxe:支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统4.http:超文本传输协议,通过网络共享文本(这里也可以使用ftp服务)实现过程1.客户端(没有装系统的计算机)通过在局域网内寻找DHCP服务器2.DHCP服务器回应,发送IP地址给该客户端并且告诉该客户端下一步寻找哪一个服务器,也就是TFTP3.客户端向TFTP要BootL

PXE批量实现自动化安装系统

  一.简介 在学习的过程中大部分人都是使用手动安装操作系统,而在实际生产环境中,手动安装系统的方式显然不现实,因为服务器众多,所以可使用pxe(preboot excute environment)技术来批量安装操作系统,从而减少"人工智能".     二.实现原理 实验拓扑图: 原理:pxe装机重要依赖tftp服务器.dhcp服务器.repo仓库及其kickstart配置文件即可完成,安装系统时,客服端主机向dhcp服务器发起dhcp请求,获取一个IP地址后将去tftp服务器读取v

CentOS 6.5自动化运维之基于cobbler服务的自动化安装操作系统详解

一.Cobbler安装 前提:cobbler由epel源提供,故此需要事先配置指向epel的yum源方可进行类似下面的安装过程. # yum install -y epel-release # yum install -y cobbler cobbler-web pykickstart debmirror # service httpd start # service cobblerd start # ss -tuanlp | grep :25151 tcp LISTEN 0 5 127.0.0

如何利用PXE+kickstart实现批量安装系统

PXE网络快速自动安装系统,以下实验环境均在RedHat 7.2 配置PXE网络装机服务器,为了避免防火墙与selinux的干扰,改为信任以及宽松模式 1. 将防火墙状态设置为trusted 2.SELinux当前修改为permissive 3.SELinux永久状态修改为permissive 步骤一:构建DHCP服务,使客户端自动获取ip, 1. 服务器添加虚拟磁盘 2. 把光盘挂在在/mnt目录下 mount  /dev/cdrom  /mnt/ 3.  由于该服务器上没有对应的yum仓库,

基于PXE网络启动的Linux系统自动化安装

基于PXE网络启动的Linux系统自动化安装 ??在实际工作中,传统纯手动安装操作系统的方式是有一定的局限性的,例如:现在大多数的服务器都不自带光驱,若要安装系统需要外接光驱插入光盘,整个安装过程中需要人工交互确认,手动设置每一个安装设置项,人必须要在机器前值守,时间大多花费在安装的等待过程中.假如有一大批服务器需要安装操作系统,这种传统手动的方式去逐台安装系统的方式,效率是极其低下的,而且由于需要人工交互式配置系统的安装设置项,无法确保每一台机器的系统安装配置都是完全一致的,即无法做到完全的统

PXE通过网络自动化安装系统

PXE通过网络自动化安装系统 要实现此功能要有三个基础的服务:DHCP服务,TFTP服务,HTTP服务HTTP:存放ks应答文件,安装源文件 DHCP:提供网络地址,提供TFTP服务器地址 TFTP: 存放启动文件,将网卡启动的内核文件,菜单文件存放于此 /var/lib/tftpboot 目录下 1 HTTP服务设置 安装HTTP,设置为开机启动,启动HTTP yum install httpd systemctl enable httpd systemctl start httpd 创建相应

PXE自动化安装系统

如何配置PXE: 一.dhcp安装 1.安装程序 2.修改配置脚本 配置dhcp服务 subnet ... netmask ... { ... next-server TFTP-SERVER-IP; filename "pxelinux.0"; } 提示脚本示例文档  cat /etc/dhcp/dhcpd.conf 二.tftp安装 1.程序安装 2.默认文件目录 3.基本演示操作 4.服务启动 三.提供PXE的工作环境 1.程序安装  yum install syslinux 2.

简单搭建PXE无人值守自动化安装系统

PXE环境概述 在公司进行批量部署服务器安装方法: Kickstart (PXE+DHCP+TFTP+HTTP) 或 Cobbler 批量装机软件介绍 Kickstart和Cobbler. ??Kickstart是一种无人值守的安装方式.它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件.如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数:如果没有找到合适的参数,便会弹出对话框让安装者手工填写

初步使用pxe自动化安装系统

1.安装dhcp服务 #yum install dhcpd 修改配置文件 /etc/dhcp/dhcpd.conf # This is a very basic subnet declaration. subnet 172.16.249.0 netmask 255.255.255.0 {  range 172.16.249.111 172.16.249.115;  option routers 172.16.0.1;  next-server 172.16.249.161;  filename