在Ubuntu上使用Cobbler设置镜像的完整步骤
在Cobbler服务器上执行以下命令,安装Cobbler核心服务、DHCP/TFTP服务器及镜像同步工具:
sudo apt update
sudo apt install -y cobbler cobbler-web dhcp3-server tftpd-hpa xinetd debmirror
cobbler:核心管理工具;dhcp3-server:为PXE启动提供IP地址分配;tftpd-hpa:传输引导文件(如pxelinux.0);xinetd:管理TFTP服务;debmirror:用于高效同步Ubuntu官方镜像。sudo systemctl start cobblerd
sudo systemctl enable cobblerd
运行以下命令检查系统配置是否满足要求(如网络接口、默认密码等):
sudo cobbler check
/etc/cobbler/settings文件,修改该字段(可使用openssl passwd -6生成加密密码);manage_dhcp设置为1(让Cobbler自动生成DHCP配置)。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; # 可分配的IP范围
option routers 192.168.1.1; # 默认网关
option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS服务器
filename "pxelinux.0"; # PXE引导文件名
next-server 192.168.1.10; # Cobbler服务器IP(需替换为实际IP)
}
修改完成后,同步DHCP配置:
sudo cobbler sync
此时Cobbler会自动更新/etc/dhcp/dhcpd.conf文件,无需手动编辑。
有两种方式导入Ubuntu镜像:手动下载ISO并导入或使用debmirror同步官方仓库。
wget https://releases.ubuntu.com/20.04/ubuntu-20.04.6-live-server-amd64.iso -O /tmp/ubuntu-20.04.iso
sudo cobbler import --path=/tmp/ubuntu-20.04.iso --name=ubuntu-20.04 --arch=x86_64
--path:ISO文件路径;--name:镜像名称(自定义,后续Profile会引用);--arch:架构(x86_64或amd64)。debmirror同步官方仓库若需要完整的Ubuntu仓库(包含软件包),可使用debmirror工具:
sudo debmirror -a amd64 --method http --dist focal --section main,restricted,universe,multiverse --host archive.ubuntu.com --root=ubuntu /var/www/ubuntu-mirror
-a amd64:仅同步64位架构;--dist focal:Ubuntu 20.04代号;--section:同步的仓库 section(main/restricted/universe/multiverse);/var/www/ubuntu-mirror:本地镜像存储路径。Profile定义了系统安装的具体配置(如内核、initrd、Kickstart文件),执行以下命令创建:
sudo cobbler profile add --name=ubuntu-20.04-profile --distro=ubuntu-20.04 --kickstart=/var/lib/cobbler/kickstarts/ubuntu-20.04.seed
--name:Profile名称(自定义);--distro:之前导入的镜像名称(如ubuntu-20.04);--kickstart:Kickstart文件路径(用于自动化安装,需提前创建)。Kickstart文件用于自动化安装过程(如分区、用户设置、软件包安装),Cobbler提供默认模板:
sudo cp /var/lib/cobbler/kickstarts/ubuntu.seed /var/lib/cobbler/kickstarts/ubuntu-20.04.seed
编辑模板文件(如/var/lib/cobbler/kickstarts/ubuntu-20.04.seed),修改以下关键参数:
# 分区配置
part /boot --fstype=ext4 --size=500
part swap --fstype=swap --size=1024
part / --fstype=ext4 --grow --size=1
# 网络配置
$SNIPPET('network_config')
# 用户设置
user --name=admin --password=$DEFAULT_PASSWORD --groups=adm,sudo
# 软件包选择
%packages
openssh-server vim net-tools
%end
# 后安装脚本
%post
echo "系统安装完成!" > /etc/motd
%end
$SNIPPET('network_config'):Cobbler自动填充网络配置;$DEFAULT_PASSWORD:使用Cobbler中设置的默认密码(需与/etc/cobbler/settings中的default_password_crypted一致)。为目标机器创建系统记录,关联Profile和MAC地址:
sudo cobbler system add --name=target-machine --profile=ubuntu-20.04-profile --interface=eth0 --mac=AA:BB:CC:DD:EE:FF --netboot-enabled=true
--name:目标机器名称(自定义);--profile:之前创建的Profile名称;--interface:网络接口(如eth0);--mac:目标机器的MAC地址(需替换为实际地址);--netboot-enabled=true:启用PXE启动。所有配置完成后,执行同步命令将更改应用到TFTP、DHCP等服务:
sudo cobbler sync
同步完成后,Cobbler会将引导文件(如pxelinux.0、内核、initrd)放置到TFTP目录(默认/var/lib/tftpboot),并更新DHCP配置。
通过以上步骤,即可在Ubuntu上使用Cobbler成功设置Ubuntu镜像,并实现自动化部署。