cobbler
简介
- cobbler 是 Redhat 支持的一个开源项目,用来部署和安装系统。所以对 Redhat 系列 os 支持是比较好的。
- cobbler 不仅仅是一个 pxe 服务器,他还可以管理 dns( bind), dhcp。一般数据中心里或者生产环境,是不允许 dhcp, 但是 pxe,必须需要 dhcp,所以我们需要根据 mac 地址来分配 IP,这样 dhcp就不会影响到网络。
- Cobbler 的优点:自动管理各个服务之间的配置,更强大的管理功能。而且它还有 web 管理界面,可以通过点一点鼠标就可以安装一台主机。
- Cobbler 的优点:自动管理各个服务之间的配置,更强大的管理功能。而且它还有 web 管理界面,可以通过点一点鼠标就可以安装一台主机。 Kickstart 的模板文件可以配置多个。
运行流程
服务端
- 启动cobbler服务
- 进行cobbler服务自检 执行:cobbler check
- 进行cobbler服务同步 执行:cobbler sync
- 复制相关的配置文件到TFTP目录
- 根据DHCP给pxe服务端分配地址
- TFTP传输启动文件给客户端
- 服务端发送安装信息
- 服务端发送ISO镜像以及kickstart文件
客户端
- 客户端以pxe模式启动
- 客户端通过DHCP获取地址
- 客户端通过TFTP向服务端进行文件请求
- 进行cobbler安装选择界面
- 客户端确定加载信息
- 根据配置信息准备安装系统
- 加载kichstart文件
- 传输系统安装的其它文件
- 进行安装系统
配置cobbler
安装cobbler
# 首先安装 epel-release, cobbler 和 tftp-server 在 base 源中是没有的
[root@CobblerServer ~]# yum install -y epel-release
[root@CobblerServer ~]# yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd rsync xinetd
cobbler #cobbler 程序包
cobbler-web #cobbler 的 web 服务包
pykickstart #用于操作 kickstart 的 python 库
httpd #Apache web 服务
介绍工作目录
cobbler的配置目录
'''
/etc/cobbler # 配置文件目录
/etc/cobbler/settings # cobbler 主配置文件,这个文件是 YAML 格式, Cobbler 是python 写的程序。
/etc/cobbler/dhcp.template #DHCP 服务的配置模板
/etc/cobbler/tftpd.template #tftp 服务的配置模板
/etc/cobbler/rsync.template #rsync 服务的配置模板
/etc/cobbler/iso #iso 模板配置文件目录
/etc/cobbler/pxe #pxe 模板文件目录
/etc/cobbler/power #电源的配置文件目录
/etc/cobbler/users.conf #Web 服务授权配置文件
/etc/cobbler/users.digest #用于 web 访问的用户名密码配置文件
/etc/cobbler/dnsmasq.template #DNS 服务的配置模板
/etc/cobbler/modules.conf #Cobbler 模块配置文件
/var/lib/cobbler #Cobbler 数据目录
/var/lib/cobbler/config #配置文件
/var/lib/cobbler/kickstarts #默认存放 kickstart 文件
/var/lib/cobbler/loaders #存放的各种引导程序
/var/www/cobbler #系统安装镜像目录
/var/www/cobbler/ks_mirror #导入的系统镜像列表
/var/www/cobbler/images #导入的系统镜像启动文件
/var/www/cobbler/repo_mirror #yum 源存储目录
/var/log/cobbler #日志目录
/var/log/cobbler/install.log #客户端系统安装日志
/var/log/cobbler/cobbler.log #cobbler 日志
'''
启动cobbler
# 首先启动 cobbler 和 httpd 服务
[root@CobblerServer ~]# systemctl start cobblerd httpd
[root@CobblerServer ~]# cobbler check # 检查cobbler
![](https://img2020.cnblogs.com/blog/1725357/202007/1725357-20200709154037459-1753535226.png)
解决自检报错
# 解决问题一与问题二
[root@CobblerServer ~]# vim /etc/cobbler/settings
server:127.0.0.1 ----> server: 10.1.1.2 # 注意:后面一定要有一个空格在写IP地址
next_server:127.0.0.1 ----> next_server: 10.1.1.2
# 问题 3:修改 tftp 服务被 xinetd 服务管理
[root@CobblerServer ~]# vim /etc/xinetd.d/tftp
disbale yes ----> disable no
# 问题 4:下载操作系统引导文件
[root@CobblerServer ~]# cobbler get-loaders
# 问题 5:修改 rsyncd 服务为开机自启动状态并启用它。
[root@CobblerServer ~]# systemctl start rsyncd && systemctl enable rsyncd
# 问题 7:修改操作系统默认密码
[root@SR ~]# openssl passwd -1 -salt 'root' 'root123'
$1$root$x7tWWN5lswqZBbOy8kXti # 给root用户添加密码
[root@SR ~]# vim /etc/cobbler/settings
default_password_crypted: "$1$root$x7tWWN5lswqZBbOy8kXti" # 修改默认密码为上述生成的密码
# PS:由于是实验环境 上述存在部分自检问题尚未解决
修改DHCP配置
# cobbler使用DHCP为PXE服务器分配地址
``` python
[root@CobblerServer ~]# vim /etc/cobbler/dhcp.template
subnet 10.1.1.0 netmask 255.255.255.0 # 分配的网段
option routers 10.1.1.188; # 网关
option domain-name-servers 8.8.8.8; # DNS
option subnet-mask 255.255.255.0; # 掩码
range dynamic-bootp 10.1.1.2 10.1.1.254; # 地址池
next-server 10.1.1.2; # 配置文件中的
[root@CobblerServer ~]# vim /etc/cobbler/settings # 修改配置文件
manage_dhcp: 0 ----> manage_dhcp: 1 # 让cobbler启动DHCP服务
[root@CobblerServer ~]# systemctl restart cobblerd.service # 重启服务
[root@CobblerServer ~]# cobbler sync # 同步配置文件
挂载导入镜像
[root@CobblerServer ~]# mount /dev/sr0 /mnt/
[root@CobblerServer ~]# df -Th # 查看挂载
[root@CobblerServer ~]# cat /etc/redhat-release # 查看当前版本
CentOS Linux release 7.8.2003 (Core)
root@CobblerServer ~]# cobbler import --path=/mnt/ --name=CenTOS7.8 --arch=x86_64 # 导入mnt路径下镜像 命名为Centos7.8 使用x86架构
[root@CobblerServer ~]# cobbler list # 列出当前镜像
![](https://img2020.cnblogs.com/blog/1725357/202007/1725357-20200710100320947-138686615.png)
批量安装
- 设置测试机器与服务端处于同一网段
- 虚拟机默认以PXE服务进行安装
- 默认最小化安装
![](https://img2020.cnblogs.com/blog/1725357/202007/1725357-20200710102808100-1433834726.png)
自定义安装cobbler
[root@CobblerServer ~]# cobbler report # 查看ks存储的路径
Kickstart: /var/lib/cobbler/kickstarts/sample_end.ks
[root@CobblerServer kickstarts]# cobbler profile list # 查看当前默认的ks应答文件
CenTOS7.8-x86_64
# 修改ks文件为我们自己定义的centos7.ks
[root@CobblerServer kickstarts]# cobbler profile edit --name CenTOS7.8-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks
![](https://img2020.cnblogs.com/blog/1725357/202007/1725357-20200712203407509-1127849902.png)
定制化安装
# 网卡MAC:00:0C:29:B6:D7:1C
# 实战 1:使用 cobbler 安装系统时,指定好系统的 IP 地址,镜像,网关,主机名等信息
[root@CobblerServer kickstarts] # cobbler system add --name=TsetHost \
--mac=00:0C:29:B6:D7:1C\
--profile=CenTOS7.8-x86_64 \--ip-addr=10.1.1.100 \
--subnet=255.255.255.0\
--interface=eth34\
--static=1\
--kickstart=/var/lib/cobbler/kickstarts/centos7.ks
[root@CobblerServer kickstarts]# cobbler system list # 查看定制列表
TsetHost # 上述名称
[root@CobblerServer kickstarts]# cobbler sync # 同步文件
[root@CobblerServer kickstarts]# tail -13 /etc/dhcp/dhcpd.conf # 查看IP与MAC的映射关系