ubuntu

如何利用Ubuntu Cobbler进行批量更新

小樊
43
2025-09-30 07:37:05
栏目: 智能运维

利用Ubuntu Cobbler进行批量更新的核心思路
Cobbler本身并非专门的系统更新工具,但可通过批量部署新版本Ubuntu系统的方式实现批量更新。其核心逻辑是:将新版本Ubuntu的ISO镜像导入Cobbler,创建对应的配置文件(Profile),通过PXE引导客户端批量安装新系统,替代旧版本。

一、准备工作

  1. 备份现有配置
    备份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
    
  2. 确保基础服务正常
    Cobbler依赖DHCP、TFTP、HTTP服务,需提前安装并配置:

    • 安装组件:sudo apt update && sudo apt install cobbler cobbler-web dhcp3-server tftpd-hpa xinetd
    • 配置DHCP(编辑/etc/dhcp/dhcpd.conf):指定子网、地址范围、网关、DNS,并设置filename "pxelinux.0"; next-server <Cobbler服务器IP>(关键参数,引导客户端到Cobbler服务器)。
    • 配置TFTP(编辑/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
      
  3. 导入新版本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服务目录),供客户端下载。

二、创建批量更新配置文件

  1. 生成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生成)。
  2. 创建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文件路径。

三、批量部署新系统

  1. 添加客户端系统
    为需要更新的客户端添加系统记录(需提前收集客户端的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可省略)。

  2. 同步配置并启动批量更新
    执行sync命令将配置同步到Cobbler的数据目录(如TFTP、HTTP目录),使更改生效:

    sudo cobbler sync
    

    同步完成后,客户端通过PXE启动时,会自动从Cobbler服务器下载新版本Ubuntu的镜像文件,并按照Kickstart文件的配置完成自动化安装,实现批量更新。

四、注意事项

0
看了该问题的人还看了