首页 > 其他分享 >PXE高效远程部署

PXE高效远程部署

时间:2024-06-12 19:00:47浏览次数:12  
标签:高效 cfg ks var 根目录 安装 远程 PXE

PXE概述

        PXE 的全称是preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统

PXE批量部署优点

  1. 规模化:同时装配多台服务器
  2. 自动化:安装系统,配置各种服务
  3. 远程实现:不需要光盘、U盘等安装介质

环境准备

        一台Linux服务器

IP地址:192.168.221.131

        关闭防火墙和selinux

systemctl stop firewalld            #关闭防火墙
    
setenforce 0                        #关闭selinux

        安装FTP服务,准备CentOS7安装源

yum -y install vsftpd        #安装FTP服务

mkdir /var/ftp/CentOS7       #在FTP根目录创建文件,存放CentOS7安装源

mount /dev/cdrom  /var/ftp/CentOS7/    #将CentOS7光盘挂载到这个目录

systemctl start vsftpd       #启动FTP服务

systemctl enable vsftpd      #设置开机自启动

        安装TFTP服务

       TFTP(Trivial File Transfer Protocol)是一种简单的文件传输协议,它主要用于在客户机与服务器之间进行小文件的传输1。TFTP基于UDP协议实现,因此不具备通常FTP的许多功能

yum -y install tftp-server        #安装TFTP服务
vi /etc/xinetd.d/tftp             #编辑配置文件,将disable的值改为no
##################################################################################
service tftp
{
        socket_type             = dgram            #表示这个服务使用数据报套接字(UDP)
        protocol                = udp              #明确指定协议为 UDP
        wait                    = no               #表示可以多台客户机一起连接
        user                    = root             #服务将以 root 用户的身份运行
        server                  = /usr/sbin/in.tftpd     #这是 TFTP 服务器的路径
        server_args             = -s /var/lib/tftpboot   #指定了 TFTP 的根目录
        disable                 = no               #yes为禁用服务,启用需要改为no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4             #表示服务只接受Ipv4连接
}
##################################################################################
systemctl start tftp            #启动服务
systemctl enable tftp           #设置开机自启动

        准备Linux系统的内核文件和初始化镜像文件(Linux引导加载模块)

cd /var/ftp/CentOS7/images/pxeboot/        #这里已经把光盘挂载到这里了
cp vmlinuz    /var/lib/tftpboot/           #复制Linux系统的内核文件到TFTP根目录
cp initrd.img   /var/lib/tftpboot/         #复制初始化镜像文件(Linux引导加载模块)到TFTP根目录   

        安装DHCP服务

        我这里使用的是VMware虚拟机,所以要关闭自带的DHCP

        左上角编辑——>虚拟网络编辑器——>打开的窗口右下角更改设置——>点击VMnet8

yum -y install dhcp            #安装DHCP

#复制DHCP配置文件模板到DHCP配置文件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf

vi /etc/dhcp/dhcpd.conf        #编辑DHCP配置文件,在26行添加
##################################################################################
subnet 192.168.221.0 netmask 255.255.255.0 {        #网段和子网掩码
  range 192.168.221.20 192.168.221.30;             #设置IP地址分配范围
  option routers 192.168.221.2;                   #网关
  next-server 192.168.221.131;                   #指定服务器地址
  filename "pxelinux.0";                        #指定PXE引导程序文件名
}
##################################################################################

systemctl start dhcpd                #启动DHCP服务
systemctl enable dhcpd               #设置开机自启动

        安装PXE引导程序

yum -y install syslinux            #安装PXE引导程序

#把PXE引导程序路径复制到TFTP根目录下
cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/

        配置启动菜单文件

在PXE远程部署中,启动菜单配置文件默认放在TFTP根目录下的pxelinux.cfg子目录default文件中,这里使用ls命令会发现没有这个文件,所以需要我们自己创建

mkdir /var/lib/tftpboot/pxelinux.cfg            #创建pxelinux.cfg目录

#创建并编辑配置文件default
vi /var/lib/tftpboot/pxelinux.cfg/default    
##################################################################################
default auto                              #指定默认入口名称
prompt 1                                  #设置是否等待用户选择,“1”表示等待用户控制

label auto                                #图形安装(默认)引导入口,label 用来定义启动项
    kernel vmlinuz                        #kernel 和 append用来定义引导参数
    append initrd=initrd.img method=ftp://192.168.221.131/CentOS7

label linux text                          #文本安装引导入口
    kernel vmlinuz
    append text initrd=initrd.img method=ftp://192.168.221.131/CentOS7

label linux rescue                        #救援模式引导入口
    kernel vmlinuz
    append rescue initrd=initrd.img method=ftp://192.168.221.131/CentOS7
##################################################################################

            验证PXE远程部署是否成功

1.新建一台虚拟机,这里安装源是CentOS7,所以系统版本也要选择一致

2.新建完成后不用设置镜像,直接打开即可

3.在boot后输入auto或者直接按回车

4.出现这个页面即代表成功

安装Kictstart

        在配置PXE的虚拟机上安装kickstart,实现无人值守安装

yum -y install system-config-kickstart        #安装kickstart

system-config-kickstart                       #执行应用程序

        配置Kickstart

                       基本配置(时区使用默认或者自己选择)

                        安装方法

                        引导装载程序选项

                        分区信息

                        网络配置,添加ens33,网络类型DHCP

                        防火墙配置

                        安装后脚本

        这里是系统安装之后自动执行的Linux命令,根据需要自己填写,这里在根目录下创建一个文件看一下效果

                        保存,然后直接关闭窗口即可停止运行

        现在配置需要安装的软件包

        这时会发现多了一个ks.cfg的文件,然后配置安装脚本

        根据需要将anaconda-ks.cfg文件中的安装脚本复制到ks.cfg文件中,从%packages复制到%end,复制到ks.cfg文件末尾

        vi  anaconda-ks.cfg

        如果要最小化安装,复制下面内容即可

%packages
@^minimal
%end

        复制ks.cfg到FTP根目录,然后编辑启动菜单文件,添加ks引导参数

cp ks.cfg /var/ftp/                    #复制到FTP根目录

vi /var/lib/tftpboot/pxelinux.cfg/default        #编辑启动菜单文件

#添加ks引导参数
ks=ftp://192.168.221.131/ks.cfg

        然后重新启动那台新建的虚拟机就会自动开始安装了

        安装完成等待重启后,使用root用户登录,密码就是前面自己设置的密码,然后查看根目录下有一个test目录,就是刚刚写的安装后脚本执行的,我这里安装的是最小化

安装完成

标签:高效,cfg,ks,var,根目录,安装,远程,PXE
From: https://blog.csdn.net/qq_71559175/article/details/139625147

相关文章

  • 高效管理JMeter中的Cookies:测试工程师的全面指南
    前言在性能测试和自动化测试中,Cookie管理是一个至关重要的环节。ApacheJMeter提供了强大的Cookie管理器,帮助测试工程师在模拟用户会话和维持状态时更加方便。本指南将详细介绍如何在JMeter中配置和使用Cookie管理器。什么是Cookie及其重要性Cookie是一种由服务器发送并存储在......
  • 掌握JMeter参数化技巧:通过CSV文件实现高效登录压测
    前言在性能测试过程中,参数化是一种非常重要的技术,它允许我们使用多组不同的数据来模拟真实的用户行为。在本文中,我们将介绍如何通过ApacheJMeter读取CSV文件来实现登录压测参数化。创建CSV数据文件首先,创建一个包含测试用户登录信息的CSV文件。文件的格式应如下:user......
  • 苹果电脑怎么清除微信数据更高效?
    随着社交软件在日常生活中扮演的角色日益增大,微信等应用程序成为了我们沟通的重要工具。然而,长时间的使用会让这些应用程序积累大量的缓存数据和聊天记录,这不仅占用了宝贵的存储空间,而且有时候还会影响应用程序的运行效率。因此,定期清理这些不必要的数据变得尤为重要。本文将......
  • 12款高效开源Wiki系统推荐,打造团队知识管理利器
    文章介绍了12款好用的开源Wiki:PingCode、DokuWiki、MediaWiki、TikiWikiCMSGroupware、XWiki、BookStack、PMWiki、Foswiki、GitBook、Wiki.js、TiddlyWiki、Slite。以及对比了一款非开源但提供免费版本的Wiki工具,以供大家选择。在企业知识管理和团队协作中,Wiki系统因其强......
  • node远程服务器覆盖发布
    //安装对应依赖//[email protected]@4.0.0constpath=require("path");//引入scp2库constscpClient=require("scp2");//node模块-node.js命令行环境的loading效果和显示各种状态的图标constora=require("ora");//deploy.jsconstserverConfig=......
  • 图片翻译工具哪个好用?高效解决英文摘要翻译难题
    当毕业论文的英文摘要摆在面前时,很多学生都会感到头疼。不仅因为英文水平可能不够,而且如果完全依靠自己翻译摘要,很难对翻译结果放心,往往需要借助一些图片翻译工具来帮助。所以给大家安利5个平时用得较多,且评价较高的图片文字翻译工具,一起来get吧~安利『壹』.翻译相机▎应用......
  • ssh的远程连接(Linux篇)
    这里用到的虚拟机时centos7记得提前先把网络连接好,这里选择的是桥接模式1.启动ssh服务#在centos中启动sshd服务sudosystemctlstartsshd2.在windows的cmd命令界面内输入以下内容#sshcentos中的登录用户名@centos中的IP地址[email protected]然后cmd中会出现以......
  • 【Linux系列】掌握jq:高效处理JSON数据的命令行利器
    jq是一个强大的命令行工具,以其简洁的语法和丰富的功能,成为处理JSON数据的首选。本文旨在通过实战示例,让你迅速上手jq,掌握提取信息、美化输出和数据压缩的核心技能。一、安装jq:开启高效之旅首先,确保你的系统中安装了jq。在大多数Linux发行版中,可以通过包管理器安装,例如:#Ubun......
  • 大模型高效微调-LoRA原理详解和训练过程深入分析
    博客首发于我的知乎,详见:https://zhuanlan.zhihu.com/p/702629428一、LoRA原理LoRA(Low-RankAdaptationofLLMs),即LLMs的低秩适应,是参数高效微调最常用的方法。LoRA的本质就是用更少的训练参数来近似LLM全参数微调所得的增量参数,从而达到使用更少显存占用的高效微调。1.1问......
  • Linux速成技巧:通过Docker高效运行Swift
    Swift,作为苹果公司推出的一种强类型编程语言,以其高效、安全的特性在开发社区中广受欢迎。虽然Swift最初是为iOS和macOS开发设计的,但它的应用范围已经扩展到了Linux平台。在Linux环境中,通过Docker运行Swift成为了一种流行且高效的方式。本文将详细介绍如何在Linux环境中通过D......