Ubuntu Cobbler使用 Kickstart 文件
一 前置准备
- 安装组件与基础配置:在 Ubuntu 上安装 cobbler cobbler-web tftpd-hpa xinetd,启动服务后执行 cobbler check 完成自检;在 /etc/cobbler/settings 中设置 server(Cobbler 服务器 IP)、next_server(TFTP IP)、以及 default_password_crypted(用命令生成,如:echo “密码” | openssl passwd -1 -stdin)。导入发行版镜像后,Cobbler 会自动在 /var/www/cobbler/ks_mirror/<发行版名>/ 下准备安装树,供安装器通过 $tree 访问。Kickstart 文件建议统一放在 /var/lib/cobbler/kickstarts/。完成配置后执行 cobbler sync 使变更生效。
二 准备与放置 Kickstart 文件
- 存放路径:将自定义的 Kickstart 放到 /var/lib/cobbler/kickstarts/(例如:ubuntu20.04.ks)。该目录是 Cobbler 默认读取与管理的位置,便于后续与 profile 绑定与版本管理。
三 将 Kickstart 绑定到 Profile 并生效
- 绑定方式:导入镜像后会生成对应的 distro 与 profile(如:ubuntu-20.04-x86_64)。使用以下任一方式将 Kickstart 绑定到目标 profile:
- 新建并绑定:cobbler profile add --name ubuntu-20.04-x86_64 --distro ubuntu-20.04-x86_64 --kickstart /var/lib/cobbler/kickstarts/ubuntu20.04.ks
- 编辑已有 profile:cobbler profile edit --name ubuntu-20.04-x86_64 --kickstart /var/lib/cobbler/kickstarts/ubuntu20.04.ks
- 使配置生效:执行 cobbler sync,Cobbler 会将内核、initrd 与 Kickstart 的访问入口同步到 /var/lib/tftpboot/ 及 Web 目录,供 PXE 引导使用。
四 PXE 引导与内核参数要点
- 菜单与参数示例(位于 /var/lib/tftpboot/pxelinux.cfg/default 的对应 LABEL 段):
- kernel /images/ubuntu-20.04-x86_64/linux
- append initrd=/images/ubuntu-20.04-x86_64/initrd.gz ks=http://<cobbler_ip>/cblr/svc/op/ks/profile/ubuntu-20.04-x86_64 ksdevice=bootif text
- 关键说明:
- 指定网卡建议用 ksdevice=bootif(按 PXE 启动网卡自动选择),不要将网卡名写死为 eth0/ens33 等,避免不同机型不一致导致失败。
- 在 AD 或复杂 DHCP 环境,建议在 append 行增加 netcfg/dhcp_timeout=120 提升获取地址成功率。
- 使用 cobbler sync 同步后,客户端从网络启动即可自动获取 Kickstart 并开始无人值守安装。
五 Ubuntu 使用 Kickstart 与 Preseed 的选择
- 对于 Ubuntu Server/Desktop,社区与实践中更常见的是使用 Debian 风格的 preseed(.seed) 文件配合 Cobbler 的 url 方式自动安装;若你已准备好 kickstart(.cfg) 并希望沿用,也可按上文步骤绑定到 profile 使用。需要注意的是,部分网络参数(如指定网卡)在 preseed 中不被识别,通常应写入 PXE 的 append 行(如 ksdevice=bootif 与 dhcp_timeout)以确保安装器正确获取网络与 Kickstart 内容。