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模板文件。

bash 复制代码
[root@web01 ~]#vim /var/www/html/ks/ks99.cfg

# Run the Setup Agent on first boot

firstboot        --disable
ignoredisk --only-use=sda

# Partition clearing information

clearpart --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 stuff

volgroup vg0        --pesize=4096 pv.100

logvol  / --fstype=xfs --name=root   --vgname=vg0    --size=30720

logvol / home --fstype=xfs --name=home  --vgname=vg0  --size=2048

logvol swap --fstype swap  --name=swap  --vgname=vg0  --size=2048

#System timezone
timezone Asia/Shanghai --isUtc --nontp

# Root password

rootpw  --iscrypted $6$pypm5MfRxY.T9KoR$j3seuyMi hovt] iTiHHnKIhkgnzKbPPdFuEHa&MMcj osf9j hbxshs8akQceoZYzqpXJ0XHtVaC4Rsa5Hmc7Wo

user--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
END

yum 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脚本文件路径

相关推荐
Yana.nice6 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
2601_960567968 小时前
电商套图自动化效率的工程量化分析——从逐张生成到批量套图的架构演进
运维·架构·自动化
吳所畏惧9 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
DFT计算杂谈9 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
HiDev_10 小时前
【非标自动化】2、认识元器件(确定目标)
运维·自动化
Zhang~Ling10 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
DeeplyMind11 小时前
Linux 深入 per-VMA lock:Linux 缺页路径如何摆脱 mmap_lock
linux·per-vma lock
爱写代码的森11 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
中微极客11 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
久曲健的测试窝11 小时前
智能座舱自动化测试落地方案:数字仿真搭配实车实测,解决用例运维与场景失真难题
运维