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

PXE批量网络装机与Kickstart自动化安装工具

目录

一、系统装机的原理

1.1、系统装机方式

1.2、系统安装过程

 二、PXE批量网络装机

2.1、PXE实现原理

2.2、搭建PXE实际案例

2.2.1、安装必要软件

2.2.2、搭建DHCP服务器

2.2.3、搭建TFTP服务器

2.2.4、挂载镜像并拷贝引导文件到tftp服务启动引导文件夹下

2.2.5、编辑pxelinux.cfg配置文件

2.2.6、启动服务

2.2.7、验证PXE批量网络装机

三、kickstart自动化安装操作系统工具

3.1、安装kickstart

 3.2、基本配置

 3.3、安装方法

3.4、引导装载程序选择

3.5、分区信息

3.6、防火墙配置

3.7、显示配置

3.8、保存配置

3.9、编辑default配置文件

3.10、验证


一、系统装机的原理

1.1、系统装机方式
  • U盘装机:U盘作为启动介质,将操作系统镜像写入U盘,然后通过U盘启动计算机进行系统安装。
  • 光盘装机:将操作系统镜像刻录到光盘中,通过光驱启动计算机进行装机。
  • 网卡装机:从网络中的服务器上加载操作系统镜像来进行装机。
1.2、系统安装过程
  • 加载bootloader:它位于硬盘的引导扇区(MBR、GPT)中,负责初始化硬件并加载操作系统内核。
  • 加载启动安装菜单
  • 加载内核与initrd系统
  • 加载根系统
  • 运行anaconda的安装向导

 二、PXE批量网络装机

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

PXE实现网卡引导启动的条件:

  • BIOS支持
  • 网卡支持
  • BIOS中开启网络装机,默认关闭状态。
  • DHCP服务器用于分配IP地址并引导客户端到TFTP服务器提供启动程序和操作系统镜像。
2.1、PXE实现原理

  •  客户端启动:客户端开机后通过网卡发送DHCP请求。
  • DHCP响应:DHCP服务器分配IP地址,并告知TFTP服务器器地址及引导文件路径。
  • 下载引导文件:客户端从TFTP服务器获取引导文件(pxelinux.0、grub)。
  • 加载内核和镜像:通过引导文件加载内核(vmlinuz)和初始化内存盘(initrd.img)。
  • 自动化安装:从文件服务器(HTTP、FTP、NFS)获取操作系统镜像和配置文件,完成网络装机。
2.2、搭建PXE实际案例
2.2.1、安装必要软件

为实现网络远程装机,需要DHCP服务、syslinux引导加载程序(pxelinux.0)、TFTP服务与FTP服务,所以预先安装这四个软件。

[root@localhost ~]# systemctl stop firewalld.service     //关闭防火墙
[root@localhost ~]# setenforce 0                         //关闭selinux
[root@localhost ~]# yum install tftp-server vsftpd syslinux dhcp -y
已安装:
  dhcp.x86_64 12:4.2.5-83.el7.centos.2  syslinux.x86_64 0:4.05-15.el7  tftp-server.x86_64 0:5.2-22.el7  vsftpd.x86_64 0:3.0.2-29.el7_9 

作为依赖被升级:
  dhclient.x86_64 12:4.2.5-83.el7.centos.2   dhcp-common.x86_64 12:4.2.5-83.el7.centos.2   dhcp-libs.x86_64 12:4.2.5-83.el7.centos.2  

完毕!
[root@localhost ~]# 
2.2.2、搭建DHCP服务器
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf    //查看模板配置文件路径
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
[root@localhost ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y        //拷贝模板配置文件并覆盖源文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf 
//拷贝子网配置,粘贴并进行修改
 27 subnet 192.168.153.0 netmask 255.255.255.0 {    //改为DHCP服务器IP地址与子网掩码
 28   range 192.168.153.20 192.168.153.100;         //设置自动分配地址段范围
 29   option routers 192.168.153.2;                 //网关
 30   next-server 192.168.153.223;                  //指向TFTP服务器的IP地址
 31   filename "pxelinux.0";                        //引导程序文件的名称
 32 }
2.2.3、搭建TFTP服务器
[root@localhost ~]# rpm -qc tftp-server         //查看配置文件路径
/etc/xinetd.d/tftp
[root@localhost ~]# vim /etc/xinetd.d/tftp      //编辑配置文件

 14         disable                 = no        //yes改为no,关闭禁用
2.2.4、挂载镜像并拷贝引导文件到tftp服务启动引导文件夹下
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# mount /dev/sr0 /var/ftp/centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# rpm -ql syslinux |grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost ~]# cp /var/ftp/centos7/isolinux/vmlinuz /var/lib/tftpboot/
[root@localhost ~]# cp /var/ftp/centos7/isolinux/initrd.img /var/lib/tftpboot/
2.2.5、编辑pxelinux.cfg配置文件
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# cd /var/lib/tftpboot/pxelinux.cfg
[root@localhost pxelinux.cfg]# vim default

  1 default linux
  2 timeout 600
  3 
  4 label linux
  5         kernel vmlinuz
  6         append initrd=initrd.img method=ftp://192.168.153.223/centos7
  7 
  8 label linux text
  9         kernel vmlinuz
 10         append text initrd =initrd.img method=ftp://192.168.153.223/centos7
 11 
 12 label linux rescue
 13         kernel vmlinuz
 14         append rescue initrd=initrd.img method=ftp://192.168.153.223/centos7
2.2.6、启动服务
[root@localhost pxelinux.cfg]# systemctl start dhcpd vsftpd tftp
[root@localhost pxelinux.cfg]# systemctl status dhcpd vsftpd tftp
● dhcpd.service - DHCPv4 Server Daemon
   Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 四 2025-02-27 22:05:33 CST; 31min ago
     Docs: man:dhcpd(8)
           man:dhcpd.conf(5)
 Main PID: 63999 (dhcpd)
   Status: "Dispatching packets..."
    Tasks: 1
   CGroup: /system.slice/dhcpd.service
           └─63999 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid

2月 27 22:05:33 localhost.localdomain systemd[1]: Started DHCPv4 Server Daemon.

● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 四 2025-02-27 22:37:11 CST; 5s ago
  Process: 64508 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 64512 (vsftpd)
    Tasks: 1
   CGroup: /system.slice/vsftpd.service
           └─64512 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

2月 27 22:37:11 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
2月 27 22:37:11 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.

● tftp.service - Tftp Server
   Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)
   Active: active (running) since 四 2025-02-27 22:37:11 CST; 5s ago
     Docs: man:in.tftpd
 Main PID: 64510 (in.tftpd)
    Tasks: 1
   CGroup: /system.slice/tftp.service
           └─64510 /usr/sbin/in.tftpd -s /var/lib/tftpboot

2月 27 22:37:11 localhost.localdomain systemd[1]: Started Tftp Server.
2.2.7、验证PXE批量网络装机

关闭虚拟机的DHCP服务,避免冲突。

新建虚拟机,建议内存分配2G以上,以免引导文件没有足够内存展开。

 启动后,自动获取IP地址,并加载引导程序,PXE批量网络装机完成。

三、kickstart自动化安装操作系统工具

它通过一个配置文件(通常称为ks.cfg)定义安装过程中的所有选项,从而实现无人值守安装。

避免安装linux图形界面后,仍需要人工完成系统引导。

3.1、安装kickstart
[root@localhost ~]# yum install system-config-kickstart -y

 3.2、基本配置

 3.3、安装方法

3.4、引导装载程序选择

3.5、分区信息

3.6、防火墙配置

3.7、显示配置

3.8、保存配置

3.9、编辑default配置文件
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 

  4 label linux
  5         kernel vmlinuz
  6         append initrd=initrd.img method=ftp://192.168.153.223/centos7 ks=ftp://192.168.153.223/ks.fcg  //指向ks.fcg文件,实现无人值守完成系统引导
3.10、验证

开始自动进行系统引导操作,验证完成


http://www.kler.cn/a/564512.html

相关文章:

  • 算法每日一练 (6)
  • 【愚公系列】《Python网络爬虫从入门到精通》033-DataFrame的数据排序
  • 51c嵌入式~电路~合集12
  • LabVIEW 项目长时间稳定运行注意事项
  • Hadoop第一课(配置linux系统)
  • 在android 平台上添加新的遥控器码值
  • Leetcode 141 Linked List Cycle and Leetcode 142 Linked List Cycle II
  • 串口解析的服务器流程优化
  • Android构建系统 - 06 添加编译模块
  • 大湾区经济网报道:拉美电商交易额连续三年增速超35%
  • 每天一个Flutter开发小项目 (4) : 构建收藏地点应用 - 深入Flutter状态管理
  • 网络安全 机器学习算法 计算机网络安全机制
  • kafka-web管理工具cmak
  • 设备健康管理系统在制造业的深度应用探索
  • 3DCAPP系列:开目浏览器KMVue
  • DeepSeek 提示词:常见指令类型
  • CSS 日常开发常用属性总结
  • pytorch基础-比较矩阵是否相等
  • Java类中的this操作
  • 2025-02-27 学习记录--C/C++-PTA 7-30 字符串的冒泡排序