利用Ubuntu Cobbler进行批量更新的核心思路
Cobbler本身并非专门的系统更新工具,但可通过批量部署新版本Ubuntu系统的方式实现批量更新。其核心逻辑是:将新版本Ubuntu的ISO镜像导入Cobbler,创建对应的配置文件(Profile),通过PXE引导客户端批量安装新系统,替代旧版本。
备份现有配置
备份Cobbler的关键配置文件(如/etc/cobbler/settings
、/var/lib/cobbler/kickstarts/
下的Kickstart文件),防止操作失误导致数据丢失:
sudo cp /etc/cobbler/settings /etc/cobbler/settings.bak
sudo cp -r /var/lib/cobbler/kickstarts /var/lib/cobbler/kickstarts.bak
确保基础服务正常
Cobbler依赖DHCP、TFTP、HTTP服务,需提前安装并配置:
sudo apt update && sudo apt install cobbler cobbler-web dhcp3-server tftpd-hpa xinetd
/etc/dhcp/dhcpd.conf
):指定子网、地址范围、网关、DNS,并设置filename "pxelinux.0"; next-server <Cobbler服务器IP>
(关键参数,引导客户端到Cobbler服务器)。/etc/xinetd.d/tftp
):将server_args
设置为-s /var/lib/tftpboot
(TFTP根目录)。sudo systemctl start isc-dhcp-server xinetd cobblerd
sudo systemctl enable isc-dhcp-server xinetd cobblerd
导入新版本Ubuntu ISO
将新版本Ubuntu ISO(如22.04 LTS)上传至Cobbler服务器,挂载后导入:
sudo mkdir /mnt/ubuntu-22.04
sudo mount -o loop /path/to/ubuntu-22.04.iso /mnt/ubuntu-22.04
sudo cobbler import --path /mnt/ubuntu-22.04 --name ubuntu-22.04 # 导入ISO并命名为ubuntu-22.04
sudo umount /mnt/ubuntu-22.04
导入后,Cobbler会自动将ISO中的文件复制到/var/www/cobbler/ks_mirror/ubuntu-22.04/
(HTTP服务目录),供客户端下载。
生成Kickstart文件
Kickstart文件用于自动化安装过程(如分区、用户设置、软件包选择)。可使用Cobbler自带的模板修改,或自定义:
sudo cp /var/lib/cobbler/kickstarts/ubuntu.seed /var/lib/cobbler/kickstarts/ubuntu-22.04.seed # 复制模板
sudo nano /var/lib/cobbler/kickstarts/ubuntu-22.04.seed # 编辑模板,调整分区、软件源等参数
关键参数说明:
d-i mirror/suite string focal
(指定Ubuntu版本,如22.04的代号为focal);d-i partman-auto/method string lvm
(使用LVM分区);d-i passwd/root-password-crypted string $1$abc123...
(加密的root密码,用openssl passwd -1
生成)。创建Cobbler Profile
Profile是Cobbler中连接“发行版”(导入的ISO)与“系统”的桥梁,定义安装使用的Kickstart文件:
sudo cobbler profile add --name ubuntu-22.04 --distro ubuntu-22.04 --kickstart /var/lib/cobbler/kickstarts/ubuntu-22.04.seed
其中:--name
为Profile名称(自定义),--distro
为之前导入的发行版名称(ubuntu-22.04
),--kickstart
为Kickstart文件路径。
添加客户端系统
为需要更新的客户端添加系统记录(需提前收集客户端的MAC地址):
sudo cobbler system add --name client1 --profile ubuntu-22.04 --mac 00:11:22:33:44:55 --ip-address 192.168.1.100 --subnet 255.255.255.0 --gateway 192.168.1.1 --hostname client1.example.com
参数说明:--name
为客户端名称,--profile
为之前创建的Profile名称,--mac
为客户端MAC地址(必填,用于PXE识别),--ip-address
、--subnet
、--gateway
为客户端静态IP信息(若用DHCP可省略)。
同步配置并启动批量更新
执行sync
命令将配置同步到Cobbler的数据目录(如TFTP、HTTP目录),使更改生效:
sudo cobbler sync
同步完成后,客户端通过PXE启动时,会自动从Cobbler服务器下载新版本Ubuntu的镜像文件,并按照Kickstart文件的配置完成自动化安装,实现批量更新。
/var/log/cobbler/cobbler.log
查看批量更新的进度和错误信息,便于排查问题。