温馨提示×

centos cobbler怎样实现定制化安装

小樊
34
2025-12-13 15:22:15
栏目: 智能运维

CentOS 下使用 Cobbler 实现定制化安装

一 核心思路与对象

  • 通过组合三类对象实现分层定制:distros(发行版镜像)profiles(应答文件与内核参数)systems(按主机粒度定制,如 MAC/IP/主机名)。常用命令包括:cobbler import(导入镜像)、cobbler profile list/report/edit(管理应答文件与内核参数)、cobbler system add(按主机定制)、cobbler sync(使配置生效)。Kickstart 文件默认存放于:/var/lib/cobbler/kickstarts/。PXE 菜单模板:/etc/cobbler/pxe/pxedefault.template

二 快速上手步骤

  1. 导入发行版镜像
    挂载 ISO 后导入,生成对应的 distro 与默认 profile
    mount /dev/cdrom /mnt
    cobbler import --path=/mnt --name=CentOS-7.9-x86_64 --arch=x86_64
  2. 准备 Kickstart 应答文件
    复制或编辑默认模板,示例要点:
    • 安装源使用内置变量:url --url=$tree
    • 文本安装:text;语言与键盘:lang en_US.UTF-8keyboard us
    • 分区示例:/boot xfs 1Gswap 1G/ 剩余空间(可按需改为 LVM/RAID)
    • 包组与常用工具:如 @developmentvimwgetgitnet-tools
    • 安装后脚本:%post 中可禁用不需要的服务、注册资产、配置仓库等
  3. 绑定应答文件到 Profile
    cobbler profile edit --name=CentOS-7.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7-custom.ks
  4. 定制内核参数(可选)
    例如使用传统网卡名:cobbler profile edit --name=CentOS-7.9-x86_64 --kopts=‘net.ifnames=0 biosdevname=0’
  5. 按主机定制(可选,优先级高于 Profile)
    获取客户端 MAC,为其创建 system
    cobbler system add --name=web-01 --mac=00:50:56:xx:xx:xx --profile=CentOS-7.9-x86_64 \ –ip-address=192.168.1.100 --subnet=255.255.255.0 --gateway=192.168.1.1 \ –interface=eth0 --static=1 --hostname=web-01 --name-servers=“192.168.1.1” \ –kickstart=/var/lib/cobbler/kickstarts/centos7-custom.ks
  6. 同步并生效
    systemctl restart cobblerd
    cobbler sync
    说明:Cobbler 管理的 DHCP 配置位于 /etc/cobbler/dhcp.template,请勿直接修改 /etc/dhcp/dhcpd.conf,同步时会自动覆盖生成。

三 常用定制场景与做法

  • 每台机器不同网络参数(静态 IP/网关/DNS/主机名)
    使用 cobbler system addMAC 建立主机条目,指定 –ip-address/–gateway/–subnet/–hostname/–name-servers,实现“开箱即用”的静态网络主机。
  • 统一镜像与不同软件组合
    维护多个 profile,每个 profile 绑定不同 kickstart(不同包组/分区方案),装机时按菜单或指定 profile 选择即可。
  • 引导菜单与默认项
    编辑 /etc/cobbler/pxe/pxedefault.template:设置 MENU TITLETIMEOUTONTIMEOUT $pxe_timeout_profile,将默认从本地磁盘改为指定的 profile(如 ONTIMEOUT CentOS-7.9-x86_64)。
  • 网卡命名策略
    profilesystem–kopts 中加入 net.ifnames=0 biosdevname=0,保持 eth0 传统命名风格,便于既有脚本兼容。
  • 安装后自动化
    %post 中执行系统初始化:关闭不需要的服务(如 postfix)、配置 yum/chrony、注册 Cobbler/资产、部署配置管理客户端(如 Salt/Ansible)等。

四 示例文件与命令清单

  • Kickstart 片段(示例要点) install url --url=$tree text lang en_US.UTF-8 keyboard us zerombr bootloader --location=mbr --driveorder=sda --append=“crashkernel=auto rhgb quiet” $SNIPPET(‘network_config’) timezone --utc Asia/Shanghai authconfig --enableshadow --passalgo=sha512 rootpw --iscrypted $default_password_crypted clearpart --all --initlabel part /boot --fstype xfs --size 1024 part swap --size 1024 part / --fstype xfs --size 1 --grow firstboot --disable selinux --disabled firewall --disabled logging --level=info reboot %packages @development bash-completion chrony dos2unix lrzsz sysstat tree vim wget git net-tools %end %post systemctl disable postfix.service

    可追加:yum 配置、主机名写入、密钥分发、配置管理注册等

    %end
  • 常用命令清单
    • 镜像导入:cobbler import --path=/mnt --name=CentOS-7.9-x86_64 --arch=x86_64
    • 查看对象:cobbler distros; cobbler profile list; cobbler system list
    • 绑定应答文件:cobbler profile edit --name= --kickstart=/var/lib/cobbler/kickstarts/xxx.ks
    • 内核参数:cobbler profile edit --name= --kopts=‘net.ifnames=0 biosdevname=0’
    • 主机定制:cobbler system add --name= --mac= --profile= --ip-address=
    • 生效配置:systemctl restart cobblerd && cobbler sync
      提示:Kickstart 文件位置 /var/lib/cobbler/kickstarts/;DHCP 模板 /etc/cobbler/dhcp.template

0