温馨提示×

Cobbler在Ubuntu中如何设置镜像

小樊
40
2025-10-25 16:50:10
栏目: 智能运维

在Ubuntu上使用Cobbler设置镜像的完整步骤

1. 环境准备

  • 准备一台Ubuntu服务器作为Cobbler服务器(建议使用Ubuntu 20.04及以上版本);
  • 确保服务器网络畅通,能访问互联网(用于下载Ubuntu ISO镜像);
  • 准备目标机器(用于测试PXE安装),并确保其网卡支持PXE启动。

2. 安装Cobbler及依赖包

在Cobbler服务器上执行以下命令,安装Cobbler核心服务、DHCP/TFTP服务器及镜像同步工具:

sudo apt update
sudo apt install -y cobbler cobbler-web dhcp3-server tftpd-hpa xinetd debmirror
  • cobbler:核心管理工具;
  • dhcp3-server:为PXE启动提供IP地址分配;
  • tftpd-hpa:传输引导文件(如pxelinux.0);
  • xinetd:管理TFTP服务;
  • debmirror:用于高效同步Ubuntu官方镜像。

3. 配置Cobbler基础参数

3.1 启动并启用Cobbler服务

sudo systemctl start cobblerd
sudo systemctl enable cobblerd

3.2 检查Cobbler配置

运行以下命令检查系统配置是否满足要求(如网络接口、默认密码等):

sudo cobbler check
  • 若提示“default_password_crypted未设置”,需编辑/etc/cobbler/settings文件,修改该字段(可使用openssl passwd -6生成加密密码);
  • 若提示“manage_dhcp未开启”,需将manage_dhcp设置为1(让Cobbler自动生成DHCP配置)。

4. 配置DHCP服务

Cobbler可通过内置模板自动生成DHCP配置,需修改/etc/cobbler/dhcp.template文件,调整以下参数(根据实际网络环境修改):

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;          # 可分配的IP范围
    option routers 192.168.1.1;                 # 默认网关
    option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS服务器
    filename "pxelinux.0";                        # PXE引导文件名
    next-server 192.168.1.10;                     # Cobbler服务器IP(需替换为实际IP)
}

修改完成后,同步DHCP配置:

sudo cobbler sync

此时Cobbler会自动更新/etc/dhcp/dhcpd.conf文件,无需手动编辑。

5. 导入Ubuntu镜像

有两种方式导入Ubuntu镜像:手动下载ISO并导入使用debmirror同步官方仓库

5.1 手动导入ISO镜像

  1. 下载Ubuntu ISO镜像(如20.04 LTS):
    wget https://releases.ubuntu.com/20.04/ubuntu-20.04.6-live-server-amd64.iso -O /tmp/ubuntu-20.04.iso
    
  2. 导入ISO到Cobbler:
    sudo cobbler import --path=/tmp/ubuntu-20.04.iso --name=ubuntu-20.04 --arch=x86_64
    
    • --path:ISO文件路径;
    • --name:镜像名称(自定义,后续Profile会引用);
    • --arch:架构(x86_64amd64)。

5.2 使用debmirror同步官方仓库

若需要完整的Ubuntu仓库(包含软件包),可使用debmirror工具:

sudo debmirror -a amd64 --method http --dist focal --section main,restricted,universe,multiverse --host archive.ubuntu.com --root=ubuntu /var/www/ubuntu-mirror
  • -a amd64:仅同步64位架构;
  • --dist focal:Ubuntu 20.04代号;
  • --section:同步的仓库 section(main/restricted/universe/multiverse);
  • /var/www/ubuntu-mirror:本地镜像存储路径。

6. 创建Cobbler Profile

Profile定义了系统安装的具体配置(如内核、initrd、Kickstart文件),执行以下命令创建:

sudo cobbler profile add --name=ubuntu-20.04-profile --distro=ubuntu-20.04 --kickstart=/var/lib/cobbler/kickstarts/ubuntu-20.04.seed
  • --name:Profile名称(自定义);
  • --distro:之前导入的镜像名称(如ubuntu-20.04);
  • --kickstart:Kickstart文件路径(用于自动化安装,需提前创建)。

7. 配置Kickstart文件

Kickstart文件用于自动化安装过程(如分区、用户设置、软件包安装),Cobbler提供默认模板:

sudo cp /var/lib/cobbler/kickstarts/ubuntu.seed /var/lib/cobbler/kickstarts/ubuntu-20.04.seed

编辑模板文件(如/var/lib/cobbler/kickstarts/ubuntu-20.04.seed),修改以下关键参数:

# 分区配置
part /boot --fstype=ext4 --size=500
part swap --fstype=swap --size=1024
part / --fstype=ext4 --grow --size=1

# 网络配置
$SNIPPET('network_config')

# 用户设置
user --name=admin --password=$DEFAULT_PASSWORD --groups=adm,sudo

# 软件包选择
%packages
openssh-server vim net-tools
%end

# 后安装脚本
%post
echo "系统安装完成!" > /etc/motd
%end
  • $SNIPPET('network_config'):Cobbler自动填充网络配置;
  • $DEFAULT_PASSWORD:使用Cobbler中设置的默认密码(需与/etc/cobbler/settings中的default_password_crypted一致)。

8. 添加目标系统

为目标机器创建系统记录,关联Profile和MAC地址:

sudo cobbler system add --name=target-machine --profile=ubuntu-20.04-profile --interface=eth0 --mac=AA:BB:CC:DD:EE:FF --netboot-enabled=true
  • --name:目标机器名称(自定义);
  • --profile:之前创建的Profile名称;
  • --interface:网络接口(如eth0);
  • --mac:目标机器的MAC地址(需替换为实际地址);
  • --netboot-enabled=true:启用PXE启动。

9. 同步Cobbler配置

所有配置完成后,执行同步命令将更改应用到TFTP、DHCP等服务:

sudo cobbler sync

同步完成后,Cobbler会将引导文件(如pxelinux.0、内核、initrd)放置到TFTP目录(默认/var/lib/tftpboot),并更新DHCP配置。

10. 测试PXE安装

  1. 将目标机器设置为PXE启动(进入BIOS/UEFI,优先选择PXE启动);
  2. 目标机器通过网络从Cobbler服务器获取IP地址,加载引导文件;
  3. 自动进入Ubuntu安装界面,按照Kickstart文件的配置完成无人值守安装。

通过以上步骤,即可在Ubuntu上使用Cobbler成功设置Ubuntu镜像,并实现自动化部署。

0