美文网首页
PXE自动装机

PXE自动装机

作者: xhz的个人小屋 | 来源:发表于2018-01-19 14:42 被阅读0次

1 简介

首先让我简单介绍一下PXE技术

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP或MTFTP协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系统等。本次试验只进行 linux Centos的安装测试。
本文只适用于BIOS的LETF启动方式

2 PXE的运行流程

理论概述:

启动安装--要求pxe网卡和主板的支持

PXE不是一种安装方式,是一种引导的方式。pxe方式要求安装的计算机中必须包含一个 支持PXE 的网卡,且主板支持网络引导,PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。

PXE协议通过client来server上下载文件

PXE协议分为 client 和 server 端,PXE client 在网卡Rom中,

网上找了一张图,流程看着比较清晰,就拿来用了

image

安装流程

1,客户机从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP,并搜寻引导文件的位置

2,DHCP服务器返回分给客户机IP以及bootstrap文件的放置位置(该文件一般是放在一台TFTP服务器上)

  • 客户机向本网络中的TFTP服务器索取bootstrap文件,centos文件名称为pxelinux.0

  • 客户机取得bootstrap文件后之执行该文件

  • 根据bootstrap的执行结果,通过TFTP服务器加载内核和文件系统

  • 进入安装画面, 此时可以通过选择FTP,HTTP,NFS方式之一进行安装

为什么使用tftp传输系统文件

注:一方面tftp可以达到32M,对于系统内核,引导程序等小文件,足以达到

另一方面tftp使用udp协议69号端口,速度也快

足以满足要求速度也可以,何乐而不为

相关文件位置与内容:

dhcp配置文件/etc/dhcpd/dhcp.conf——ip管理与引导程序名称

tftp配置文件/etc/xinetd.d/tftp——tftp根目录,和上面的引导程序名称组成完整路径

引导程序读取的配置文件/tftpboot/pxelinux.cfg/default——启动内核其他

3 实验验证

环境准备

实验前最好关闭防火墙和selinux

完成实验一共需要

tftp dhcp http(或者NFS,ftp)服务

客户端:可获得IP地址

服务端系统Centos7

IP地址:172.16.10.62/24

配置PXE服务

1,DHCP服务配置安装

安装:

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

配置:


[root@localhost ~]# vim /etc/dhcp/dhcpd.conf

default-lease-time 600; #默认的租约时间

max-lease-time 7200;    #最大租约时间

allow booting;          #定义可以PXE方式启动

allow bootp;              #定义支持boottp

subnet 172.16.10.0 netmask 255.255.255.0 {

  range 172.16.10.100 172.16.10.120;  # 可分配的IP地址段

  option routers 172.16.10.62;           #指定的网关

**  next-server 172.16.10.62; #tftp server的ip**

**  filename "pxelinux.0"; #pxe boot需要的启动文件名, 相当于bootloader**

}

启动dhcp

[root@localhost ~]# service dhcpd start

2 tftp服务安装

安装

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

配置

service tftp

{

    socket_type            = dgram

    protocol                = udp

    wait                    = yes

    user                    = root

    server                  = /usr/sbin/in.tftpd

    server_args            = -s /var/lib/tftpboot

    disable                = no    #开机是否启动

    per_source              = 11

    cps                    = 100 2

    flags                  = IPv4

}

启动tftpd

由于tftp服务依赖于xinet.d所以

启动方式如下

[root@localhost ~]# systemctl start xinetd

查看端口确实开启了

[root@localhost ~]# lsof -i:69

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

xinetd 1002 root 5u IPv4 31021 0t0 UDP *:tftp

3,安装http服务

安装启动

[root@localhost ~]# yum install httpd -y
[root@localhost ~]# systemctl start httpd

将Centos7的镜像文件挂载至/var/www/html/centos7/

测试http可以支持访问就行了

4,准备PXE需要的一些文件

将内核文件和系统文件拷贝至tftp目下

cp /var/www/html/centos7/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/

添加引导配置文件pxelinux.0

yum install syslinux -y
cp -r /usr/share/syslinux/* /var/lib/tftpboot/

添加引导配置文件

PXE程序会根据Client的MAC地址依次匹配,最后没有才匹配default文件

touch /var/lib/tftpboot/pxelinux.cfg/default

default文件实例:

default ks

#超时时间

timeout 100 

label ks

  menu label ^Auto Install CentOS 7

  kernel vmlinuz

#指定kickstart自动安装文件路径

  append initrd=initrd.img inst.ks=http://172.16.10.62/ks.cfg quiet 

ks文件可以自己生成,也可以copy  ~下的anaconda-ks.cfg文件自己修改

kickstart文件实例:

#version=RHEL7

# System authorization information

auth --enableshadow --passalgo=sha512

# 指定使用安装介质,支持多种方式

url --url http://172.16.10.62/centos7

text

# Run the Setup Agent on first boot

firstboot --enable

ignoredisk --only-use=sda

# Keyboard layouts

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

# System language

lang zh_CN.UTF-8

#selinux

selinux --disabled

# Network information

#network  --bootproto=static --device=eno16777736 --ipv6=auto --activate

network  --hostname=localhost.localdomain

# Root password

# System timezone

timezone Asia/Shanghai --isUtc

# System bootloader configuration

bootloader --location=mbr --boot-drive=sda

autopart --type=lvm

# Partition clearing information

clearpart --all --initlabel --drives=sda

reboot

%packages

@compat-libraries

@core

@development

@base

vim

gcc-c++

gcc

lsof

net-tools

%end

安装过程截图

image image image

参考链接:

http://blog.51cto.com/st1sk/1680748

http://www.blogjava.net/qileilove/archive/2013/10/14/404942.html

http://blog.csdn.net/miss_acha/article/details/50373040

https://linux.cn/article-4902-2.html

相关文章

  • cobbler+pxe自动化装机&&ansible高可用

    (一).实现cobbler+pxe自动化装机 注: pxe和cobbler自动化安装需要上述dhcp、tftp、h...

  • cobbler+pxe自动化装机,ansible自动部署ngin

    1、实现cobbler+pxe自动化装机2、ansible实现主/备模式高可用 1、实现cobbler+pxe自动...

  • 第十二周

    1、配置chrony服务,实现服务器时间自动同步 2、实现cobbler+pxe自动化装机 PXE安装: 安装yu...

  • PXE自动装机

    1 简介 首先让我简单介绍一下PXE技术 PXE(preboot execute environment,预启动执...

  • 一文详解pxe+cobbler自动化装机

    1.pxe自动化装机 准备工作(重要!!!):1.一台pxe服务器(node2)用于,192.168.43.141...

  • PXE全自动部署

    centos7.4搭建pxe装机系统 1.1.1. PXE 简介 PXE是英特尔的芯片技术。 dhcp...

  • 马哥Linux第十二周

    Q1、配置chrony服务,实现服务器时间自动同步 Q2、实现cobbler+pxe自动化装机 客户端测试: 新建...

  • pxe装机

    安装时的流程 安装centos系统的流程和系统启动流程是有一些类似的, 我们以光盘安装为例来看一下安装的几个几段和...

  • cobbler+pxe实现自动化装机

    一、 PXE: Preboot Excution Environment预启动执行环境 ,由intel公司研发 p...

  • 实现cobbler+pxe自动化装机

    前言: pxe和cobbler自动化安装系统,都要依赖于dhcp、tftp、httpd服务的开启所以首先我们要了解...

网友评论

      本文标题:PXE自动装机

      本文链接:https://www.haomeiwen.com/subject/kyiooxtx.html