目录
一、PXE介绍
1.什么是PXE
PXE,全称为"Preboot Execution Environment",即预启动执行环境,是一种网络协议和技术,允许计算机通过网络启动和安装操作系统。它通常用于在没有本地存储设备(如硬盘或光盘驱动器)的计算机上,通过网络从远程服务器或网络上的镜像来进行系统引导和安装
2. 批量部署的优点
优点:
规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质
2.1前提条件
PXE(Preboot eXcution Environment)
预启动执行环境,在操作系统之前运行服务端:
运行DHCP服务,用来分配地址、定位引导程序
运行TFTP服务,提供引导程序下载客户端:
网卡支持PXE协议
主板支持网络引导
3.PXE的工作原理
(1)网卡需要查找相关的 dhcp 服务器(获取地址时间)(2)找到后 dhcp 服务器提供 ip 地址,和引导程序( boot loader )的地址,还提供给客户机 TFTPserver 地址 (dhcp 本身不提供 tftp 服务)(3)网卡使用 tftp 客户端把引导程序加载到内存中来(4)bios 执行引导程序(5)引导程序会去 TFTP 去查找配置文件(6)根据配置文件去引导安装系统(7)系统安装过程
通俗来理解:
1.启动过程:
当计算机开机时,它会首先执行固件(如BIOS或UEFI)中的启动程序。在启动过程中,计算机会尝试获取一个IP地址,并启用网络接口
2.DHCP(动态主机配置协议):
计算机启动时,它会通过网络中的DHCP服务器请求IP地址和其他网络配置信息。DHCP服务器不仅分配IP地址给计算机,还会返回一个PXE启动服务器的IP地址和相关的引导文件路径
3.PXE启动文件获取:
计算机获取到DHCP服务器提供的PXE服务器的IP地址和引导文件路径后,会通过TFTP从PXE服务器下载PXE引导文件。这个引导文件包含了启动和安装操作系统所需的必要信息,如操作系统的内核映像和初始化镜像等
4.加载和执行引导文件:
计算机在下载完PXE引导文件后,会将其加载到内存中并执行。这些引导文件通常是操作系统安装程序或用于系统维护和恢复的工具
5.操作系统镜像获取:
一旦PXE引导文件执行,计算机会继续通过网络下载操作系统的安装或启动镜像。这个镜像可以是完整的操作系统安装程序,也可以是一个用于系统维护和故障排除的工具
6.操作系统加载和启动:
最后,计算机会加载下载的操作系统镜像,并根据镜像中的引导配置启动操作系统。这使得计算机能够从远程服务器或存储设备上安装或运行操作系统,而不需要依赖本地的启动设备如硬盘或光盘驱动器关键组件和注意事项:
PXE服务器:包括DHCP服务器和TFTP服务器,前者用于分配IP地址和提供PXE引导信息,后者用于传输PXE引导和文件和操作系统镜像
引导文件:PXE引导文件包含了操作系统启动所需的关键信息,如内核、初始化镜像和引导配置。这些文件必须能够通过TFTP协议被计算机可靠地下载和加载
网络配置:计算机必须能够在启动时访问到PXE服务器,通过网络获取所需的引导和操作系统镜像。因此,网络的稳定性和配罟正确性对PXE启动的成功至关重要
4.搭建前环境的准备
一台作为pxe服务器,一台作为裸金属客户机,绑定同一块网卡,裸金属客户机vmnet1网卡取消勾选dhcp配置
关闭selinux和防火墙
4.1安装需要的服务
yum install tftp-server vsftpd syslinux dhcp -y
4.2将配置文件模板复制到dhcp目录下
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf#将模板文件覆盖掉配置文件vim /etc/dhcp/dhcpd.conf
vim /etc/xinetd.d/tftp
rpm -ql syslinux |grep pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mount /dev/sr0 /mnt
cp initrd.img vmlinuz /var/lib/tftpboot/
然后启动服务
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7/ &
cd /var/lib/tftpboot/
mkdir pxelinux.cfgcd pxelinux.cfg/vim default
二、kickstart无人值守安装
1.kickstart概述
Kickstart 是由 Red Hat 公司开发的一种系统自动化安装工具。它允许系统管理员创建一个包含所有安装参数和配置选项的配置文件,以便在安装过程中自动化执行这些步骤,而无需进行手动操作。Kickstart文件通常包括分区设置、软件包选择、网络配置、用户账户设置等内容,它使得管理员能够快速、高效地在多台计算机上部署相同的操作系统配置。Kickstart 可以与网络引导(PXE)结合使用,实现远程和无人工干预的操作系统安装,适用于数据中心、企业服务器以及大规模部署的环境中
2.功能和特点
1.自动化安装:
Kickstart允许管理员定义一个详细的配置文件(通常称为Kickstart文件),其中包含了操作系统安装的所有必要信息,如分区设置、软件包选择、用户账户配置、网络设置等。安装过程可以完全自动化,无需用户交互
2.定制化:
通过Kickstart文件,管理员可以精确地定制每台机器的安装设置,包括安装哪些软件包、如何分配磁盘空间、配置网络参数以及执行额外的脚本或命令等。这种定制化使得大规模部署变得更加高效和一致
3.部署效率:
Kickstart可以大幅提高系统管理员的工作效率,特别是在需要部署大量相似配置的服务器或虚拟机时。它避免了手动逐台安装操作系统的繁琐过程,减少了人为错误的可能性
4.网络支持:
Kickstart支持通过网络启动安装,通常结合PXE(Preboot Execution Environment)使用,从而实现完全无人工干预的远程安装,这对于远程数据中心或大规模部署尤为重要
5.安全性和一致性:
通过使用Kickstart,管理员可以确保所有安装过程都導循相同的配置和安全标准,从而提高系统的安全性和一致性。这对于遵循公司安全政策和管理最佳实践至关重要
3.组成部分
kickstart 文件主要包括三个部分:命令段,程序包段,脚本段命令段:指明各种安装前配置,如键盘类型等命令段中的常见命令:keyboard:设定键盘类型 text: 文本安装界面lang:语言类型 network: 指定网络设置zerombr :清除mbr firewall :设置防火墙设置clearpart:清除分区 selinux :设置 selinux 设置part:创建分区 reboot :安装完自动重启rootpw: 指明 root的密码 user :安装完成后为系统创建新用户timezone:时区 url: 指明安装源程序包段:指明要安装的程序包组或程序包,不安装的程序包等%packages@^environment group : 指定环境包组,如: @^minimal-environment@group_namepackage-package%end脚本段:%pre: 安装前脚本%post: 安装后脚本
4.无人值守安装
yum install system-config-kickstart -y#安装图形化界面
4.1基本配置
4.2安装方法
4.3引导文件
4.4分区
4.5配置网卡
4.6关闭防火墙
4.7取消图形化安装
4.8预安装脚本
4.9安装后脚本
4.10保存配置文件
5. 添加配置文件
cd /var/ftp
ls #查看刚才保存的文件
vim ks.cfg
cd /var/lib/tftpboot/
ls
cd pxelinux.cfg
vim default
cd /usr/share/syslinux/
三、Cobbler
1.什么是cobbler
Cobbler是一个用于自动化和管理Linux安装的开源工具。它主要用于快速部署和管理大型计算机群集或数据中心中的服务器。Cobbler可以集成和管理多种操作系统的安装,包括各种Linux发行版以及一些其他UNIX类系统
2.功能及特点
1.自动化安装:
Cobbler允许管理员通过简单的配置文件定义系统的安装设置,包括操作系统、软件包、网络配置、分区设置等。这样可以大大简化和加快大规模服务器的部署过程
2. PXE 支持:
Cobbler可以结合PXE(Preboot Execution Environment)使用,通过网络引导来启动自动化安装过程。这对于远程服务器或大规模数据中心的操作系统部署尤为重要
3.镜像管理:
Cobbler可以管理操作系统的安装镜像,包括自动下载最新版本的镜像或本地存储的镜像。这样可以确保每次安装都使用最新的系统镜像
4.配置管理:
提供了集中管理配置的功能,管理员可以通过Cobbler管理和更新大量服务器的配文件,确保配置的一致性和准确性
5.多种操作系统支持:
Cobbler不仅支持各种Linux发行版,还可以管理其他UNIX类系统的安装,使其在混合环境中也能发挥作用
6.扩展性:
Cobbler提供了丰富的AP!和插件机制,允许管理员根据需要进行定制和扩展,以满足特定环境和要求
3.工作原理
(1)client 裸机配置了从网络启动后,开机后会广播包请求 DHCP 服务器( cobbler server )发送其分配好的一个IP(2)DHCP 服务器( cobbler server )收到请求后发送 responese ,包括其 ip 地址(3)client 裸机拿到 ip 后再向 cobbler server 发送请求 OS 引导文件的请求(4)cobbler server 告诉裸机 OS 引导文件的名字和 TFTP server 的 ip 和 port(5)client 裸机通过上面告知的 TFTP server 地址通信,下载引导文件(6)client 裸机执行执行该引导文件,确定加载信息,选择要安装的 os ,期间会再向 cobbler server 请求kickstart文件和 os image(7)cobbler server 发送请求的 kickstart 和 os iamge(8)client 裸机加载 kickstart 文件(9)client 裸机接收 os image ,安装该 os image
通俗的来理解:
1.配置管理:
管理员首先在Cobbler服务器上进行配置管理。这包括设置网络服务(如DHCP、TFTP等)、导入操作系统镜像、定义安装配置文件(Kickstart文件)等
2.PXE引导支持:
Cobbler 使用 PXE(Preboot Execution Environment)来支持自动化安装。PXE允许客户端通过网络引导从远程服务器启动操作系统安装过程
3.安装配置文件(Kickstart文件):
管理员创建和维护Kickstart文件,其中包含了安装过程中需要的各种参数和配置选项,例如分区设置、软件包选择、网络配置、用户账户等信息
4.镜像管理:
Cobbler可以管理多种操作系统的安装镜像。管理员可以选择导入操作系统的官方镜像或者自定义镜像,确保每次安装使用的是最新和正确的操作系统版本
5.客户端引导:
当客户端需要安装操作系统时,它通过网络启动并使用PXE引导来连接Cobbler服务器。客户端从Cobbler服务器获取引导信息,包括所需的操作系统镜像和Kickstart文件的位置
6.自动化安装过程:
客户端根据Cobbler提供的配置和镜像,开始自动化安装过程。这包括根据Kickstart文件的定义进行分区、安装软件包、配置网络和用户账户等操作
7.状态监控和管理:
Cobbler允许管理员监控和管理安装过程。管理员可以査看安装日志、监控安装进度,并在必要时对安装任务进行取消或重新启动
8.扩展性和定制化:
Cobbler提供了丰富的AP|和插件系统,允许管理员根据特定需求进行定制和扩展。这使得 Cobbler能够适应各种复杂和特定的部署场景
4.使用cobbler
安装相关包
yum install epel-release.noarch -yyum install cobbler dhcp httpd -ysystemctl start cobbler
openssl passwd -1 '123123'
#生成新密码,默认安装好的系统root密码为cobblervim /etc/cobbler/settings
vim /etc/cobbler/dhcp.template#修改dhcp的模版文件下面的行,用来生成dhcp的配置文件cobbler sync#自动生成dhcp配置文件并启动
下载启动的相关文件
cobbler get-loaders
ls /var/lib/cobbler/loaderstree /var/lib/tftpboot/cobbler sync
导入 CentOS 系统的安装文件,生成相应的 YUM 源[root@xyk ~]#cobbler import --name=centos-7-x86_64 --path=/mnt --arch=x86_64# 也可以在导入 yum 源的同时进行关联自定义的 kickstart 文件[root@xyk ~]#cobbler import --name=centos-7.7-x86_64 --path=/mnt -- arch=x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg[root@server ~]#du -sh /var/www/cobbler/ks_mirror/*# 设置默认安装菜单 , 这样未装系统的设备会自动从 pxe 引导启动你需要安装的系统 , 不需要再手动接显示器选了[root@xyk ~]#cobbler system add --name=default --profile=centos-7-x86_64