Cobbler:一站式自动化系统部署方案
Cobbler 的工作原理
核心功能
Cobbler 用于集中管理操作系统镜像、 Kickstart 自动安装配置文件、DHCP/PXE 服务等,实现批量、自动化的系统部署,避免手动安装的繁琐。
工作流程
- 镜像管理:Cobbler 导入操作系统 ISO 镜像,自动提取内核(vmlinuz)和初始化镜像(initrd),供 PXE 启动使用。
- PXE 引导:结合 DHCP 服务,为待部署主机分配 IP 地址,并告知其从 Cobbler 服务器获取引导文件(通过 TFTP)。
- 自动安装:待部署主机通过 PXE 加载内核和初始化镜像后,Cobbler 推送对应的 Kickstart 配置文件,实现无人值守安装。
- 后续配置:支持安装后自动执行脚本(如配置软件、网络等),实现全流程自动化。
依赖组件
- TFTP 服务:传输 PXE 引导文件(内核、初始化镜像)。
- DHCP 服务:为客户端分配 IP 并指定引导服务器地址(可由 Cobbler 管理或外部 DHCP 服务器配合)。
- HTTP/HTTPS:提供安装镜像和 Kickstart 文件的访问。
- rsync:用于同步镜像文件(可选)。
cobbler官网:https://cobbler.github.io/
1、cobbler集成的服务:
PXE服务支持
DHCP服务管理
DNS服务管理(可选bind,dnsmasq)
电源管理
Kickstart服务支持
YUM仓库管理
TFTP(PXE启动时需要)
Apache(提供kickstart的安装源,并提供定制化的kickstart配置)
2、cobbler配置文件详解:
cobbler配置文件目录在/etc/cobbler
配置文件 作用
/etc/cobbler/settings cobbler 主配置文件
/etc/cobbler/iso/ iso模板配置文件
/etc/cobbler/pxe pxe模板配置文件
/etc/cobbler/power 电源配置文件
/etc/cobbler/user.conf web服务授权配置文件
/etc/cobbler/users.digest web访问的用户名密码配置文件
/etc/cobbler/dhcp.template dhcp服务器的的配置模板
/etc/cobbler/dnsmasq.template dns服务器的配置模板
/etc/cobbler/tftpd.template tftp服务的配置模板
/etc/cobbler/modules.conf 模块的配置文件
3、cobbler数据目录:
目录 作用
/var/lib/cobbler/config/ 用于存放distros,system,profiles等信息配置文件
/var/lib/cobbler/triggers/ 用于存放用户定义的cobbler命令
/var/lib/cobbler/kickstart/ 默认存放kickstart文件
/var/lib/cobbler/loaders/ 存放各种引导程序以及镜像目录
/var/www/cobbler/ks_mirror/ 导入的发行版系统的所有数据
/var/www/cobbler/images/ 导入发行版的kernel和initrd镜像用于远程网络启动
/var/www/cobbler/repo_mirror/ yum仓库存储目录
4、cobbler日志文件:
日志文件路径 说明
/var/log/cobbler/installing 客户端安装日志
/var/log/cobbler/cobbler.log cobbler日志
5、cobbler命令详解:
cobbler check //核对当前设置是否有问题
cobbler list //列出所有的cobbler元素
cobbler report //列出元素的详细信息
cobbler sync //同步配置到数据目录,更改配置最好都要执行下
cobbler reposync //同步yum仓库
cobbler distro //查看导入的发行版系统信息
cobbler system //查看添加的系统信息
cobbler profile //查看配置信息
二、cobbler服务端部署
1,配置yum源
安装阿里云镜像源
[root@ycy3 yum.repos.d]# yum -y install epel-release
[root@ycy3 yum.repos.d]# yum -y install install httpd dhcp* tftp tftp-server cobbler cobbler-web pykickstart rsync rsync-daemon
2,启动服务并关闭防火墙
[root@ycy3 yum.repos.d]# systemctl restart httpd;systemctl enable httpd
[root@ycy3 ~]# systemctl restart rsyncd;systemctl enable rsyncd
[root@ycy3 ~]# systemctl restart tftp; systemctl enable tftp
[root@ycy3 ~]# systemctl restart cobblerd;systemctl enable cobblerd
3,修改server的ip地址为本机ip,设置tftp的ip地址为本机ip
[root@ycy3 ~]# cd /etc/cobbler
[root@ycy3 cobbler]# vim settings
##修改server的ip地址为本机ip,找server
##设置tftp的ip地址为本机ip,找next_server
5,生成加密的密码
[root@ycy3 cobbler]# openssl passwd -1 -salt "$RANDOM" 'redhat'
$1$25440$YRIf/wT.LEqc3M6BZ4VHR0
6,将新生成的加密密码加入到配置文件
[root@ycy3 ~]# cd /etc/cobbler
##找default_password_crypted: 写入加密密码
7,将cobbler的dhcp功能打开
manage_dhcp: 1
8,重启cobbler
systemctl restart cobblerd
9,通过cobbler check 核对当前设置是否有问题
[root@ycy3 cobbler]# cobbler check
The following are potential configuration items that you may want to fix:1 : change 'disable' to 'no' in /etc/xinetd.d/tftp
2 : Some network boot-loaders are missing from /var/lib/cobbler/loaders. If you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely. Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot.
3 : debmirror package is not installed, it will be required to manage debian deployments and repositories
4 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use themRestart cobblerd and then run 'cobbler sync' to apply changes.
问题一:
vim /etc/xinetd.d/tftp
##将disable 改为 no[root@ycy3 cobbler]# systemctl restart tftp ##重启
问题二:
[root@ycy3 cobbler]# yum -y install syslinux*
[root@ycy3 cobbler]# cp /usr/share/syslinux/pxelinux.0 /var/lib/cobbler/loaders/
[root@ycy3 cobbler]# cp /usr/share/syslinux/menu.c32 /var/lib/cobbler/loaders/
[root@ycy3 cobbler]# ls /var/lib/cobbler/loaders/
menu.c32 pxelinux.0
问题三和四:
[root@ycy3 cobbler]# yum -y install yum-utils
10,配置DHCP模板文件并同步cobbler配置
[root@ycy3 cobbler]# vim /etc/cobbler/dhcp.template
[root@ycy3 cobbler]# systemctl restart httpd cobblerd
[root@ycy3 cobbler]# systemctl restart cobblerd.service
[root@ycy3 cobbler]# systemctl restart httpd
[root@ycy3 cobbler]# cobbler sync
10,挂载并导入镜像
[root@ycy3 ~]# mount /dev/cdrom /mnt/
[root@ycy3 ~]# cobbler import --path=/mnt/ --name=CentOS-71 arch=x86_64
成功后会出现
*** TASK COMPLETE ***
11,查看
//查看cobbler镜像列表
cobbler list
//查看详细信息 查看指定的--name 接镜像名cobbler distro report --name CentOS-7-x86_64