简介
在数据中心或实验室环境中,如果你需要同时为几十台甚至上百台服务器安装 Linux 操作系统,CloudBoot 是一个强大的解决方案。它基于 PXE(预启动执行环境)和 Kickstart 技术,能够极大简化操作系统的批量部署过程。
本文将引导初级用户,一步步搭建 CloudBoot 环境,即便你没有相关经验也能轻松上手。
前提条件
在开始之前,请准备一台运行 RHEL 6.x/7.x 或 CentOS 6.x/7.x 的服务器作为 CloudBoot 服务端。
- CPU: 64位处理器
- 内存: 至少 2GB
- 磁盘: 至少 50GB(用于存放系统镜像)
- 网络: 服务器与待安装的客户端需在同一局域网内
部署步骤
第一步:环境准备
为了确保服务正常运行,我们需要先关闭防火墙和 SELinux,避免网络连接被拦截。
在服务端执行以下命令:
1
2
3
4
5
# 停止 iptables 防火墙
service iptables stop
# 临时关闭 SELinux
setenforce 0
[!NOTE] 这是一个为了简化配置的“快速通道”。在生产环境中,你可能需要配置详细的防火墙规则。
第二步:安装 CloudBoot
- 下载 CloudBoot 安装包(RPM 格式)。
- 使用
rpm命令进行安装:
1
rpm -ivh cloudboot-x.x.x-x.x86_64.rpm
(请将文件名替换为你实际下载的版本号)
第三步:配置 DHCP 服务
CloudBoot 内置了 DHCP 服务管理,我们需要编辑配置文件来指定分配给客户端的 IP 地址范围。
编辑文件 /opt/cloudboot/etc/dhcp/dhcpd.conf:
1
vi /opt/cloudboot/etc/dhcp/dhcpd.conf
修改以下关键部分:
1
2
3
4
5
6
7
8
9
10
subnet 192.168.1.0 netmask 255.255.255.0 {
# 你的 CloudBoot 服务器 IP
next-server 192.168.1.100;
# 启动文件,保持默认即可
filename "undionly.kkpxe";
# 设置分配给客户端的 IP 范围
range 192.168.1.101 192.168.1.200;
}
请根据你的实际网络环境修改 IP 地址和子网掩码。
第四步:导入操作系统镜像
这是最关键的一步。CloudBoot 不直接读取 ISO 文件,而是需要将 ISO 里的内容复制到指定目录。
假设你要部署 CentOS 6.7 x86_64:
- 创建存放目录:
1
mkdir -p /opt/cloudboot/home/www/centos/6.7/os/x86_64/
- 挂载你的 ISO 镜像文件:
1
mount -o loop /path/to/CentOS-6.7-x86_64-bin-DVD1.iso /mnt - 将镜像内容同步到刚才创建的目录:
1
rsync -a /mnt/ /opt/cloudboot/home/www/centos/6.7/os/x86_64/
[!TIP] 目录结构
.../centos/6.7/os/x86_64/必须严格遵守,否则客户端可能无法找到安装源。
第五步:启动服务
一切准备就绪,启动 CloudBoot 服务:
1
service cloudboot start
这个命令会自动启动 DHCP、TFTP、HTTP 等所有依赖服务。
第六步:客户端安装
- 开启需要安装系统的客户端服务器。
- 进入 BIOS 设置,将网络启动 (Network Boot / PXE Boot) 设置为第一启动项。
- 保存退出。
机器重启后,会自动从 CloudBoot 服务器获取 IP 地址,并进入 CloudBoot 的启动菜单。随后,根据屏幕提示选择你刚才导入的操作系统即可开始全自动安装。
总结
通过 CloudBoot,我们可以快速搭建一个企业级的批量装机平台。虽然相比 iVentoy 它的配置稍微多几步(如手动解压 ISO),但它提供了更灵活的定制能力,非常适合需要通过 Kickstart 脚本进行深度自动化配置的场景。
参考资料: