温馨提示×

怎样写centos cobbler脚本

小樊
39
2026-10-23 14:21:19
栏目: 智能运维

下面从概念 → 典型结构 → 示例脚本 → 注意事项逐步说明,怎样写 CentOS 下 Cobbler 自动化脚本(通常是 Shell 脚本)。


一、Cobbler 脚本能干什么

Cobbler 脚本一般用于:

  • 自动导入 CentOS 镜像
  • 创建 distro / profile
  • 添加 system(主机)
  • 配置 kickstart
  • 批量部署系统

二、脚本前准备(CentOS 环境)

yum install -y cobbler cobbler-web dhcp tftp-server httpd
systemctl enable --now cobblerd httpd tftp dhcpd
cobbler check
cobbler sync

确保:

  • /etc/cobbler/settings 配置正确
  • DHCP 由 Cobbler 管理

三、Cobbler Shell 脚本基本结构

#!/bin/bash
set -e

# 1. 变量定义
ISO_PATH="/root/CentOS-7-x86_64-DVD.iso"
DISTRO_NAME="centos7-x86_64"
PROFILE_NAME="centos7-base"
KS_PATH="/var/lib/cobbler/kickstarts/centos7.ks"

# 2. 导入镜像
cobbler import \
  --path=$ISO_PATH \
  --name=$DISTRO_NAME \
  --arch=x86_64

# 3. 创建 profile
cobbler profile add \
  --name=$PROFILE_NAME \
  --distro=$DISTRO_NAME \
  --kickstart=$KS_PATH

# 4. 添加主机
cobbler system add \
  --name=node01 \
  --profile=$PROFILE_NAME \
  --mac=00:11:22:33:44:55 \
  --ip-address=192.168.1.10

# 5. 同步
cobbler sync

四、完整示例(可直接用)

1️⃣ 自动部署 CentOS 7 脚本

#!/bin/bash
set -e

ISO="/iso/CentOS-7-x86_64-DVD.iso"
DISTRO="centos7"
PROFILE="centos7-auto"
KS="/var/lib/cobbler/kickstarts/centos7.ks"

# 导入系统
cobbler import --path=$ISO --name=$DISTRO --arch=x86_64

# 添加 profile
cobbler profile add \
  --name=$PROFILE \
  --distro=$DISTRO \
  --kickstart=$KS

# 批量添加主机
for i in {1..5}; do
  cobbler system add \
    --name=node$i \
    --profile=$PROFILE \
    --mac=52:54:00:00:00:0$i \
    --ip-address=192.168.100.$((10+i))
done

cobbler sync

五、Kickstart 示例(centos7.ks)

lang en_US.UTF-8
keyboard us
timezone Asia/Shanghai
rootpw --plaintext centos
reboot

clearpart --all --initlabel
part / --fstype=xfs --size=1 --grow
part swap --size=2048

%packages
@base
@core
%end

六、常用 Cobbler 命令速查

cobbler distro list
cobbler profile list
cobbler system list
cobbler sync
cobbler reposync

七、注意事项

✅ 脚本中加 set -e 防止错误继续执行
✅ MAC 地址必须唯一
✅ 改完配置一定要 cobbler sync
✅ CentOS 8+/Stream 不推荐 Cobbler(已停滞)


如果你需要:

  • PXE 自动装机脚本
  • Cobbler + Kickstart 全自动化
  • 多网卡 / 多系统脚本

可以告诉我你的使用场景,我可以直接帮你写完整可用脚本。

0 踩