PXE高效装机(附加脚本)

一、PXE网络装机
1.概述:PXE是intel公司开发的网络引导技术,C/S架构;
2.条件:
服务器端:

服务 作用
dhcp服务 为客户机提供网络参数,及指定pxe服务器地址
tftp-server服务 为客户端发送vmlinuz内核,initrd.img启动文件,pxelinux相关的文件
vsftpd服务 提供系统安装过程的ISO镜像中的软件及ks.cfg(应答文件)
kickstart服务 生成ks.cfg应答文件(涵盖了装系统中的每一步)

客户端:网卡支持PXE协议,且主板支持网络引导;
3.三个组件的关系

4.装机流程:
a、设置客户机的BIOS从PXE启动
b、客户机向网络中请求DHCP服务器获取动态IP
c、DHCP服务器下发IP、引导文件位置、TFTP服务器地址
d、客户机请求TFTP服务器获取引导文件
e、执行引导程序
f、请求TFTP服务器获取配置文件(pxelinux.cfg)
g、配置文件包含vmlinux、initrd.img、ks文件位置信息
h、根据配置文件,用户请求TFTP服务器获取linux内核(vmlinux)
i、请求TFTP服务器获取linux根文件系统(initrd.img)
j、客户机启动linux内核
k、内核挂载initrd.img,并执行挂载各种各样的模块
l、如果设置KS文件,装机步骤自动选择,否则需手动选择
m、装机完成
二.实验过程
(一)安装dhcp服务以及配置 /etc/dhcp/dhcpd.conf

[[email protected] network-scripts]# yum install dhcp -y  安装dhcp服务
[[email protected] network-scripts]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 复制为dhcp的配置文件
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[[email protected] network-scripts]# vim /etc/dhcp/dhcpd.conf  编辑dhcp配置文件
subnet 192.168.100.0 netmask 255.255.255.0 {
        range 192.168.100.20 192.168.100.340;
        option routers 192.168.100.100;
        option domain-name-servers 114.114.114.114;
        next-server 192.168.100.100;//指向tftp服务器地址
        filename "pxelinux.0";指定引导文件
}

(二)安装syslinux,tftp服务
1安装tftp,修改配置文件

[[email protected] network-scripts]# yum install tftp-server -y //安装tftp服务
[[email protected] network-scripts]#sed -i ‘/disable/s/yes/no/g‘ /etc/xinetd.d/tftp //修改配置文件

2.安装syslinux,并且把引导文件pxelinux.0复制到 /var/lib/tftpboot 目录下

[email protected] network-scripts]# yum install syslinux -y  //安装syslinux
[[email protected] network-scripts]#find /usr/share/syslinux/ -name "pxelinux.0" -exec cp -fp {} /var/lib/tftpboot  \;  //把pxelinux.0 文件复制到/var/lib/tftpboot 目录下

(三)安装vsftp服务(安装之前先将centos7镜像文件连接到光盘),将压缩内核和初始化文件复制到TFTP站点

[[email protected] tftpboot]# yum install vsftpd -y  //安装vsftp服务
        mkdir /var/ftp/centos7 //创建centos7目录
        mount /dev/sr0 /var/ftp/centos7  //把镜像挂载到centos7下面
        find /var/ftp/centos7/images/pxeboot -name "initrd.img" -exec cp -fp {} /var/lib/tftpboot  \;
        find /var/ftp/centos7/images/pxeboot -name "vmlinuz" -exec cp -fp {} /var/lib/tftpboot  \;

(四)编辑启动菜单default配置文件,关闭防火墙并开启三个服务

[[email protected] pxeboot]# cd /var/lib/tftpboot/   切换到tftp站点
[[email protected] tftpboot]# mkdir pxelinux.cfg   创建配置文件目录
[[email protected] tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[[email protected] tftpboot]# cd pxelinux.cfg/
[[email protected] pxelinux.cfg]# vim default  编辑default配置文件
[[email protected] pxelinux.cfg]# systemctl stop firewalld.service  关闭防火墙
[[email protected] pxelinux.cfg]# setenforce 0
[[email protected] pxelinux.cfg]# systemctl start dhcpd   启动三个服务
[[email protected] pxelinux.cfg]# systemctl start tftp
[[email protected] pxelinux.cfg]# systemctl start vsftpd

defualt配置文件如下

default auto
prompt 1

label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.100.100/centos7

label linux text
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.100.100/centos7

label linux rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7

三.脚本

#!/bin/bash
#---------------------------
#by jiji date:9-10         -
#pxe高效装机               -
#---------------------------
#配置dhcp配置文件
dhcpexp(){
         echo -e " subnet 192.168.100.0 netmask 255.255.255.0 {
       range 192.168.100.10 192.168.100.20;
        option routers 192.168.100.100;
        option domain-name-servers 114.114.114.114;
        next-server 192.168.100.100;
        filename \"pxelinux.0\" ;
        }" >>/etc/dhcp/dhcpd.conf
        }

#安装dhcp
rpm -q dhcp
if [ $? -eq 0 ];then
        dhcpexp
else
        yum -y install dhcp
        cp -fpr /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
        dhcpexp
fi
#安装tftp和修改配置文件
rpm -q tftp-server
if [ $? -ne 0 ];then
        yum -y install tftp-server
        sed -i ‘/disable/s/yes/no/g‘ /etc/xinetd.d/tftp
else
        sed -i ‘/disable/s/yes/no/g‘ /etc/xinetd.d/tftp
fi

#安装syslinux
rpm -q syslinux
if [ $? -ne 0 ];then
        find /usr/share/syslinux/ -name "pxelinux.0" -exec cp -fp {} /var/lib/tftpboot  \;

else
        yum -y install syslinux
        find /usr/share/syslinux/ -name "pxelinux.0" -exec cp -fp {} /var/lib/tftpboot  \;
fi

$安装ftp
rpm -q vsftpd
if [ $? -ne 0 ];then
        yum -y install vsftpd
        mkdir /var/ftp/centos7
        mount /dev/sr0 /var/ftp/centos7
        find /var/ftp/centos7/images/pxeboot -name "initrd.img" -exec cp -fp {} /var/lib/tftpboot  \;
        find /var/ftp/centos7/images/pxeboot -name "vmlinuz" -exec cp -fp {} /var/lib/tftpboot  \;
else
        mkdir /var/ftp/centos7
        mount /dev/sr0 /var/ftp/centos7
        find /var/ftp/centos7/images/pxeboot -name "initrd.img" -exec cp -fp {} /var/lib/tftpboot  \;
        find /var/ftp/centos7/images/pxeboot -name "vmlinuz" -exec cp -fp {} /var/lib/tftpboot  \;
fi

#配置编辑default启动菜单
mkdir /var/lib/tftpboot/pxelinux.cfg
cat>/var/lib/tftpboot/pxelinux.cfg/default <<-EOF
default auto
prompt 1

label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.100.100/centos7

label linux text
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.100.100/centos7

label linux rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
EOF

#关闭防火墙启动服务
systemctl stop firewalld.service
setenforce 0
systemctl start dhcpd
systemctl restart dhcpd
systemctl start tftp
systemctl restart tftp
systemctl start vsftpd
systemctl restart vsftpd

原文地址:https://blog.51cto.com/14449563/2439739

时间: 2024-10-13 00:32:28

PXE高效装机(附加脚本)的相关文章

详解CentOS 7中PXE高效批量网络装机与kickstart无人值守技术

PXE高效批量网络装机 服务器的批量部署 规模化:同时装配多台服务器 自动化:安装系统.配置各种服务 远程实现:不需要光盘.U盘等安装介质 关于PXE网络 PXE 预启动执行环境,在操作系统之前运行 可用于远程安装,构建无盘工作站 服务端 运行DHCP服务,用来分配地址.定位引导程序 DHCP 自动分配IP地址 定位引导文件 运行TFTP服务器,提供引导程序下载 TFTP 简单文件传输协议 使用UDP协议 端口号69号 优点:高效率 缺点:容量小 用于存放:引导程序pxelinux.0(sysl

PXE高效批量网络装机

在大规模的Linux应用环境中,利用传统的光驱.U盘安装操作系统方式过于缓慢,如web群集,分布式计算等,需要为数十乃至上百台服务器裸机快速安装系统,这里就需要用到PXE网络装机以及实现无人值守自动安装. 1.安装所需服务 yum install tftp-server -y // tftp服务提供压缩内核和系统引导程序 vi /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user

CentOS7中PXE网络装机并且实现无人值守批量装机(装机过程全程无需动手)

----------------------基本概述---------------------- PXE是由Inter公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网路从远程服务器下载引导镜像,并加载安装文件或者整个操作系统 ---------安装PXE批量装机所需要的服务--------- DHCP+TFTP+DHTP ---------安装PXE所需要的文件-------------- 引导程序pxelinux.0压缩内核vmlinuz系统初始化文件initrd

自动化无人值守网络装机(PXE网络装机)

自动化无人值守网络装机(PXE网络装机) 在IP地址为192.168.4.5主机上配置pxe机,实现对客户端的自动化网络装机,并在给客户端装机后自动分配IP地址.主机名,并自动创建一个管理员的账户:admin和对应密码:123456. 在192.168.4.5主机上配置: [[email protected]桌面]# mkdir  /nfsdir [[email protected]/]# mount  /dev/cdrom  /nfsdir //光盘挂载目录,也可是其他目录,但要和生成ks文件

linux dhcp搭建及pxe无人值守装机

DHCP动态主机配置协议:由IETF组织制定,用来简化主机ip地址分配管理可以自动分配的入网参数ip地址/子网掩码/广播地址默认网关地址DNS服务器地址 ------------------------------------------DHCP四次会话请求:DHCP DISCOVER提供:DHCP OFFER选择:DHCP ORQUEST确认:DHCP ACK DHCP主要概念租期:允许客户机租用ip地址的时间期限,单位为秒作用域:分配给客户机的ip地址所在的网段地址池:用来动态分配ip地址的

PXE自动装机

PXE基础装机环境 1.1 问题 本例要求为后续的PXE服务器构建提供RHEL7软件仓库,完成下列任务: 在CentOS真机部署Web目录/var/www/html/rh7dvd 挂载RHEL7光盘镜像文件到该目录 访问 http://192.168.4.254/rhel7/ 测试,确保可用 1.2 方案 PXE网络装机的整体思路 -- 装机条件准备: 准备RHEL7安装源(HTTP方式YUM库) 启用DHCP服务 PXE网络装机的整体思路 -- PXE引导配置: 启用TFTP服务,提供装机用的

PXE基础装机环境

TopNSD SERVICES DAY04 案例1:PXE基础装机环境 案例2:配置并验证DHCP服务 案例3:配置PXE引导 案例4:验证PXE网络装机 案例5:PXE+kickstart自动装机 1 案例1:PXE基础装机环境1.1 问题 本例要求为后续的PXE服务器构建提供RHEL7软件仓库,完成下列任务: 在CentOS真机部署Web目录/var/www/html/rh7dvd 挂载RHEL7光盘镜像文件到该目录 访问 http://192.168.4.254/rhel7/ 测试,确保可

PXE 网络装机——实现无人值守批量装机

PXE 网络装机--实现无人值守批量装机 -------------------------安装PXE批量装机需要的服务------------------------- DHCP + TFTP + FTP - DHCP:自动分配IP地址给客户机,让客户可以和PXE服务器胡同TFTP:存放安装系统的引导文件,加载速度快(理由是因为引导文件小,需要的是高效操作)FTP:存放系统文件,容量大 (TCP协议,系统文件需要的是安全稳定的传输) -----------------------------安

PXE自动装机。

PXE自动装机 因为自动装机没有IP地址需要使DHCP分发一个IP地址 TFTP就是FTP的一个变种 PXE自动装机需要桌面模式 假如不是桌面模式安装的PXE需要安装桌面模式软件包 yum groupinstall "Desktop" PXE搭建流程 准备CentOS6安装源 mount /dev/sr0 /media/cdrom mkdir -p /var/ftp/centos6 cd /var/ftp/centos6 cp -rp /media/cdrom/* . 安装TFTP服务