简介

在数据中心或实验室环境中,如果你需要同时为几十台甚至上百台服务器安装 Linux 操作系统,CloudBoot 是一个强大的解决方案。它基于 PXE(预启动执行环境)和 Kickstart 技术,能够极大简化操作系统的批量部署过程。

本文将引导初级用户,一步步搭建 CloudBoot 环境,即便你没有相关经验也能轻松上手。

前提条件

在开始之前,请准备一台运行 RHEL 6.x/7.xCentOS 6.x/7.x 的服务器作为 CloudBoot 服务端。

  • CPU: 64位处理器
  • 内存: 至少 2GB
  • 磁盘: 至少 50GB(用于存放系统镜像)
  • 网络: 服务器与待安装的客户端需在同一局域网内

部署步骤

第一步:环境准备

为了确保服务正常运行,我们需要先关闭防火墙和 SELinux,避免网络连接被拦截。

在服务端执行以下命令:

1
2
3
4
5
# 停止 iptables 防火墙
service iptables stop

# 临时关闭 SELinux
setenforce 0

[!NOTE] 这是一个为了简化配置的“快速通道”。在生产环境中,你可能需要配置详细的防火墙规则。

第二步:安装 CloudBoot

  1. 下载 CloudBoot 安装包(RPM 格式)。
  2. 使用 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. 创建存放目录:
    1
    
    mkdir -p /opt/cloudboot/home/www/centos/6.7/os/x86_64/
    
  2. 挂载你的 ISO 镜像文件:
    1
    
    mount -o loop /path/to/CentOS-6.7-x86_64-bin-DVD1.iso /mnt
    
  3. 将镜像内容同步到刚才创建的目录:
    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 等所有依赖服务。

第六步:客户端安装

  1. 开启需要安装系统的客户端服务器。
  2. 进入 BIOS 设置,将网络启动 (Network Boot / PXE Boot) 设置为第一启动项。
  3. 保存退出。

机器重启后,会自动从 CloudBoot 服务器获取 IP 地址,并进入 CloudBoot 的启动菜单。随后,根据屏幕提示选择你刚才导入的操作系统即可开始全自动安装。

总结

通过 CloudBoot,我们可以快速搭建一个企业级的批量装机平台。虽然相比 iVentoy 它的配置稍微多几步(如手动解压 ISO),但它提供了更灵活的定制能力,非常适合需要通过 Kickstart 脚本进行深度自动化配置的场景。

参考资料