当前位置: 首页 > news >正文

Linux云计算基础篇(24)-PXE批量安装和Kickstart工具

一、网络安装系统技术-PXE


PXE(Preboot Execution Environment):预启动执行环境。它允许系统通过网络上引导,并不需要物理存储介质
网络安装系统的优势:
1.远程实现安装操作系统,无需现场插入光盘等介质;

2.同步安装操作系统,所有的服务器支持同步安装;
3.自动化安装,根据已编写好的脚本配置文件,实现无人值守安装;

二、PXE批量安装的工作流程


PXE安装系统的必要条件:

待安装系统的机器必须支持网络引导启动


PXE网络引导安装系统所需的服务和软件:
DHCP服务:分配信息、指定tftp服务器地址

TFTP服务:提供网络引导程序、引导配置文件、内核文件和驱动程序的下载
HTTP服务提供网络源安装系统
pxelinux.0:提供网络引导程序
PXE安装流程:
客户机通过DHCP获取到IP地址
通过TFTP服务器下载所需的内核文件、引导程序、驱动程序

通过HTTP服务进行网络源安装系统

三、操作步骤

pxelinux.0概述
pxelinux.0是一个网络引导程序的文件
主要在PXE环境中为客户端提供引导功能
作用:为没有安装操作系统的机器提供引导功能
软件包:syslinux-nonlinuxsyslinux-tftpboot

1.部署 DHCP 流程
安装 DHCP Server

[root@web01 ~]# yum -y install dhcp-seiver

[root@web01 ~]# rpm -qc dhcp-server

[root@web01 ~]# cp /usr/share/doc/dhcp-server/dhcpd.conf.example    /etc/dhcp/dhcpd.conf

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

# option definitions common to all supported networks

option domain-name"example.com";

option domain-name-servers 192.168.6.254;

# A slightly different configuration for an internal subnet.

subnet 192.168.6.0 netmask 255.255.255.0 {

range 192.168.6.2 192.168.6.99;

option domain-name-servers 192.168.6.254;

option domain-name"example.com";

option routers 192.168.6.254;

option broadcast-address 192.168.6.255;

default-lease-time 600;

max-lease-time 7200;

}

[root@web01 ~]# systemctl enable dhepd.service  --now

[root@web01 ~]# systemctl status dhcpd.service

[root@web01 ~]# netstat -tulnp | grep  :67

[root@web01 ~]# systemctl disable firewalld.service    --now

2.部署tftp服务

[root@web01 ~]#yum -y install tftp-serve

[root@web01 ~]# systemctl enable tftp.socket   --now

[root@web01 ~]# netstat -tulnp l grep :69

[rooteweb01 ~]# cd /var/lib/tftpboot/

[root@web0l tftpboot]# ls

[root@web0l tftpboot]# pwd

var/lib/tftpboot

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

# option definitions common to all supported networks...

option domain-name "example.com";

option domain-name-servers 192.168.6.254;


default-lease-time 600;

max-lease-time 7200;

next-server 192.168.6.101;                        

filename"pxelinux.0"; 

                             

[root@web01 ~]# systemctl  restart  dhcpd.service

[root@web01 ~]# yum provides  "/pxelinux.0"

[root@web01 ~]# yum -y install syslinux-nonlinux

[root@web01 ~]# cp  /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/   #配置pxelinux.0引导文件到tftp目录

[root@web01 ~]# cd /var/www/html/pub/

[root@web01 ~]# pub]# cd  isolinux/

[root@web01  isolinux]# vim  isolinux.cfg

[root@web01 isolinux]# vim boot.msg

[root@web01 isolinux]# cp /var/www/html/pub/isolinux/*   /var/lib/tftpboot/  #将光盘中的isolinux目录下的所有文件都拷贝到/var/ib/tftpboot/下

[root@web01 isolinux]# cd /var/lib/tftpboot/

[root@web01 tftpboot]# mkdir pxelinux.cfg                    #创建/var/lib/tftpboot/pxelinux.cfg目录

[root@web01 tftpboot]# cp isolinux.cfg      pxelinux.cfg/default   #将光盘中的isolinux目录下的isolinux.cfg文件拷贝至目录且修改名称为defualt

[root@web01 pxelinux.cfg]# pxelinux.0 --->/var/lib/tftpboot/pxelinúx.cfg/default

[root@web01 pxelinux.cfg]# chmod 644 default
[root@web01 pxelinux.cfg]# vim defaulte
label linux
menu label ^AUTO Install CentOS Linux 8

        menu default
kernel ymlinuz
append initrd=initrdimg inst.stage2=http://192.168.6.101/pub  quiet

-----------------------------------------------------------------------------------------------------------

四、kickstart自动化脚本


kickstart脚本定义了系统安装过程中的配置选项,例如磁盘分区、用户密码设置、时区、网络配置、软件包等内容。系统安装的过程中读取此文件,来进行系统安装的配置,而不需要
人工干预
 优势:
自动化部署,根据脚本配置自动选择分区、网络配等内容
可重复性,一个kickstart脚本可以反复使用

        自定义配置,可以自定义软件包的安装、网络信息配置、用户管理等

kickstart脚本文件可通过system-config线ickstart工具获得,但从8版本开始已经不再提供此工具但是在/root目录下提供一个anaconda-ks.cfg模板文件。


[root@web01 ~]#vim /var/www/html/ks/ks99.cfg# Run the Setup Agent on first bootfirstboot        --disable
ignoredisk --only-use=sda# Partition clearing informationclearpart --all--initlabel# Disk partitioning information
part /boot --fstype="xfs"   --ondisk=sda   --size=500
part pv.100  --grow        --size=40000 --ondisk=sda#Very important to have the two part lines before the lvm stuffvolgroup vg0        --pesize=4096 pv.100logvol  / --fstype=xfs --name=root   --vgname=vg0    --size=30720logvol / home --fstype=xfs --name=home  --vgname=vg0  --size=2048logvol swap --fstype swap  --name=swap  --vgname=vg0  --size=2048#System timezone
timezone Asia/Shanghai --isUtc --nontp# Root passwordrootpw  --iscrypted $6$pypm5MfRxY.T9KoR$j3seuyMi hovt] iTiHHnKIhkgnzKbPPdFuEHa&MMcj osf9j hbxshs8akQceoZYzqpXJ0XHtVaC4Rsa5Hmc7Wouser--name=admin--password=$6$9NGMGMC88G9nVR8$h10RyWxe/of2VLt2EC/fYa0Kb5albSsvduiH1YPD.Xomm
lvZ5vxaUkYmaSWekItd0puEsfPQkVr4uTi2JuhKG1 --iscrypted --gecos="admin"%addon com_redhat kdump --enable --reserve-mb='auto'%end%anaconda
pwpolicy root  --minlen=6   --minquality=1   --notstrict  --nochanges  --notempty
pwpolicy user  --minlen=6   --minquality=1   --notstrict  --nochanges  --emptyok
pwpolicy luks  --minlen=6   --minquality=1   --notstrict  --nochanges  --notempty%end%post#!/bin/bash
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/Cent*/etc/yum.repos.d/bak
cat>/etc/yum.repos.d/dvd.repo << END
[BaseOS]
name=CentOS 8 BaseOS baseurl=http://192.168.6.101/pub/Base0S
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial[AppStreaml
name=Cent0S 8 AppStream
baseurl=http://192.168.6.101/pub/AppStream
enabled=1
gpgcheck-0
ENDyum clean all
yum -y install httpd
systemctl enable httpd --now%end

通过kickstart脚本实现无人值守安装系统
通过system-config-kickstart工具生成ks.cfg脚本文件

        无论是在哪个版本通过工具生成的kicstart脚本文件都是通用

        通过7版本的system-config-kickstart工具生成脚本文件


在其他版本上安装system-configeRickstart图形化工具
配置本地YUM仓库
安装软件包system-confg kickstart
执行命令system-cong-kickstart

通过kickstart脚本实现无人值守安装系统
打开system-config-kickstart图形化工具,如下图
安装此工具只是为了通过工具生成kickstart脚本文件

system-config-kickstart工具无法安装软件包?
·默认情况下,当选择《软件包选择》的时候,会显示没有软件包
产生原因:开发者定义需要设置yum仓库

解决办法:修改yum仓库的仓库名为development

------------------------------------------------------------------------------------------------------

system-config-kickstart工具生成脚本文件(一)
基本配置:
选择默认语言、键盘布局、时区选择
选择设置的root密码
选择目标系统的硬件架构、安装后是否重启。文本安装/图形化安装

-------------------------------------------------------------------------------------------------------

system-config-kickstart工具生成脚本文件(二)
安装方法:
选择执行全新安装
选择HTTP安装

-------------------------------------------------------------------------------------------------------

system-config-kickstart工具生成脚本文件(三)
安装引导程序:
选择安装新的引导装载程序

--------------------------------------------------------------------------------------------------------

system-config-kickstart工具生成脚本文件(四)
安装分区信息:
选择清楚引导记录、删除现存分区、初始化磁盘标签
自定义分区

-------------------------------------------------------------------------------------------------------

system-config-kickstart工具生成脚本文件(五)
·网络配置:
选择添加网络设置,指定网络获取方式

------------------------------------------------------------------------------------------------------

system-config-kickstart工具生成脚本文件(六)
验证:
有需求可自定义,这里保持默认

------------------------------------------------------------------------------------------------------

system-config-kickstart工具生成脚本文件(七)
·防火墙配置:
有需求可自定义,这里保持默认

------------------------------------------------------------------------------------------------------

system-config-kickstart工具生成脚本文件(八)
显示配置:
安装图形化桌面或者是字符页面

------------------------------------------------------------------------------------------------------

system-config-kickstart工具生成脚本文件(九)
·软件包选择
选择需要安装的软件包即可(不选择会出现无法安装的情况,选择任意的软件包安装即可)

-------------------------------------------------------------------------------------------------------

system-config-kickstart工具生成脚本文件(十)
预安装脚本:
在安装之前执行的脚本

-------------------------------------------------------------------------------------------------------

system-config-kickstart工具生成脚本文件(十一)
安装后脚本:
在安装系统后执行的脚

-------------------------------------------------------------------------------------------------------

system-config-kickstart工具生成脚本文件(十二)
保存文件:
点击左上角文件-保存

-------------------------------------------------------------------------------------------------------

system-config-kickstart工具生成脚本文件
将生成的kickstart脚本文件传输到PXE服务器

[root@localhost ~] # scp ks.cfg  root@192.168.68.150:/var/www/html/

PXE服务器修改引导文件,执行kickstart脚本文件
在PXE服务端修改启动的引导文件/var/lib/tftpboot/pxelinux.cfg/default
修改默认的倒计时时间为5秒

default vesamenu.c32

timeout 50

指定默认的标签位于第一项安装系统

指定kickstart脚本文件路径

http://www.dtcms.com/a/519791.html

相关文章:

  • 从零搭建 RAG 智能问答系统 6:Text2SQL 与工作流实现数据库查询
  • 创建Django项目
  • 注册个人网站的方法建设企业网站费用
  • 初识C语言13.自定义类型(联合体与枚举)
  • WebRTC入门指南:实时通信零基础
  • 深圳外贸营销型网站建设引擎搜索网站
  • Django 表单验证详解Form
  • k8s相关学习
  • 【2026计算机毕业设计】基于Django的社区婴幼儿预防接种系统
  • D030知识图谱科研文献论文推荐系统vue+django+Neo4j的知识图谱|论文本文相似度推荐|协同过滤
  • pg库、MySQL库和sqlite3基本操作
  • Android Studio新手开发第三十天
  • 住房建设部官方网站公示公告手机网站内容模块
  • 网站建设 数据库连接网站建设公司软件开
  • 深入理解栈与队列:核心特性与实战应用
  • 如何建一个免费的网站南昌做网站优化哪家好
  • 机器学习概念,算法原理及应用
  • Pytorch常用层总结
  • 【Deepseek OCR】重磅测试,mac环境下的体验【本人已经本地实验成功】
  • 轻量化(Lightweight)概念
  • [人工智能-大模型-58]:模型层技术 - 深度神经网络的本质是一个复杂的复合数学函数
  • 【小白笔记】将十进制数(Decimal)转换为二进制数(Binary),并计算二进制表示中“1”的个数
  • 长春怎么注册网站平台wordpress 视频列表
  • 【ReAcTable】面向表格问答任务的ReAct增强框架
  • Docker 部署 Elasticsearch 全流程手册
  • React 集成Redux数据状态管理 数据共享 全局共享
  • Docker与Nginx:现代Web部署的完美二重奏
  • 【JUnit实战3_08】第四章:从 JUnit 4 迁移到 JUnit 5
  • React 03
  • 前端基础之《React(2)—webpack简介-使用Babel》