Bootstrap

部署PXE高效批量网络装机

目录

一、系统装机

1、系统装机的方式

2、系统的安装过程

3、Linux安装光盘的相关文件

二、PXE(Preboot eXecution Environment)

1、PXE概述

2、运行PXE 批量部署的优点

3、pxe实现的硬件条件

4、运行PXE的实现过程

5、PXE的实现操作

5.1、安装dhcp、vsftpd、tftp-server、syslinux服务

5.2、将配置文件模板复制到DHCP目录下

5.3、修改配置文件——TFTP

三 、kickstart 工具

1、kickstart概述

2、kickstart组成部分

3、kickstart 无人值守安装步骤

3.1、下载安装图形化工具

3.2、开启工具,选择程序

3.3、修改基本配置

3.4、修改安装方法

3.5、安装新引导装载程序 

3.6、配置分区信息 

3.6.1、配置boot分区

3.6.2、配置swap分区

3.6.3、配置根分区

 3.7、网络配置

3.8、 防火墙配置

3.9、显示配置

3.9.1、预安装脚本

4、保存配置信息

5、查看配置文件

6、 修改/var/lib/tftpboot/pxelinux.cfg/default文件

 四、Cobbler工具

1、Cobbler概念

2、Cobbler工作原理

3、使用Cobbler工具装机

3.1、安装cobbler工具与dhcp

3.2、生成新密码

3.3、修改cobbler配置文件

3.4、重启服务,查看配置信息

 3.5、配置dhcp

3.6、导入CentOS系统的安装文件,生成相应的YUM源 


一、系统装机

1、系统装机的方式

①、光驱安装 

光驱是计算机中用于读取和写入光盘(如CD、DVD、Blu-ray)的设备,通过连接到计算机主板的SATA接口或USB接口实现,以支持安装软件、播放音视频内容等功能。

②、硬盘安装(u盘)

硬盘安装通过U盘指的是使用USB闪存驱动器作为安装介质,通常用于启动计算机并安装操作系统或其他软件,通过预先准备的安装程序或镜像文件,实现快速、便捷的安装过程。

③、网络安装

网络安装是一种通过计算机连接至网络来完成操作系统或软件的安装方式,通常利用PXE(Preboot eXecution Environment)或其他网络引导技术,在计算机启动时从网络服务器获取操作系统镜像或安装程序,实现远程部署和管理的方法。

2、系统的安装过程

①、加载引导程序

在计算机启动系统时,首先会引导加载程序,负责加载操作系统。它位于引导扇区(通常是硬盘的第一个扇区)中,将系统控制权传递给包含操作系统引导文件的分区。或者直接根据MBR 记录中的引导信息调用启动菜单(如 GRUB)

②、加载启动安装菜单

引导加载程序将会显示启动菜单给 用户选择,并根据所选项(或采用默认值)加载 Linux 内核文件,然后将系统控制权转交给 内核。

③、加载内核和initrd

它是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间, 负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个 Linux 操作系统的运行过 程。

④、加载根系统文件

操作系统将从硬盘或其他存储设备中加载存储操作系统的根文件系统。根文件系统包含操作系统的核心文件和配置信息,例如系统文件、设备驱动程序、用户数据等。加载根系统文件后,操作系统可以继续初始化并完成启动过程。

⑤、运行anaconda的安装向导

运行Anaconda的安装向导是指在操作系统的引导加载程序成功加载了系统内核和initrd之后,特定的Linux发行版(如Fedora、CentOS等)会启动Anaconda安装程序。Anaconda是一个强大的安装程序,它提供了图形化界面或命令行界面,引导用户完成操作系统的安装过程。

3、Linux安装光盘的相关文件

boot.cat:是光盘启动过程中的一个文件,包含了引导加载程序菜单的配置信息,例如菜单项的名称、操作系统的选项等。这个文件不是系统的关键组成部分,而是为了辅助引导加载程序在启动时提供用户友好的界面或指导信息而存在的。

isolinux.bin:它是启动Linux安装程序的引导加载程序(bootloader)文件,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目

isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找 isolinux.cfg文件

vesamenu.c32:是引导加载程序的一个模块,用于创建基于图形的菜单界面,帮助用户选择不同的启动选项。它支持使用VESA图形模式显示菜单内容,使得启动管理更直观和用户友好。

memtest:Memtest,全称为Memtest86或Memtest86+,是一款用于测试计算机内存(RAM)稳定性和性能的工具程序。通常作为引导加载程序或独立的启动光盘存在,用于检测内存中的错误、不稳定性和硬件问题。

splash.png:光盘启动菜单界面的背景图

vmlinuz:是Linux操作系统内核的压缩版本,通常用于启动Linux系统。这个文件包含了操作系统的核心功能和驱动程序

initrd.img:是系统中的一个初始内存盘镜像文件,用于在引导过程中临时加载并提供必要的文件系统支持和驱动程序。它包含了在硬盘驱动器加载之前需要的关键组件和工具,例如设备驱动程序、文件系统模块和初始化脚本。

二、PXE(Preboot eXecution Environment)

1、PXE概述

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

PXE协议分为两部分

  • PXE客户端:是指需要通过网络启动的计算机或设备。PXE客户端在启动过程中会通过网络接口发送特定的PXE引导请求,以获取IP地址、网关和其他必要的网络配置信息。它能够接收来自PXE服务器的引导图像或其他预启动服务,以完成系统的启动过程。
  • PXE服务端:是提供PXE引导服务的计算机或设备。PXE服务器通常配有特定的服务软件(如DHCP服务器和TFTP服务器),能够响应PXE客户端的引导请求。服务器负责分配IP地址、提供引导图像和其他必要的预启动文件,使得PXE客户端能够通过网络启动操作系统或执行其他预启动任务。

2、运行PXE 批量部署的优点

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

3、pxe实现的硬件条件

  • 网卡支持:PXE要求网络适配器(网卡)支持PXE协议,即能够在系统启动时通过网络加载启动文件。大多数现代计算机和服务器都具备这样的网卡
  • BIOS支持:PXE需要计算机的BIOS或固件支持PXE引导。具体来说,BIOS需要能够配置启动设备,识别并启用网络引导功能,同时支持通过网络接口获取DHCP和TFTP服务相关信息,以便在启动时从网络中加载操作系统或其它引导程序。
  • DHCP服务器:DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。
  • TFTP服务器:TFTP服务器通过UDP协议向客户端传输启动文件,如操作系统映像和配置文件,使无盘的PXE客户端能够通过网络加载并启动操作系统。它与DHCP服务器配合,为客户端提供必要的TFTP服务器地址,确保在预启动阶段能够快速有效地完成文件传输,实现远程网络启动的功能。

4、运行PXE的实现过程

①、网卡需要查找相关的dhcp服务器(获取地址时间)

②、找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址 (dhcp本身不提供tftp服务)

③、网卡使用tftp客户端吧引导程序加载到内存中来

④、bios执行引导程序

⑤、引导程序会去TFTP去查找配置文件

⑥、根据配置文件去引导安装系统

⑦、系统安装过程

5、PXE的实现操作

首先需要先关闭防火墙和临时防护

1、systemctl stop firewalld             #关闭防火墙

2、setenforce 0                              #关闭临时防护

5.1、安装dhcp、vsftpd、tftp-server、syslinux服务

[root@localhost ~]# yum install -y dhcp vsftpd tftp-server syslinux 
BDB2053 Freeing read locks for locker 0xed1: 14515/140262283777856
BDB2053 Freeing read locks for locker 0xed3: 14515/140262283777856
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 dhcp.x86_64.12.4.2.5-83.el7.centos.2 将被 安装
--> 正在处理依赖关系 dhcp-libs(x86-64) = 12:4.2.5-83.el7.centos.2,它被软件包 12:dhcp-4.2.5-83.el7.centos.2.x86_64 需要
--> 正在处理依赖关系 dhcp-common = 12:4.2.5-83.el7.centos.2,它被软件包 12:dhcp-4.2.5-83.el7.centos.2.x86_64 需要
--> 正在处理依赖关系 libisc-export.so.169()(64bit),它被软件包 12:dhcp-4.2.5-83.el7.centos.2.x86_64 需要
--> 正在处理依赖关系 libdns-export.so.1102()(64bit),它被软件包 12:dhcp-4.2.5-83.el7.centos.2.x86_64 需要
---> 软件包 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 将被 安装
--> 正在检查事务
---> 软件包 bind-export-libs.x86_64.32.9.11.4-26.P2.el7_9.16 将被 安装
---> 软件包 dhcp-common.x86_64.12.4.2.5-58.el7.centos 将被 升级
--> 正在处理依赖关系 dhcp-common = 12:4.2.5-58.el7.centos,它被软件包 12:dhclient-4.2.5-58.el7.centos.x86_64 需要
---> 软件包 dhcp-common.x86_64.12.4.2.5-83.el7.centos.2 将被 更新
---> 软件包 dhcp-libs.x86_64.12.4.2.5-58.el7.centos 将被 升级
---> 软件包 dhcp-libs.x86_64.12.4.2.5-83.el7.centos.2 将被 更新
--> 正在检查事务
---> 软件包 dhclient.x86_64.12.4.2.5-58.el7.centos 将被 升级
---> 软件包 dhclient.x86_64.12.4.2.5-83.el7.centos.2 将被 更新
--> 解决依赖关系完成

依赖关系解决

=====================================================================================================================================================================
 Package                                   架构                            版本                                               源                                大小
=====================================================================================================================================================================
正在安装:
 dhcp                                      x86_64                          12:4.2.5-83.el7.centos.2                           updates                          515 k
 syslinux                                  x86_64                          4.05-15.el7                                        base                             990 k
 tftp-server                               x86_64                          5.2-22.el7                                         base                              47 k
 vsftpd                                    x86_64                          3.0.2-29.el7_9                                     updates                          173 k
为依赖而安装:
 bind-export-libs                          x86_64                          32:9.11.4-26.P2.el7_9.16                           updates                          1.1 M
为依赖而更新:
 dhclient                                  x86_64                          12:4.2.5-83.el7.centos.2                           updates                          286 k
 dhcp-common                               x86_64                          12:4.2.5-83.el7.centos.2                           updates                          177 k
 dhcp-libs                                 x86_64                          12:4.2.5-83.el7.centos.2                           updates                          133 k

事务概要
=====================================================================================================================================================================
安装  4 软件包 (+1 依赖软件包)
升级           ( 3 依赖软件包)

总下载量:3.4 M
Downloading packages:
No Presto metadata available for updates
(1/8): dhclient-4.2.5-83.el7.centos.2.x86_64.rpm                                                                                              | 286 kB  00:00:00     
(2/8): bind-export-libs-9.11.4-26.P2.el7_9.16.x86_64.rpm                                                                                      | 1.1 MB  00:00:01     
(3/8): dhcp-4.2.5-83.el7.centos.2.x86_64.rpm                                                                                                  | 515 kB  00:00:00     
(4/8): dhcp-common-4.2.5-83.el7.centos.2.x86_64.rpm                                                                                           | 177 kB  00:00:00     
(5/8): dhcp-libs-4.2.5-83.el7.centos.2.x86_64.rpm                                                                                             | 133 kB  00:00:00     
(6/8): tftp-server-5.2-22.el7.x86_64.rpm                                                                                                      |  47 kB  00:00:00     
(7/8): vsftpd-3.0.2-29.el7_9.x86_64.rpm                                                                                                       | 173 kB  00:00:00     
(8/8): syslinux-4.05-15.el7.x86_64.rpm                                                                                                        | 990 kB  00:00:00     
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                 1.6 MB/s | 3.4 MB  00:00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在更新    : 12:dhcp-libs-4.2.5-83.el7.centos.2.x86_64                                                                                                       1/11 
  正在更新    : 12:dhcp-common-4.2.5-83.el7.centos.2.x86_64                                                                                                     2/11 
  正在安装    : 32:bind-export-libs-9.11.4-26.P2.el7_9.16.x86_64                                                                                                3/11 
  正在安装    : 12:dhcp-4.2.5-83.el7.centos.2.x86_64                                                                                                            4/11 
  正在更新    : 12:dhclient-4.2.5-83.el7.centos.2.x86_64                                                                                                        5/11 
  正在安装    : tftp-server-5.2-22.el7.x86_64                                                                                                                   6/11 
  正在安装    : syslinux-4.05-15.el7.x86_64                                                                                                                     7/11 
  正在安装    : vsftpd-3.0.2-29.el7_9.x86_64                                                                                                                    8/11 
  清理        : 12:dhclient-4.2.5-58.el7.centos.x86_64                                                                                                          9/11 
  清理        : 12:dhcp-common-4.2.5-58.el7.centos.x86_64                                                                                                      10/11 
  清理        : 12:dhcp-libs-4.2.5-58.el7.centos.x86_64                                                                                                        11/11 
  验证中      : 12:dhcp-4.2.5-83.el7.centos.2.x86_64                                                                                                            1/11 
  验证中      : 32:bind-export-libs-9.11.4-26.P2.el7_9.16.x86_64                                                                                                2/11 
  验证中      : vsftpd-3.0.2-29.el7_9.x86_64                                                                                                                    3/11 
  验证中      : 12:dhclient-4.2.5-83.el7.centos.2.x86_64                                                                                                        4/11 
  验证中      : syslinux-4.05-15.el7.x86_64                                                                                                                     5/11 
  验证中      : 12:dhcp-libs-4.2.5-83.el7.centos.2.x86_64                                                                                                       6/11 
  验证中      : tftp-server-5.2-22.el7.x86_64                                                                                                                   7/11 
  验证中      : 12:dhcp-common-4.2.5-83.el7.centos.2.x86_64                                                                                                     8/11 
  验证中      : 12:dhcp-common-4.2.5-58.el7.centos.x86_64                                                                                                       9/11 
  验证中      : 12:dhcp-libs-4.2.5-58.el7.centos.x86_64                                                                                                        10/11 
  验证中      : 12:dhclient-4.2.5-58.el7.centos.x86_64                                                                                                         11/11 

已安装:
  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        

作为依赖被安装:
  bind-export-libs.x86_64 32:9.11.4-26.P2.el7_9.16                                                                                                                   

作为依赖被升级:
  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            

完毕!

5.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-4.2.5/dhcpd.conf.example   /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@localhost ~]# 
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
subnet 172.16.88.0 netmask 255.255.255.0 {
  range 172.16.88.10 172.16.88.20;
  option domain-name-servers 8.8.8.8;
  option routers 172.16.88.2;
  filename= "pxelinux.0";
[root@localhost ~]# 
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# 
  • vim编辑 DHCP配置

5.3、修改配置文件——TFTP

[root@localhost tftpboot]# rpm -qc tftp-server
/etc/xinetd.d/tftp
[root@localhost tftpboot]# vim /etc/xinetd.d/tftp
[root@localhost tftpboot]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# 
[root@localhost tftpboot]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost tftpboot]# 
[root@localhost tftpboot]# cp /mnt/isolinux/initrd.img   /mnt/isolinux/vmlinuz  .
[root@localhost tftpboot]# 
[root@localhost tftpboot]# ls
initrd.img  vmlinuz
[root@localhost tftpboot]# rpm -ql syslinux |grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost tftpboot]# 
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 .
cp:是否覆盖"./pxelinux.0"? y
[root@localhost tftpboot]# 
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  vmlinuz
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# 
[root@localhost pxelinux.cfg]# ls
[root@localhost pxelinux.cfg]# 
[root@localhost pxelinux.cfg]# vim default
[root@localhost pxelinux.cfg]# 
[root@localhost pxelinux.cfg]# mkdir /var/ftp/centos7
[root@localhost pxelinux.cfg]# mount /dev/sr0 /var/ftp/centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost pxelinux.cfg]# 
[root@localhost pxelinux.cfg]# cd ..
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@localhost tftpboot]# systemctl start tftp
[root@localhost tftpboot]# systemctl start vsftpd

 vim /etc/xinetd.d/tftp 

vim default 

三 、kickstart 工具

1、kickstart概述

Kickstart是一种自动化安装系统的方法,特别是在Red Hat Linux和其衍生发行版中广泛使用。它通过一个称为Kickstart文件的配置文件来定义安装过程中的各种设置和选项,从而实现无人值守或半自动化的操作系统安装。

2、kickstart组成部分

命令段,程序包段,脚本段

命令段:指明各种安装前配置,如键盘类型等

命令段中的常见命令:

keyboard: 设定键盘类型

lang: 语言类型

zerombr:清除mbr

clearpart:清除分区

part: 创建分区

rootpw: 指明root的密码

timezone: 时区

text: 文本安装界面

network:指定网络设置

firewall:设置防火墙设置

selinux:设置selinux设置

reboot:安装完自动重启

url: 指明安装源

程序包段:指明要安装的程序包组或程序包,不安装的程序包等

%packages

@^environment group: 指定环境包组,如:@^minimal-environment

@group_name

package

-package

%end

脚本段:

%pre: 安装前脚本

%post: 安装后脚本

1、%post

2、useradd wang                       

3、%end

注意:CentOS 8,7,6 不同版本的kickstart文件格式不尽相同,不可混用

3、kickstart 无人值守安装步骤

3.1、下载安装图形化工具

yum install system-config-kickstart -y

[root@localhost tftpboot]# yum install system-config-kickstart -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 system-config-kickstart.noarch.0.2.9.7-1.el7 将被 安装
--> 正在处理依赖关系 system-config-keyboard >= 1.3.1,它被软件包 system-config-kickstart-2.9.7-1.el7.noarch 需要
--> 正在处理依赖关系 system-config-language,它被软件包 system-config-kickstart-2.9.7-1.el7.noarch 需要
--> 正在处理依赖关系 system-config-date,它被软件包 system-config-kickstart-2.9.7-1.el7.noarch 需要
--> 正在检查事务
---> 软件包 system-config-date.noarch.0.1.10.6-3.el7.centos 将被 安装
--> 正在处理依赖关系 system-config-date-docs,它被软件包 system-config-date-1.10.6-3.el7.centos.noarch 需要
--> 正在处理依赖关系 gnome-python2-canvas,它被软件包 system-config-date-1.10.6-3.el7.centos.noarch 需要
---> 软件包 system-config-keyboard.noarch.0.1.4.0-5.el7 将被 安装
--> 正在处理依赖关系 system-config-keyboard-base = 1.4.0-5.el7,它被软件包 system-config-keyboard-1.4.0-5.el7.noarch 需要
---> 软件包 system-config-language.noarch.0.1.4.0-9.el7 将被 安装
--> 正在处理依赖关系 usermode-gtk,它被软件包 system-config-language-1.4.0-9.el7.noarch 需要
--> 正在检查事务
---> 软件包 gnome-python2-canvas.x86_64.0.2.28.1-14.el7 将被 安装
--> 正在处理依赖关系 gnome-python2(x86-64) = 2.28.1-14.el7,它被软件包 gnome-python2-canvas-2.28.1-14.el7.x86_64 需要
--> 正在处理依赖关系 libgnomecanvas(x86-64) >= 2.8.0,它被软件包 gnome-python2-canvas-2.28.1-14.el7.x86_64 需要
--> 正在处理依赖关系 libgnomecanvas-2.so.0()(64bit),它被软件包 gnome-python2-canvas-2.28.1-14.el7.x86_64 需要
--> 正在处理依赖关系 libart_lgpl_2.so.2()(64bit),它被软件包 gnome-python2-canvas-2.28.1-14.el7.x86_64 需要
---> 软件包 system-config-date-docs.noarch.0.1.0.11-4.el7 将被 安装
--> 正在处理依赖关系 rarian-compat,它被软件包 system-config-date-docs-1.0.11-4.el7.noarch 需要
---> 软件包 system-config-keyboard-base.noarch.0.1.4.0-5.el7 将被 安装
---> 软件包 usermode-gtk.x86_64.0.1.111-6.el7 将被 安装
--> 正在处理依赖关系 usermode = 1.111-6.el7,它被软件包 usermode-gtk-1.111-6.el7.x86_64 需要
--> 正在检查事务
---> 软件包 gnome-python2.x86_64.0.2.28.1-14.el7 将被 安装
---> 软件包 libart_lgpl.x86_64.0.2.3.21-10.el7 将被 安装
---> 软件包 libgnomecanvas.x86_64.0.2.30.3-8.el7 将被 安装
---> 软件包 rarian-compat.x86_64.0.0.8.1-11.el7 将被 安装
--> 正在处理依赖关系 rarian = 0.8.1-11.el7,它被软件包 rarian-compat-0.8.1-11.el7.x86_64 需要
--> 正在处理依赖关系 rarian,它被软件包 rarian-compat-0.8.1-11.el7.x86_64 需要
--> 正在处理依赖关系 librarian.so.0()(64bit),它被软件包 rarian-compat-0.8.1-11.el7.x86_64 需要
---> 软件包 usermode.x86_64.0.1.111-5.el7 将被 升级
---> 软件包 usermode.x86_64.0.1.111-6.el7 将被 更新
--> 正在检查事务
---> 软件包 rarian.x86_64.0.0.8.1-11.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=====================================================================================================================================================================
 Package                                             架构                           版本                                          源                            大小
=====================================================================================================================================================================
正在安装:
 system-config-kickstart                             noarch                         2.9.7-1.el7                                   base                         348 k
为依赖而安装:
 gnome-python2                                       x86_64                         2.28.1-14.el7                                 base                          47 k
 gnome-python2-canvas                                x86_64                         2.28.1-14.el7                                 base                          34 k
 libart_lgpl                                         x86_64                         2.3.21-10.el7                                 base                          67 k
 libgnomecanvas                                      x86_64                         2.30.3-8.el7                                  base                         226 k
 rarian                                              x86_64                         0.8.1-11.el7                                  base                          98 k
 rarian-compat                                       x86_64                         0.8.1-11.el7                                  base                          66 k
 system-config-date                                  noarch                         1.10.6-3.el7.centos                           base                         591 k
 system-config-date-docs                             noarch                         1.0.11-4.el7                                  base                         527 k
 system-config-keyboard                              noarch                         1.4.0-5.el7                                   base                          33 k
 system-config-keyboard-base                         noarch                         1.4.0-5.el7                                   base                         103 k
 system-config-language                              noarch                         1.4.0-9.el7                                   base                         133 k
 usermode-gtk                                        x86_64                         1.111-6.el7                                   base                         110 k
为依赖而更新:
 usermode                                            x86_64                         1.111-6.el7                                   base                         193 k

事务概要
=====================================================================================================================================================================
安装  1 软件包 (+12 依赖软件包)
升级           (  1 依赖软件包)

总下载量:2.5 M
Downloading packages:
No Presto metadata available for base
(1/14): gnome-python2-canvas-2.28.1-14.el7.x86_64.rpm                                                                                         |  34 kB  00:00:00     
(2/14): libart_lgpl-2.3.21-10.el7.x86_64.rpm                                                                                                  |  67 kB  00:00:00     
(3/14): gnome-python2-2.28.1-14.el7.x86_64.rpm                                                                                                |  47 kB  00:00:00     
(4/14): rarian-0.8.1-11.el7.x86_64.rpm                                                                                                        |  98 kB  00:00:00     
(5/14): libgnomecanvas-2.30.3-8.el7.x86_64.rpm                                                                                                | 226 kB  00:00:00     
(6/14): rarian-compat-0.8.1-11.el7.x86_64.rpm                                                                                                 |  66 kB  00:00:00     
(7/14): system-config-date-1.10.6-3.el7.centos.noarch.rpm                                                                                     | 591 kB  00:00:01     
(8/14): system-config-keyboard-1.4.0-5.el7.noarch.rpm                                                                                         |  33 kB  00:00:00     
(9/14): system-config-date-docs-1.0.11-4.el7.noarch.rpm                                                                                       | 527 kB  00:00:01     
(10/14): system-config-keyboard-base-1.4.0-5.el7.noarch.rpm                                                                                   | 103 kB  00:00:00     
(11/14): system-config-language-1.4.0-9.el7.noarch.rpm                                                                                        | 133 kB  00:00:00     
(12/14): system-config-kickstart-2.9.7-1.el7.noarch.rpm                                                                                       | 348 kB  00:00:00     
(13/14): usermode-1.111-6.el7.x86_64.rpm                                                                                                      | 193 kB  00:00:00     
(14/14): usermode-gtk-1.111-6.el7.x86_64.rpm                                                                                                  | 110 kB  00:00:00     
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                 774 kB/s | 2.5 MB  00:00:03     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在更新    : usermode-1.111-6.el7.x86_64                                                                                                                     1/15 
  正在安装    : libart_lgpl-2.3.21-10.el7.x86_64                                                                                                                2/15 
  正在安装    : libgnomecanvas-2.30.3-8.el7.x86_64                                                                                                              3/15 
  正在安装    : usermode-gtk-1.111-6.el7.x86_64                                                                                                                 4/15 
  正在安装    : system-config-language-1.4.0-9.el7.noarch                                                                                                       5/15 
  正在安装    : gnome-python2-2.28.1-14.el7.x86_64                                                                                                              6/15 
  正在安装    : gnome-python2-canvas-2.28.1-14.el7.x86_64                                                                                                       7/15 
  正在安装    : rarian-0.8.1-11.el7.x86_64                                                                                                                      8/15 
  正在安装    : rarian-compat-0.8.1-11.el7.x86_64                                                                                                               9/15 
  正在安装    : system-config-date-docs-1.0.11-4.el7.noarch                                                                                                    10/15 
  正在安装    : system-config-date-1.10.6-3.el7.centos.noarch                                                                                                  11/15 
  正在安装    : system-config-keyboard-base-1.4.0-5.el7.noarch                                                                                                 12/15 
  正在安装    : system-config-keyboard-1.4.0-5.el7.noarch                                                                                                      13/15 
  正在安装    : system-config-kickstart-2.9.7-1.el7.noarch                                                                                                     14/15 
  清理        : usermode-1.111-5.el7.x86_64                                                                                                                    15/15 
  验证中      : libgnomecanvas-2.30.3-8.el7.x86_64                                                                                                              1/15 
  验证中      : system-config-keyboard-base-1.4.0-5.el7.noarch                                                                                                  2/15 
  验证中      : system-config-date-docs-1.0.11-4.el7.noarch                                                                                                     3/15 
  验证中      : system-config-language-1.4.0-9.el7.noarch                                                                                                       4/15 
  验证中      : system-config-date-1.10.6-3.el7.centos.noarch                                                                                                   5/15 
  验证中      : system-config-keyboard-1.4.0-5.el7.noarch                                                                                                       6/15 
  验证中      : system-config-kickstart-2.9.7-1.el7.noarch                                                                                                      7/15 
  验证中      : gnome-python2-canvas-2.28.1-14.el7.x86_64                                                                                                       8/15 
  验证中      : rarian-compat-0.8.1-11.el7.x86_64                                                                                                               9/15 
  验证中      : rarian-0.8.1-11.el7.x86_64                                                                                                                     10/15 
  验证中      : usermode-gtk-1.111-6.el7.x86_64                                                                                                                11/15 
  验证中      : libart_lgpl-2.3.21-10.el7.x86_64                                                                                                               12/15 
  验证中      : usermode-1.111-6.el7.x86_64                                                                                                                    13/15 
  验证中      : gnome-python2-2.28.1-14.el7.x86_64                                                                                                             14/15 
  验证中      : usermode-1.111-5.el7.x86_64                                                                                                                    15/15 

已安装:
  system-config-kickstart.noarch 0:2.9.7-1.el7                                                                                                                       

作为依赖被安装:
  gnome-python2.x86_64 0:2.28.1-14.el7                     gnome-python2-canvas.x86_64 0:2.28.1-14.el7           libart_lgpl.x86_64 0:2.3.21-10.el7                 
  libgnomecanvas.x86_64 0:2.30.3-8.el7                     rarian.x86_64 0:0.8.1-11.el7                          rarian-compat.x86_64 0:0.8.1-11.el7                
  system-config-date.noarch 0:1.10.6-3.el7.centos          system-config-date-docs.noarch 0:1.0.11-4.el7         system-config-keyboard.noarch 0:1.4.0-5.el7        
  system-config-keyboard-base.noarch 0:1.4.0-5.el7         system-config-language.noarch 0:1.4.0-9.el7           usermode-gtk.x86_64 0:1.111-6.el7                  

作为依赖被升级:
  usermode.x86_64 0:1.111-6.el7                                                                                                                                      

完毕!

3.2、开启工具,选择程序

3.3、修改基本配置

3.4、修改安装方法

3.5、安装新引导装载程序 

3.6、配置分区信息 

3.6.1、配置boot分区

3.6.2、配置swap分区

3.6.3、配置根分区

 3.7、网络配置

3.8、 防火墙配置

3.9、显示配置

3.9.1、预安装脚本

4、保存配置信息

 ​​​​​​​

5、查看配置文件

[root@localhost tftpboot]# cd /var/ftp/
[root@localhost ftp]# ls
centos7  ks.cfg  pub
[root@localhost ftp]# vim ks.cfg 
[root@localhost ftp]# 
  • 刚配置的一些信息 

6、 修改/var/lib/tftpboot/pxelinux.cfg/default文件

[root@localhost ftp]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# 
[root@localhost tftpboot]# 
[root@localhost tftpboot]# ls
default  initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@localhost tftpboot]# vim default 

 四、Cobbler工具

1、Cobbler概念

Cobbler是一个开源的Linux安装服务器,用于自动化和管理操作系统的安装。它允许管理员通过一个集中的Web界面或命令行工具集成Kickstart和Preseed等自动安装工具,轻松配置和部署多台服务器。Cobbler能够管理PXE启动、DHCP、DNS等网络服务,并支持自定义配置文件以及安装和配置多种Linux发行版。

2、Cobbler工作原理

①、client裸机配置了从网络启动后,开机后会广播包请求

②、DHCP服务器(cobbler server)发送其分配 好的一个IP DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址

③、client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求

④、cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port

⑤、client裸机通过上面告知的TFTP server地址通信,下载引导文件

⑥、client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求 kickstart文件和os image

⑦、cobbler server发送请求的kickstart和os iamge

⑧、client裸机加载kickstart文件

⑨、client裸机接收os image,安装该os image

3、使用Cobbler工具装机

3.1、安装cobbler工具与dhcp

[root@centos7 ~]#yum install epel-release.noarch -y
[root@centos7 ~]#yum install cobbler dhcp httpd   -y
[root@centos7 ~]#systemctl enable --now cobblerd httpd tftp dhcpd
[root@localhost ~]# yum install epel-release.noarch -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 epel-release.noarch.0.7-11 将被 安装
--> 解决依赖关系完成

依赖关系解决

=====================================================================================================================================================================
 Package                                     架构                                  版本                                  源                                     大小
=====================================================================================================================================================================
正在安装:
 epel-release                                noarch                                7-11                                  extras                                 15 k

事务概要
=====================================================================================================================================================================
安装  1 软件包

总下载量:15 k
安装大小:24 k
Downloading packages:
epel-release-7-11.noarch.rpm                                                                                                                  |  15 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : epel-release-7-11.noarch                                                                                                                         1/1 
  验证中      : epel-release-7-11.noarch                                                                                                                         1/1 

已安装:
  epel-release.noarch 0:7-11                                                                                                                                         

完毕!
[root@localhost ~]# yum install cobbler dhcp httpd   -y
已加载插件:fastestmirror, langpacks
epel/x86_64/metalink                                                                                                                          |  16 kB  00:00:00     
epel                                                                                                                                          | 4.3 kB  00:00:00     
(1/3): epel/x86_64/group                                                                                                                      | 399 kB  00:00:00     
(2/3): epel/x86_64/updateinfo                                                                                                                 | 1.0 MB  00:00:01     
(3/3): epel/x86_64/primary_db                                                                                                                 | 8.7 MB  00:01:19     
Loading mirror speeds from cached hostfile
 * epel: ftp.riken.jp
软件包 12:dhcp-4.2.5-83.el7.centos.2.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 cobbler.x86_64.0.2.8.5-6.el7 将被 安装
--> 正在处理依赖关系 mod_wsgi,它被软件包 cobbler-2.8.5-6.el7.x86_64 需要
--> 正在处理依赖关系 python2-cheetah,它被软件包 cobbler-2.8.5-6.el7.x86_64 需要
--> 正在处理依赖关系 python2-pyyaml,它被软件包 cobbler-2.8.5-6.el7.x86_64 需要
--> 正在处理依赖关系 python2-simplejson,它被软件包 cobbler-2.8.5-6.el7.x86_64 需要
---> 软件包 httpd.x86_64.0.2.4.6-99.el7.centos.1 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-99.el7.centos.1,它被软件包 httpd-2.4.6-99.el7.centos.1.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-99.el7.centos.1.x86_64 需要
--> 正在检查事务
---> 软件包 httpd-tools.x86_64.0.2.4.6-99.el7.centos.1 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
---> 软件包 mod_wsgi.x86_64.0.3.4-18.el7 将被 安装
---> 软件包 python2-cheetah.x86_64.0.2.4.4-6.el7 将被 安装
--> 正在处理依赖关系 python-pygments,它被软件包 python2-cheetah-2.4.4-6.el7.x86_64 需要
--> 正在处理依赖关系 python2-markdown,它被软件包 python2-cheetah-2.4.4-6.el7.x86_64 需要
---> 软件包 python2-pyyaml.noarch.0.3.10-0.el7 将被 安装
--> 正在处理依赖关系 PyYAML >= 3.10,它被软件包 python2-pyyaml-3.10-0.el7.noarch 需要
---> 软件包 python2-simplejson.x86_64.0.3.11.1-1.el7 将被 安装
--> 正在检查事务
---> 软件包 PyYAML.x86_64.0.3.10-11.el7 将被 安装
--> 正在处理依赖关系 libyaml-0.so.2()(64bit),它被软件包 PyYAML-3.10-11.el7.x86_64 需要
---> 软件包 python-pygments.noarch.0.1.4-10.el7 将被 安装
--> 正在处理依赖关系 python-imaging,它被软件包 python-pygments-1.4-10.el7.noarch 需要
---> 软件包 python2-markdown.noarch.0.2.4.1-4.el7 将被 安装
--> 正在检查事务
---> 软件包 libyaml.x86_64.0.0.1.4-11.el7_0 将被 安装
---> 软件包 python-pillow.x86_64.0.2.0.0-25.gitd1c6db8.el7_9 将被 安装
--> 解决依赖关系完成

依赖关系解决

=====================================================================================================================================================================
 Package                                    架构                           版本                                                源                               大小
=====================================================================================================================================================================
正在安装:
 cobbler                                    x86_64                         2.8.5-6.el7                                         epel                            580 k
 httpd                                      x86_64                         2.4.6-99.el7.centos.1                               updates                         2.7 M
为依赖而安装:
 PyYAML                                     x86_64                         3.10-11.el7                                         base                            153 k
 httpd-tools                                x86_64                         2.4.6-99.el7.centos.1                               updates                          94 k
 libyaml                                    x86_64                         0.1.4-11.el7_0                                      base                             55 k
 mailcap                                    noarch                         2.1.41-2.el7                                        base                             31 k
 mod_wsgi                                   x86_64                         3.4-18.el7                                          base                             77 k
 python-pillow                              x86_64                         2.0.0-25.gitd1c6db8.el7_9                           updates                         440 k
 python-pygments                            noarch                         1.4-10.el7                                          base                            599 k
 python2-cheetah                            x86_64                         2.4.4-6.el7                                         epel                            342 k
 python2-markdown                           noarch                         2.4.1-4.el7                                         epel                            250 k
 python2-pyyaml                             noarch                         3.10-0.el7                                          epel                            3.0 k
 python2-simplejson                         x86_64                         3.11.1-1.el7                                        epel                            188 k

事务概要
=====================================================================================================================================================================
安装  2 软件包 (+11 依赖软件包)

总下载量:5.5 M
安装大小:21 M
Downloading packages:
(1/13): libyaml-0.1.4-11.el7_0.x86_64.rpm                                                                                                     |  55 kB  00:00:00     
(2/13): httpd-tools-2.4.6-99.el7.centos.1.x86_64.rpm                                                                                          |  94 kB  00:00:00     
(3/13): PyYAML-3.10-11.el7.x86_64.rpm                                                                                                         | 153 kB  00:00:00     
(4/13): mailcap-2.1.41-2.el7.noarch.rpm                                                                                                       |  31 kB  00:00:00     
(5/13): mod_wsgi-3.4-18.el7.x86_64.rpm                                                                                                        |  77 kB  00:00:00     
warning: /var/cache/yum/x86_64/7/epel/packages/cobbler-2.8.5-6.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
cobbler-2.8.5-6.el7.x86_64.rpm 的公钥尚未安装
(6/13): cobbler-2.8.5-6.el7.x86_64.rpm                                                                                                        | 580 kB  00:00:00     
(7/13): python2-markdown-2.4.1-4.el7.noarch.rpm                                                                                               | 250 kB  00:00:00     
(8/13): python2-pyyaml-3.10-0.el7.noarch.rpm                                                                                                  | 3.0 kB  00:00:00     
(9/13): python2-simplejson-3.11.1-1.el7.x86_64.rpm                                                                                            | 188 kB  00:00:00     
(10/13): python-pillow-2.0.0-25.gitd1c6db8.el7_9.x86_64.rpm                                                                                   | 440 kB  00:00:01     
(11/13): python2-cheetah-2.4.4-6.el7.x86_64.rpm                                                                                               | 342 kB  00:00:01     
(12/13): python-pygments-1.4-10.el7.noarch.rpm                                                                                                | 599 kB  00:00:01     
(13/13): httpd-2.4.6-99.el7.centos.1.x86_64.rpm                                                                                               | 2.7 MB  00:00:06     
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                 885 kB/s | 5.5 MB  00:00:06     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 检索密钥
导入 GPG key 0x352C64E5:
 用户ID     : "Fedora EPEL (7) <[email protected]>"
 指纹       : 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
 软件包     : epel-release-7-11.noarch (@extras)
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : python2-simplejson-3.11.1-1.el7.x86_64                                                                                                          1/13 
  正在安装    : python2-markdown-2.4.1-4.el7.noarch                                                                                                             2/13 
  正在安装    : python-pillow-2.0.0-25.gitd1c6db8.el7_9.x86_64                                                                                                  3/13 
  正在安装    : python-pygments-1.4-10.el7.noarch                                                                                                               4/13 
  正在安装    : python2-cheetah-2.4.4-6.el7.x86_64                                                                                                              5/13 
  正在安装    : mailcap-2.1.41-2.el7.noarch                                                                                                                     6/13 
  正在安装    : httpd-tools-2.4.6-99.el7.centos.1.x86_64                                                                                                        7/13 
  正在安装    : httpd-2.4.6-99.el7.centos.1.x86_64                                                                                                              8/13 
  正在安装    : mod_wsgi-3.4-18.el7.x86_64                                                                                                                      9/13 
  正在安装    : libyaml-0.1.4-11.el7_0.x86_64                                                                                                                  10/13 
  正在安装    : PyYAML-3.10-11.el7.x86_64                                                                                                                      11/13 
  正在安装    : python2-pyyaml-3.10-0.el7.noarch                                                                                                               12/13 
  正在安装    : cobbler-2.8.5-6.el7.x86_64                                                                                                                     13/13 
  验证中      : libyaml-0.1.4-11.el7_0.x86_64                                                                                                                   1/13 
  验证中      : httpd-tools-2.4.6-99.el7.centos.1.x86_64                                                                                                        2/13 
  验证中      : cobbler-2.8.5-6.el7.x86_64                                                                                                                      3/13 
  验证中      : mailcap-2.1.41-2.el7.noarch                                                                                                                     4/13 
  验证中      : PyYAML-3.10-11.el7.x86_64                                                                                                                       5/13 
  验证中      : python-pillow-2.0.0-25.gitd1c6db8.el7_9.x86_64                                                                                                  6/13 
  验证中      : httpd-2.4.6-99.el7.centos.1.x86_64                                                                                                              7/13 
  验证中      : mod_wsgi-3.4-18.el7.x86_64                                                                                                                      8/13 
  验证中      : python2-cheetah-2.4.4-6.el7.x86_64                                                                                                              9/13 
  验证中      : python2-pyyaml-3.10-0.el7.noarch                                                                                                               10/13 
  验证中      : python2-markdown-2.4.1-4.el7.noarch                                                                                                            11/13 
  验证中      : python2-simplejson-3.11.1-1.el7.x86_64                                                                                                         12/13 
  验证中      : python-pygments-1.4-10.el7.noarch                                                                                                              13/13 

已安装:
  cobbler.x86_64 0:2.8.5-6.el7                                                  httpd.x86_64 0:2.4.6-99.el7.centos.1                                                 

作为依赖被安装:
  PyYAML.x86_64 0:3.10-11.el7                     httpd-tools.x86_64 0:2.4.6-99.el7.centos.1             libyaml.x86_64 0:0.1.4-11.el7_0                             
  mailcap.noarch 0:2.1.41-2.el7                   mod_wsgi.x86_64 0:3.4-18.el7                           python-pillow.x86_64 0:2.0.0-25.gitd1c6db8.el7_9            
  python-pygments.noarch 0:1.4-10.el7             python2-cheetah.x86_64 0:2.4.4-6.el7                   python2-markdown.noarch 0:2.4.1-4.el7                       
  python2-pyyaml.noarch 0:3.10-0.el7              python2-simplejson.x86_64 0:3.11.1-1.el7              

完毕!
[root@localhost ~]# 

3.2、生成新密码

[root@localhost ~]# openssl passwd -1 'CxC666666'
$1$XHNWMeHR$774kpxlYSo1lgMV4gzRY01
[root@localhost ~]# 

3.3、修改cobbler配置文件

vim /etc/cobbler/settings

[root@centos7 ~]#vim /etc/cobbler/settings
#将101行的加密密码替换成自己生成的密码
default_password_crypted: "$1$XHNWMeHR$774kpxlYSo1lgMV4gzRY01"
#第278行next_server字段,将回环地址设置成服务器的ip地址
next_server: 172.16.12.10
#在第390行server字段,将回环地址设置成服务器的ip地址
server:172.16.12.10
#将第242行manage_dhcp的值设置为1。
manage_dhcp:1 
#将第298行的pxe_just_once的值设置为1。

3.4、重启服务,查看配置信息

 3.5、配置dhcp

vim /etc/cobbler/dhcp.template

cobbler sync

3.6、导入CentOS系统的安装文件,生成相应的YUM源 

[root@localhost ~]#mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]#cobbler import --name=centos-7-x86_64 --path=/mnt --arch=x86_64task started: 2024-01-17_141704_import
task started (id=Media import, time=Wed Jan 17 14:17:04 2024)
Found a candidate signature: breed=suse, version=opensuse15.0
Found a candidate signature: breed=suse, version=opensuse15.1
Found a candidate signature: breed=redhat, version=rhel6
Found a candidate signature: breed=redhat, version=rhel7
Found a matching signature: breed=redhat, version=rhel7
Adding distros from path /var/www/cobbler/ks_mirror/centos-7-x86_64:
creating new distro: centos-7-x86_64
trying symlink: /var/www/cobbler/ks_mirror/centos-7-x86_64 -> /var/www/cobbler/links/centos-7-x86_64
creating new profile: centos-7-x86_64
associating repos
checking for rsync repo(s)
checking for rhn repo(s)
checking for yum repo(s)
starting descent into /var/www/cobbler/ks_mirror/centos-7-x86_64 for centos-7-x86_64
processing repo at : /var/www/cobbler/ks_mirror/centos-7-x86_64
need to process repo/comps: /var/www/cobbler/ks_mirror/centos-7-x86_64
looking for /var/www/cobbler/ks_mirror/centos-7-x86_64/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/centos-7-x86_64/repodata
*** TASK COMPLETE ***
                         
  • 重启客户机,以网络方式安装即可成功
;