首先,创建并编辑自定义脚本(如用于系统初始化、软件安装等)。可以使用nano、vim等工具,例如:
sudo nano /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 Cobbler通过Snippet机制复用脚本片段,自定义脚本需放置在/var/lib/cobbler/snippets/目录下(该目录用于存放可复用的脚本片段)。上述步骤中已将脚本保存至该目录,无需额外移动。
Cobbler通过Kickstart文件实现无人值守安装,自定义脚本需通过$SNIPPET指令在Kickstart模板中引用。编辑对应的Kickstart模板(如/var/lib/cobbler/kickstarts/ubuntu_custom.ks),在%post(安装后执行)或%pre(安装前执行) section中添加:
%post --nochroot # 调用自定义脚本(--nochroot表示在chroot环境外执行,适用于需要访问安装介质的场景) $SNIPPET('custom_init_script.sh') %end 若脚本需要在chroot环境内执行(如修改系统文件),可直接省略--nochroot:
%post $SNIPPET('custom_init_script.sh') %end 将自定义的Kickstart模板与Cobbler的Profile绑定,使模板在部署时生效。使用以下命令编辑Profile(如ubuntu-2204):
sudo cobbler profile edit --name=ubuntu-2204 --kickstart=/var/lib/cobbler/kickstarts/ubuntu_custom.ks 此命令将ubuntu_custom.ks设置为ubuntu-2204 Profile的Kickstart文件。
修改配置后,需同步Cobbler以应用更改:
sudo cobbler sync 同步完成后,通过PXE启动客户端或使用cobbler system add命令创建系统条目,验证自定义脚本是否执行(如检查客户端是否安装Nginx、/var/log/custom_init.log是否有日志记录)。
chmod +x),否则无法运行。/var/lib/cobbler/snippets/目录下的脚本,需将脚本放置于此。$SNIPPET指令需放在%post或%pre section中,且脚本名称需与Snippet文件名一致(不含.sh后缀)。/var/log/cobbler/cobbler.log)或系统日志(/var/log/syslog)排查问题。通过以上步骤,即可在Ubuntu环境下使用Cobbler自定义脚本,实现自动化部署中的个性化配置。