温馨提示×

如何自定义Debian Cobbler的安装选项

小樊
34
2025-12-14 03:03:29
栏目: 智能运维

自定义 Debian Cobbler 安装选项

一 核心思路与准备

  • 通过 Kickstart(preseed) 定义安装参数,关联到 Profile/System,必要时用 Snippet 复用网络、分区等片段。
  • 使用 cobbler import 导入 Debian ISO 生成 Distro/Profile,或手动添加 Distro 后创建 Profile 并绑定 Kickstart。
  • 修改 DHCP/TFTP 模板与 Cobbler 设置,执行 cobbler checkcobbler sync 使配置生效。
  • 常用目录与命令:
    • 目录:/var/lib/cobbler/kickstarts(Kickstart 模板)、/var/www/cobbler/ks_mirror(导入镜像)、/var/lib/cobbler/loaders(引导程序)。
    • 命令:cobbler checkcobbler importcobbler profile editcobbler system addcobbler sync

二 创建并关联 Kickstart preseed

  • 准备 Kickstart(Debian 使用 preseed,文件后缀通常为 .seed),示例模板要点:
    # 本地化
    d-i debian-installer/locale string en_US.UTF-8
    d-i keyboard-configuration/xkb-keymap select us
    
    # 网络(DHCP 示例)
    d-i netcfg/choose_interface select auto
    d-i netcfg/get_hostname string debian-host
    d-i netcfg/get_domain string local
    
    # 镜像源(使用 Cobbler 变量)
    d-i mirror/country string manual
    d-i mirror/http/hostname string $http_server
    d-i mirror/http/directory string $tree
    d-i mirror/http/proxy string
    
    # 账户与认证
    d-i passwd/root-login boolean true
    d-i passwd/root-password-crypted password $6$DW7CxLkSBeC9.k.k3$S8G9s3/Y5LJ4dio....S5GS78p2laxALxaJ.lCN9tzKB1zIpYz38Fs9/
    d-i passwd/make-user boolean false
    
    # 时钟与时区
    d-i clock-setup/utc boolean true
    d-i time/zone string UTC
    
    # 分区(示例:全盘清空后 LVM)
    d-i partman-auto/method string lvm
    d-i partman-lvm/device_remove_lvm boolean true
    d-i partman-auto/purge_lvm_from_device boolean true
    d-i partman-auto/choose_recipe select atomic
    d-i partman-partitioning/confirm_write_new_label boolean true
    d-i partman/confirm boolean true
    d-i partman/confirm_nooverwrite boolean true
    
    # 包选择(最小化 + 常用工具)
    tasksel tasksel/first multiselect standard, ssh-server
    d-i pkgsel/include string vim htop curl
    
    # 引导加载器
    d-i grub-installer/only_debian boolean true
    d-i grub-installer/with_other_os boolean true
    
    # 完成安装后动作
    d-i finish-install/reboot_in_progress note
    
    • 说明:
      • 使用 $http_server$tree 等变量,Cobbler 会在安装时自动替换为实际值(HTTP 源与镜像目录)。
      • 密码可使用 rootpw --iscrypted 生成加密串后填入 preseed 的 root 密码字段(上例为已加密示例)。

三 导入镜像并绑定安装选项

  • 导入 ISO 并创建 Profile(自动生成 Distro/Profile):
    sudo cobbler import --path=/tmp/debian-12.0.0-amd64/ --name=debian-12-amd64 --arch=amd64
    sudo cobbler profile edit \
      --name=debian-12-amd64 \
      --kickstart=/var/lib/cobbler/kickstarts/debian-12.seed \
      --kopts="netcfg/choose_interface=auto"
    
  • 手动添加 Distro 并创建 Profile(可选,便于精确控制内核参数与路径):
    sudo cobbler distro add \
      --name=debian-12-amd64 \
      --arch=amd64 \
      --kernel=/var/www/cobbler/ks_mirror/debian-12-amd64/install.amd/vmlinuz \
      --initrd=/var/www/cobbler/ks_mirror/debian-12-amd64/install.amd/initrd.gz
    sudo cobbler profile add \
      --name=debian-12-custom \
      --distro=debian-12-amd64 \
      --kickstart=/var/lib/cobbler/kickstarts/debian-12.seed
    
  • 为单台主机定制(System 级覆盖):
    sudo cobbler system add \
      --name=host01 \
      --profile=debian-12-custom \
      --mac=00:11:22:33:44:55 \
      --ip=192.168.1.100 \
      --subnet=255.255.255.0 \
      --gateway=192.168.1.1 \
      --hostname=host01.local \
      --interface=eth0 \
      --bootproto=static
    
  • 使配置生效:
    sudo cobbler check
    sudo cobbler sync
    
    • 说明:
      • –kopts 可追加内核启动参数(如 console、ip= 等),用于临时覆盖全局默认。
      • 主机级(System)设置优先级高于 Profile,适合对单台机器做差异化。

四 网络引导与 DHCP 模板

  • 确保 /etc/cobbler/settings 中关键项指向本机:
    • server: Cobbler 服务器地址
    • next_server: TFTP 地址(通常与 server 一致)
    • 可按需开启 manage_dhcp: 1 由 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;
        option routers 192.168.1.1;
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        filename "pxelinux.0";
        next-server 192.168.1.2;   # Cobbler 服务器 IP
    }
    
  • 应用变更并重启相关服务:
    sudo cobbler sync
    sudo systemctl restart isc-dhcp-server   # 或 dnsmasq,取决于你的选择
    
    • 说明:
      • manage_dhcp=1,修改模板后执行 cobbler sync 会自动分发 DHCP 配置。

五 常用自定义场景与排错

  • 常用场景
    • 使用 Snippet 复用网络配置(在 preseed 中引用:$SNIPPET(‘network_config’)),在 /var/lib/cobbler/snippets/ 中维护片段,便于多 Profile 共享。
    • 自定义 内核参数:通过 –kopts 设置,例如 console、earlyprintk、ip= 等,用于调试或特殊硬件环境。
    • 镜像源与变量:在 preseed 中使用 $http_server$tree 指向 Cobbler 提供的 HTTP 安装源与镜像目录,避免硬编码。
  • 排错要点
    • 执行 cobbler check 逐项修复提示问题;每次修改后执行 cobbler sync 同步到 TFTP/HTTP 目录。
    • 检查 /var/log/cobbler/cobbler.log 与安装日志,定位 Kickstart 执行阶段失败原因。
    • 确认 /var/lib/cobbler/loaders 下存在 pxelinux.0 等引导文件;若缺失,安装 syslinux 并拷贝相关文件到该目录。

0