如何利用Ubuntu Cobbler进行批量安装
导读:Ubuntu Cobbler 批量安装实操指南 一 架构与准备 组件与网络:部署 Cobbler Server(提供 DHCP/TFTP/HTTP)、准备 Ubuntu Server ISO、规划 PXE 网段与 TFTP/HTTP 访问...
Ubuntu Cobbler 批量安装实操指南
一 架构与准备
- 组件与网络:部署 Cobbler Server(提供 DHCP/TFTP/HTTP)、准备 Ubuntu Server ISO、规划 PXE 网段与 TFTP/HTTP 访问地址。同一二层网段内避免多个 DHCP 服务冲突。
- 主机环境建议:选择 CentOS 7/8、Rocky Linux 9 或 Ubuntu Server 作为 Cobbler 服务器;确保磁盘空间可容纳镜像与仓库。
- 基础服务:安装并启用 cobblerd、httpd、tftp、dhcp(或交由 Cobbler 管理)、必要时安装 cobbler-web 便于可视化。
- 安全与网络:测试环境可临时关闭 SELinux/防火墙 或放行 DHCP(67/68)、TFTP(69)、HTTP(80);生产环境按最小权限配置。
二 安装与初始化 Cobbler
- 安装软件包(示例为 CentOS/RHEL 系):
- 安装:yum install -y cobbler cobbler-web dhcp tftp-server httpd pykickstart xinetd
- 启动:systemctl start cobblerd httpd & & systemctl enable cobblerd httpd
- 基础配置(/etc/cobbler/settings):
- 设置 server 与 next_server 为 Cobbler 主机 IP(如:192.168.1.10)
- 启用 DHCP 管理:manage_dhcp: 1
- 设置 root 默认密码(SHA-512 示例):先生成密文
- CentOS/RHEL:openssl passwd -1 ‘YourPassword’
- Rocky/新环境:mkpasswd -m sha-512(需安装 expect/mkpasswd)
- 将密文填入:default_password_crypted
- 引导加载器与模板:
- 获取引导文件:cobbler get-loaders
- 启用 TFTP:/etc/xinetd.d/tftp → disable = no,重启 xinetd
- 配置 DHCP 模板(/etc/cobbler/dhcp.template),示例:
- subnet 192.168.1.0 netmask 255.255.255.0 {
- option routers 192.168.1.1;
- range dynamic-bootp 192.168.1.100 192.168.1.200;
- filename “pxelinux.0”; next-server 192.168.1.10;
- }
- subnet 192.168.1.0 netmask 255.255.255.0 {
- 检查与同步:
- 自检:cobbler check(逐项修复告警)
- 同步:cobbler sync(使 DHCP/TFTP/HTTP 生效)
三 导入 Ubuntu 镜像与创建 Profile
- 挂载 ISO 并导入:
- 挂载:mount -o loop /path/ubuntu-22.04.5-server-amd64.iso /mnt
- 导入:cobbler import --name=UBUNTU22045 --path=/mnt --arch=x86_64
- 导入后生成 Distro 与 Profile(可用 cobbler distro list / profile list 查看)
- 准备 Preseed(Ubuntu 传统 debian-installer 自动安装应答文件):
- 示例片段(/var/lib/cobbler/kickstarts/ubuntu22045.seed):
- d-i debian-installer/locale string en_US.UTF-8
- d-i console-setup/ask_detect boolean false
- d-i keyboard-configuration/layoutcode string us
- d-i netcfg/choose_interface select auto
- d-i mirror/http/hostname string $http_server
- d-i mirror/http/directory string /cobbler/ks_mirror/UBUNTU22045-x86_64
- d-i partman-auto/method string regular
- d-i partman-auto/disk string /dev/sda
- d-i partman-auto/expert_recipe select boot-root :: 100000 80 100000 ext4 $bootable{ } $primary{ } method{ format } format{ } use_filesystem{ } filesystem{ ext4 } mountpoint{ / } . 102 60 1000 linux-swap $primary{ } method{ swap } format{ } .
- d-i partman/confirm_write_new_label boolean true
- d-i partman/confirm boolean true
- d-i pkgsel/include string openssh-server
- d-i grub-installer/bootdev string /dev/sda
- d-i finish-install/reboot_in_progress note
- 示例片段(/var/lib/cobbler/kickstarts/ubuntu22045.seed):
- 绑定应答文件到 Profile:
- 方式一(导入时绑定):cobbler import … --autoinstall /var/lib/cobbler/kickstarts/ubuntu22045.seed
- 方式二(导入后绑定):cobbler profile edit --name=UBUNTU22045-x86_64 --kickstart=/var/lib/cobbler/kickstarts/ubuntu22045.seed
- 同步:cobbler sync
四 针对不同 Ubuntu 版本的关键差异
- Ubuntu 22.04/24.04(Subiquity + cloud-init 自动安装)
- 传统 preseed 仍可用,但更推荐 autoinstall/cloud-init。创建模板与片段(示例):
- /var/lib/cobbler/templates/cloud-init_user-data(核心片段):
- #cloud-config
- autoinstall:
- version: 1
- apt:
- preserve_sources_list: true
- primary: [{ arches: [amd64], uri: http://$http_server/cblr/links/$distro} ]
- identity:
- password: $6$… # 使用 mkpasswd -m sha-512 生成
- username: ubuntu
- keyboard: { layout: us}
- locale: en_US.UTF-8
- ssh: { allow-pw: true, install-server: true}
- storage: { layout: { name: lvm, sizing-policy: all} }
- late-commands:
- wget -O /target/tmp/autoinstall-user-data.yaml http://$http_server/cblr/svc/op/autoinstall/profile/UBUNTU22045-x86_64
- chroot /target /bin/bash -s ssh-keygen -t rsa -b 2048 -N “” -f /root/.ssh/id_rsa
- autoinstall:
- #cloud-config
- 同步后,PXE 引导将自动获取 cloud-init 配置完成无人值守安装。
- /var/lib/cobbler/templates/cloud-init_user-data(核心片段):
- 传统 preseed 仍可用,但更推荐 autoinstall/cloud-init。创建模板与片段(示例):
- Ubuntu 14.04–20.04(传统 debian-installer + preseed)
- 使用 preseed 应答文件,注意内核启动参数需显式指定 url=…/ks/profile/< profile_name> 以下载 kickstart;必要时在 PXE 配置里设置 ksdevice=bootif 与 dhcp_timeout,提升 AD/复杂网络下的 DHCP 成功率。
五 批量部署与验证
- 批量方式
- 按 Profile 批量:客户端设置为 PXE 优先启动,上电后将自动匹配 Profile 并安装。
- 按 System 精确控制(推荐用于带外管理/多网口服务器):
- 添加系统:cobbler system add --name=node01 --profile=UBUNTU22045-x86_64 --mac=AA:BB:CC:DD:EE:FF
- 同步:cobbler sync(必要时为 system 单独设置 hostname、IP、网关等)
- 启动与验收
- 客户端 BIOS 启动顺序:Network PXE → HDD
- 观察 /var/log/cobbler/ 与 /var/www/cobbler/ks_mirror/ 访问日志,确认下载 preseed/autoinstall 与安装源是否正常
- 安装完成后登录验证:默认用户 ubuntu/root、网络连通性、分区与软件包是否符合预期
- 常见问题排查
- DHCP 失败:确认 next-server 与 filename “pxelinux.0” 正确;在复杂网络增加 dhcp_timeout;同一网段避免多 DHCP
- 找不到安装源:核对 mirror/http/hostname 与 directory 是否指向 $http_server/cobbler/ks_mirror/
- 引导卡住:检查 /var/lib/tftpboot/pxelinux.cfg/default 内核与 initrd 路径、以及是否成功 cobbler sync
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何利用Ubuntu Cobbler进行批量安装
本文地址: https://pptw.com/jishu/773658.html
