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

相关推荐
kebidaixu4 小时前
BCU 平台 RS485 驱动适配:从 THVD1406 到 ISO3082
linux
杨浦老苏5 小时前
家庭实验室监控仪表盘HomeLab-Monitor
运维·docker·监控·群晖
回忆2012初秋5 小时前
【Nginx】原理、配置与运维实战(2)
运维·nginx·策略模式
Urbano6 小时前
工装外套全制作流程、工序痛点及自动化设备升级方案
运维·自动化
映翰通朱工6 小时前
工业4G网关无公网IP远程运维实战(内网终端异地访问方案)
运维·服务器·网络·安全·智能路由器
洪晓露7 小时前
将 rke2 集群证书延长至 10 年
运维·服务器·数据库
谢平康7 小时前
解决用 rm 报bash: /usr/bin/rm: Argument list too long错
linux·运维·运维开发
IP老炮不瞎唠7 小时前
Python 价格监控如何实现?思路与实用方法分享
运维·服务器·网络
GIS数据转换器7 小时前
城市排水生命线安全运行监测平台深度解析
java·运维·人工智能·python·安全·数据挖掘·无人机
dog2508 小时前
网络长尾延时的重尾本质
开发语言·网络·php