PXE高效装机(附加脚本)
admin
2023-03-06 23:02:34
0

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

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

客户端:网卡支持PXE协议,且主板支持网络引导;
3.三个组件的关系
PXE高效装机(附加脚本)
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

[root@localhost network-scripts]# yum install dhcp -y  安装dhcp服务
[root@localhost network-scripts]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 复制为dhcp的配置文件
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@localhost 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,修改配置文件

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

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

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

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

[root@localhost 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配置文件,关闭防火墙并开启三个服务

[root@localhost pxeboot]# cd /var/lib/tftpboot/   切换到tftp站点
[root@localhost tftpboot]# mkdir pxelinux.cfg   创建配置文件目录
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default  编辑default配置文件
[root@localhost pxelinux.cfg]# systemctl stop firewalld.service  关闭防火墙
[root@localhost pxelinux.cfg]# setenforce 0
[root@localhost pxelinux.cfg]# systemctl start dhcpd   启动三个服务
[root@localhost pxelinux.cfg]# systemctl start tftp
[root@localhost 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

上一篇:OSPF高级配置

下一篇:K8S实践Ⅺ (Rook)

相关内容

热门资讯

特朗普:俄乌将实行为期3天的停... △特朗普(资料图)当地时间5月8日,美国总统特朗普在其社交媒体“真实社交”发文表示,在俄罗斯与乌克兰...
《星球大战》男主角发“特朗普躺... 据英国广播公司(BBC)5月8日报道,《星球大战》演员马克·哈米尔在社交平台发布一张AI生成的图片,...
产业园区招商政府委托媒介选型指... 导语:产业园区招商需兼顾资源整合效率与项目落地精准度,尤其在互联网招商模式下,平台流量、技术团队与资...
“无废城市”建设 | 为新材料... 4月26日,在常山生态工业园区的利安隆科润(浙江)新材料有限公司实验室里,企业品控部负责人、科技副总...
既能防晒又能听歌,还自带AI小... 春夏出门运动,你是不是也常常纠结:到底是戴帽子防晒,还是戴耳机听歌?两个都戴上,耳朵被压得生疼,帽檐...
伊朗警告过往船只远离美军舰艇:... 据美国有线电视新闻网(CNN)5月8日报道,一段录音显示,美伊在霍尔木兹海峡发生冲突后,伊朗革命卫队...
事关汉坦病毒,大西洋小岛牵动多... 5月6日,荷兰“洪迪厄斯”号邮轮停留在佛得角首都普拉亚的近海海域。新华社发(埃尔顿·蒙泰罗摄)发生汉...
上海尼为取得供栈收栈机专利,实... 国家知识产权局信息显示,上海尼为智能科技有限公司取得一项名为“一种供栈收栈机”的专利,授权公告号CN...
Win11终于不卡了!让CPU... 快科技5月8日消息,微软正针对Windows11系统用户体验进行深度优化,内部代号为Project ...
2026户外出行与通勤旗舰手机... 对于经常需要通勤、热爱户外活动的朋友来说,选择一款合适的手机至关重要。它需要满足单手操作的便捷性、坚...