首页 > 其他分享 >PXE 高效批量网络装机

PXE 高效批量网络装机

时间:2023-06-12 19:45:42浏览次数:49  
标签:批量 cfg 192.168 PXE 装机 var tftp root localhost

目录

一、PXE 批量部署

1. 概述

PXE:

预启动执行环境,在操作系统之前运行

服务端:

运行DHCP服务,用来分配地址、定位引导程序

运行TFTP服务,提供引导程序下载(tftp:小文本传输协议,提供配置文件下载)

客户端:

网卡支持PXE协议

主板支持网络引导

2. 优点

规模化:同时装配多台服务器

自动化:安装系统、配置各种服务

远程实现:不需要光盘、U盘等安装介质

3. 装机流程

(1)客户机的网卡查找dhcp服务,获取ip地址和时间

(2)dhcp服务给客户机分配ip地址和引导程序的地址,通过offer报文把tftp服务器的地址发给客户机

(3)tftp服务器把引导文件(pxelinux)传给客户机

(4)客户机把引导程序加载到内存中

(5)引导程序在tftp服务器中查找配置文件,服务器把配置文件传给客户机(配置文件用ftp获取)

(6)服务器通过vsftp服务和客户端互传文件,客户端获得系统的镜像文件

4. pxe装机需要四大文件

(1)首先需要几个服务:

dhcp:给客户机分配ip地址

xinetd:网络守护进程服务程序,又叫超级服务器,管理轻量级的网络服务,配合tftp

tftp:基于udp协议,简单文件传输,传一些小文件,端口 69

vsftp:用于传输大文件,例如镜像文件

syslinux: 引导加载程序,用来简化首次安装linux的时间,建立维护其他特殊或其他特殊用户的启动盘

(2)四大文件

在 /var/lib/tftpboot/ 目录下

vmlinuz

内核文件(从光盘来的,ioslinux目录下)

initrd.img

系统启动镜像镜像文件(光盘,isolinux)

pxelinux.0

引导文件(syslinux)

default

引导程序的配置文件(需要手写,在光盘ioslinux目录下的isolinux.cfg目录下)

二、部署PXE远程安装服务

此台服务器网卡配置:

ip:192.168.23.5

netmask:255.255.255.0

gateway:192.168.23.2

1. 关闭防火墙

# 关闭防火墙和selinux安全机制
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

2. 安装配置 tftp xinetd服务

# 本地yum源安装
[root@localhost ~]# yum -y install tftp-server xinetd

# 配置tftp服务配置文件
[root@localhost ~]# vim /etc/xinetd.d/tftp

service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = no
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

# 重启并设置tftp、xinetd服务开机自启
[root@localhost ~]# systemctl restart tftp
[root@localhost ~]# systemctl enable tftp

[root@localhost ~]# systemctl restart xinetd
[root@localhost ~]# systemctl enable xinetd


3. 安装配置 dhcp服务

# 本地yum源安装dhcp服务
[root@localhost ~]# yum -y install dhcp

# 配置dhcpd服务配置文件
[root@localhost ~]# cp -af /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf 
	
	ddns-update-style none;
	next-server 192.168.23.5;
	filename "pxelinux.0"

	subnet 192.168.23.0 netmask 255.255.255.0 {
  	range 192.168.23.100 192.168.23.200;
  	option routers 192.168.23.5;
	}

# 重启并设置dhcpd服务开机自启
[root@localhost ~]# systemctl restart dhcpd
[root@localhost ~]# systemctl enable dhcpd


4. 安装配置 vsftpd服务

# 本地yum源安装vsftpd服务
[root@localhost ~]# yum -y install vsftpd

# 配置vsftpd服务
# 创建需要传给客户机的镜像文件
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# df -h
	# 镜像文件挂载位置
	/dev/sr0                 4.3G  4.3G     0  100% /mnt/cdrom

[root@localhost ~]# cp -rf /mnt/cdrom/* /var/ftp/centos7/

# 重启和设置开机自启vsftpd服务
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# systemctl enable vsftpd

5. 配置四大文件

四大文件:

vmlinuz initrd.img pxelinux.0 default

(1)配置 vmlinuz 和 initrd.img 文件

# 将已挂载的镜像文件中的vmlinuz和initerd.img文件复制进tftp的根目录
[root@localhost ~]# cd /mnt/cdrom/images/pxeboot/
[root@localhost pxeboot]# cp vmlinuz /var/lib/tftpboot/
[root@localhost pxeboot]# cp initrd.img /var/lib/tftpboot/

(2)配置pxelinux.0 引导程序文件

# 本地yum源安装syslinux软件包
[root@localhost ~]# yum -y install syslinux

# 将pxe引导文件复制进tftp的根目录
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

(3)配置default 启动菜单文件

# 创建并配置default文件(默认的启动菜单文件在tftp根目录下的pxelinux.cfg子目录下)
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
	default auto
	prompt 0

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

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

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

(4)查看四大文件

[root@localhost ~]# ls /var/lib/tftpboot/

6. 检验PXE是否部署成功

(1)创建裸机

![](https://gitee.com/m-zhuang69/m_blog_images/raw/master/images/2023.05.24/10. 创建test1虚拟机1.png) ![](https://gitee.com/m-zhuang69/m_blog_images/raw/master/images/2023.05.24/11. 创建test1虚拟机2.png)

(2)开启主机检验

三、实现Kickstart无人值守安装

通过PXE部署可以自动安装系统,但是到配置操作系统时却需要手动配置,为使完全真正的实现自动安装操作系统,可以使用Kickstart无人值守工具进行安装。

服务器配置:

网卡:

ip:192.168.23.5

netmask:255.255.255.0

gateway:192.168.23.2

以配置PXE部署

1. 安装Kickstart工具

# 本地yum源安装kickstart工具
[root@localhost ~]# yum -y install system-config-kickstart

2. 配置Kickstart工具

(1)先进入服务器的图形化界面进行配置

(2)进入命令界面配置

[root@localhost ~]# ls
anaconda-ks.cfg       ks.cfg 		initial-setup-ks.cfg

# 将ks.cfg文件复制到 /var/ftp/目录下
[root@localhost ~]# cp /root/ks.cfg /var/ftp/ks.cfg

# 将模板文件中从 %packages到 %end的内容复制到 /var/ftp/ks.cfg
[root@localhost ~]# cat /root/anaconda-ks.cfg
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony

%end

# 粘贴
[root@localhost ~]# vim /var/ftp/ks.cfg 
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony

%end

# 进入引导程序配置文件/var/lib/tftpboot/pxelinux.cfg/default 添加ks引导参数
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 

	label auto
	kernel vmlinuz
	append initrd=initrd.img method=ftp://192.168.23.5/centos7 ks=ftp://192.168.23.5/ks.cfg

(3)检验Kickstart无人值守是否安装成功

重启客户机test1

标签:批量,cfg,192.168,PXE,装机,var,tftp,root,localhost
From: https://www.cnblogs.com/m-zhuang/p/17475947.html

相关文章

  • 关于mybaits批量更新和批量插入报错问题
    今天在做项目的时候遇到了一个棘手的问题,在执行批量更新的时候报如下图这个错误 代码如下 这是mybatis很常规的批量更新操作的写法,而且把报错日志中的sql拿出来后在数据库执行也能正常的执行很纳闷,这是因为啥呢?网上查阅资料,大部分都是说,sql里面有数据库的关键字,让加``这个......
  • 【vim】批量替换文件内容
    一、场景  由于测试时,需要替换配置,手动替换很慢,所以就需要批量替换。 二、操作方法打开需要修改的文件进入命令模式,输入:%s/要替换的内容/替换后的内容/g,其中%表示对整个文件进行替换,g表示全局替换。按下回车键,Vim会自动替换所有匹配的内容。你也可以使用正则表......
  • 使用chatgpt根据openAI API key自定义关键词批量写文章
    使用chatgpt根据openAIAPIkey自定义关键词批量写文章使用方法:1.api.txt里放openaikey,每行一个,程序会随机使用一个KEY2.key.txt放关键词,根据关键词写文章。3.写好的文章会自动保存到wenzhang文件夹下。 写文章速度以来openaikey及本身网络速度。本视频录制采用1核1G机器运......
  • 如何批量管理服务器,云服务器的方法
     远程桌面管理是微软公司为了便于网络管理员管理维护服务器推出的一项服务。 网络管理员远程桌面连接器连接到网络任意一台开启了远程桌面控制功能的计算机上,就像是自己操作该计算机一样,运行程序,维护数据库等。 那么如何批量管理我们的多台服务器呢?下面向大家介绍一款远程......
  • postgresql/lightdb批量导入导出数据系列copy/ltuldr/ltldr/lt_bulkload及最佳实践推
    文件位于服务器上,这就限制了使用范围。为此,对于导出,lightdb提供了高性能导出版本ltuldr。对于导入,lightdb在23.1之前提供lt_bulkload,见下文;从23.1开始,支持和oraclesql*loader对应的ltldr。copy可用于快速导入和导出数据,主要用途如下:TheCOPYcommandmovesdatabetweenPostg......
  • 免费/多平台/不限次数/短视频除水印工具【支持多平台/不限次数/不限时间/批量操作/支
    一.前言本文来源:猿说AI >> 软件工具 >> 去水印二.简介1.支持操作系统高清无痕一键去除操作简单,支持安卓/苹果/Win/Mac(免费/多平台/不限次数/短视频除水印工具)2.支持平台抖音,火山小视频,全民小视频,美拍小视频,微视,皮皮虾,皮皮搞笑,陌陌,翠视频,要马拉雅,懒人......
  • 使用Python批量修改PPTX文件中文本框格式
    问题描述:最近正在整理Python教材的配套PPT,原来的PPT是4:3的,考虑到现在很多屏幕都是宽屏的,于是打算重新整理一下。对于正常的幻灯片,直接在“页面设置”中修改一下就可以,但是有一章PPT由于反复修改了多次,并且其中有些格式不规范,导致转换成16:9之后有些乱,如图所示:转换之后存在两个大问......
  • Python+pywin32批量转换Word文件为PDF文件
    代码功能:把当前文件夹中多个Word文件批量转换为PDF文件技术原理:代码实际上是调用了Word的“导出”功能,模拟了手工转换的操作并实现了自动化,要求已正确安装Python扩展库pywin32和Office2007以上版本。......
  • Python批量导入Excel文件中的不重复数据到SQLite数据库
    自从2015年开始,为了上课方便,我编写了一个课堂管理系统并陆续增加了很多功能,已连续使用7个学期,在使用过程中也经常修补和完善其中一些细节。这个软件也是《Python可以这样学》最后一章的完整案例,涉及tkinter、数据库、多线程、Word文件操作、Excel文件操作、进程管理、二进制序列化......
  • 第二十九节:批量插入框架[Zack.EFCore.Batch]和EFCore7.x自带的批量删除、更新
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......