Ubuntu Cobbler定制化脚本实现步骤
在Cobbler服务器上创建自定义脚本,用于实现系统初始化、软件安装等个性化配置。脚本需放置在Cobbler的snippet目录(/var/lib/cobbler/snippets/),这是Cobbler识别和调用脚本片段的标准路径。
使用文本编辑器(如nano、vim)创建脚本,例如/var/lib/cobbler/snippets/custom_init_script.sh,并添加具体逻辑(以下示例安装Nginx并启动服务):
#!/bin/bash
# 更新软件包索引
apt-get update -y
# 安装Nginx
apt-get install -y nginx
# 启动Nginx并设置开机自启
systemctl start nginx
systemctl enable nginx
# 记录执行日志
echo "$(date): Nginx installed and started successfully" >> /var/log/custom_init.log
保存后,赋予脚本执行权限:
sudo chmod +x /var/lib/cobbler/snippets/custom_init_script.sh
注意:脚本名称需与后续Kickstart模板中$SNIPPET指令引用的名称一致(不含.sh后缀)。
Kickstart文件是Cobbler实现无人值守安装的核心配置文件,通过$SNIPPET指令调用自定义脚本片段。编辑对应的Kickstart模板(如/var/lib/cobbler/kickstarts/ubuntu_custom.ks),在%post(安装后执行)或%pre(安装前执行) section中添加引用:
%post --nochroot
$SNIPPET('custom_init_script.sh')
%end
%post
$SNIPPET('custom_init_script.sh')
%end
关键要求:$SNIPPET指令中的名称必须与snippet文件名一致(不含.sh后缀),且脚本需位于/var/lib/cobbler/snippets/目录下。
创建或编辑Cobbler的Profile(配置文件),将自定义的Kickstart模板与Profile绑定,使模板在部署时生效。使用以下命令编辑Profile(如ubuntu-2204-custom):
sudo cobbler profile edit --name=ubuntu-2204-custom --kickstart=/var/lib/cobbler/kickstarts/ubuntu_custom.ks
说明:--name参数指定Profile名称(需与后续创建系统条目时的名称一致),--kickstart参数指定Kickstart模板的路径。
修改配置后,需同步Cobbler以应用更改(将配置同步到TFTP、HTTP等服务):
sudo cobbler sync
同步完成后,通过以下方式验证自定义脚本是否执行:
ubuntu-2204-custom),安装完成后检查客户端是否安装Nginx(systemctl status nginx),并查看日志文件(/var/log/custom_init.log)是否有执行记录。cobbler system add命令创建系统条目,指定Profile和MAC地址,启动客户端验证。chmod +x),否则Cobbler无法运行脚本。/var/lib/cobbler/snippets/目录下的脚本,需将脚本放置于此,避免路径错误。$SNIPPET指令需放在%post或%pre section中,且脚本名称需与snippet文件名一致(不含.sh后缀)。/var/log/cobbler/cobbler.log)或系统日志(/var/log/syslog)排查问题(如权限不足、路径错误)。