本文记录了我使用 Cobbler 批量安装部署 Linux 和 Windows 系统的过程, 文章主要分为三部分: Cobbler 服务端的安装配置, Linux 发行版 CentOS 和 Ubuntu 的自动安装部署, Windows 7 系统的自动安装部署. 这里是第一部分关于 Cobbler 服务端的安装配置, 第二部分: 使用 Cobbler 批量部署 Linux 和 Windows:CentOS/Ubuntu 批量安装(二) http://www.cnblogs.com/pluse/p/8508524.html , 第三部分: 使用 Cobbler 批量部署 Linux 和 Windows:Windows 系统批量安装(三) http://www.cnblogs.com/pluse/p/8508538.html
批量部署操作系统的相关环境
Cobbler 服务端相关
操作系统:
CentOS Linux release 7.4 , 不推荐 Debian/Ubuntu 系列, 原因是 Cobbler 是由 RedHat 公司开发, RedHat 会使得 Cobbler 在 RedHat/CentOS 保持更新迭代, 从而兼容易用, 而 Debian/Ubuntu 系列则会在适配方面处于滞后状态. 实际情况是, Cobbler 目前有三个大版本, 分别为 2.4.x,2.6.x,2.8.x, 在 CentOS 7 上 yum 安装的版本为 2.8.2, 而在 Ubuntu 16.04 上 apt 安装的版本为 2.4.1, 基本上是最 "古老" 的版本了, 并且 Cobbler 官网原先还提供 2.4.x 和 2.6.x 的 deb 安装包, 2.8.x 版本之后不再提供. 另外, 2.4.x 版本在部署的过程中会从指定域名下载一些数据, 而该域名已经被 Cobbler 废弃, 因此无法解析 DNS 域名, 导致安装部署出现问题.
CentOS 发行版
对于 CentOS 发行版的安装测试, 我测试了 CentOS 6.6 x64 和 CentOS 7.4 x64, 这两个版本都是没有问题的, 32 位版本没有测试过.
Ubuntu 发行版
对于 Ubuntu 发行版发行版的安装测试, 我测试了 Ubuntu 16.04, 该版本没有问题, 但是 Ubuntu 14.10 版本则不行, 在导入过程中会因失败而中止, 最终查找原因是 Cobbler 会对每个发行版版本进行相关的签名校验, 如果不支持该版本则会报错. 可以通过下面的命令进行查看:
cobbler signature report --name=ubuntu
结果如下:
从截图中可以看到, 并没有发行版 Ubuntu 14.10 (Utopic Unicorn)的签名, 因此该版本不被支持, 推测该版本是短期支持版本, 所以不被支持.
Windows 发行版
对于 Windows 发行版, 只测试了 Windows 7 x64 SP1 旗舰版( cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso ),Windows 系统的自动安装需要配合相关的 Autounattend.xml 自动应答文件进行.
接下来开始具体的配置说明.
一, Cobbler 服务端环境部署
Cobbler 体系结构示意图:
Cobbler 组件:
发行版(distro) : 表示一个操作系统, 它承载了内核和 initrd 的信息, 以及内核等其他数据.
仓库 (repository): 保存了一个 yum 或者 rsync 仓库的镜像信息.
配置文件(profile): 包含了一个发行版(distro), 一个 kickstart 文件以及可能的仓库(repository), 还包含了更多的内核参数等其他数据.
系统 (system): 表示要定制的具体客户机器, 它包含了一个配置文件或一个镜像, 还包含了 ip 和 mac 地址, 电源管理(地址, 凭据, 类型) 以及更为专业的数据信息.
镜像(image): 可替换一个包含不属于此类别的文件的发行版对象(eg: 无法作为内核和 initrd 的对象).
以上各个组件中, 发行版和配置文件为必须配置项. 发行版 distro 表示具体要导入安装的系统, 配置文件 profile 表示对应系统的配置, 系统 system 则可以定制某一台具体的机器安装, 相当于一条数据库记录, 可以省略.
Cobbler 工作流程:
Server 端
第一步, 启动 Cobbler 服务
第二步, 进行 Cobbler 错误检查, 执行 cobbler check 命令
第三步, 进行配置同步, 执行 cobbler sync 命令
第四步, 复制相关启动文件文件到 TFTP 目录中
第五步, 启动 DHCP 服务, 提供地址分配
第六步, DHCP 服务分配 IP 地址
第七步, TFTP 传输启动文件
第八步, Server 端接收安装信息
第九步, Server 端发送 ISO 镜像与 Kickstart 文件
Client 端
第一步, 客户端以 PXE 模式启动
第二步, 客户端获取 IP 地址
第三步, 通过 TFTP 服务器获取启动文件
第四步, 进入 Cobbler 安装选择界面
第五步, 客户端确定加载信息
第六步, 根据配置信息准备安装系统
第七步, 加载 Kickstart 文件
第八步, 传输系统安装的其它文件
第九步, 进行安装系统
环境: CentOS 7.4 x86_64 minimal 全新纯净系统一台, root 权限 . 使用 cobbler 服务时, 请保持防火墙关闭 .
安装 Cobbler
- yum update -y
- yum install epel-release -y
- yum update -y
- yum install cobbler dhcp -y
因为默认的仓库中没有 cobbler, 所以需要安装 epel-release 软件来额外配置仓库源, cobbler 会在 PXE 安装过程中为待安装客户机器分配 IP 地址, 因此还需要安装 DHCP 服务. 在正确安装 cobbler 之后, 可以通过 cobbler 相关命令来查看和配置, 如下:
默认安装后, cobbler 服务还没有启动, 使用相关命令会报错, 需要关闭防火墙并启动 cobbler, 并且应当将其设置为开机自启该服务. 如下:
- setenforce 0 #临时关闭, 重启后失效, 需重新关闭
- vi /etc/selinux/config # ==> SELINUX=disabled 禁用
- service firewalld stop #临时关闭防火墙, 如有 iptables, 也一并关闭, 重启后失效, 需重新关闭
systemctl disable firewalld
systemctl start cobblerd
systemctl enable cobblerd
Cobbler 检查
启动服务后, 开始进行相应检查. 如下:
cobbler check
该命令执行后, 会报告一个错误, 如下:
错误提示 HTTP 服务没有运行, 需要启动 HTTP, 并且应当将其设置为开启自启服务. 如下:
systemctl start httpd
systemctl enable httpd
再次检查, 如下:
依次解决上面的错误:
问题 1,2:
修改配置文件 /etc/cobbler/settings
- server: 192.168.1.x #修改为 cobbler server 端所在机器 IP
- next_server: 192.168.1.x #修改为 cobbler server 端所在机器 IP
问题 3:
开启 tftp 服务
?
1 2 3 | vi /etc/xinetd.d/tftp # ==> disable = no systemctl start tftp systemctlenable tftp |
问题 4:
执行下列命令以下载网络引导文件进行修复
cobbler get-loaders
问题 5:
开启 rsync 服务
systemctl start rsyncd
systemctl enable rsyncd
问题 6:
安装 debmirror
yum install debmirror -y
问题 7:
安装 pykickstart
yum install pykickstart -y
问题 8:
修改配置文件 /etc/cobbler/settings
default_password_crypted: "$1$root$j0bp.KLPyr.u9kgQ428D10"
上面的加密密码使用下面的命令生成:
openssl passwd -1 -salt "test" "123456" #"test" 可以为任意字符串, "123456" 为密码
问题 9:
安装 fence-agents
yum install fence-agents -y
按照以上步骤修复完问题之后, 重启 cobbler 服务, 再次 check, 如下:
service cobblerd restart
cobbler check
则会收到如下报告:
按照提示相应解决即可, 如下:
最后再次 check, 如果输出如下, 则表明 cobber server 端安装正常:
如果做完以上操作仍不成功, 可重启系统后再次 check. 注意防火墙关闭, 以及一些必要服务确保启动.
Cobbler 配置
在 cobber server 端安装完并且 check 成功之后, 接下来需要对 cobbler 做相应的配置, 以便后续使用.
修改配置文件 /etc/cobbler/settings, 需要关注的配置如下:
- manage_dhcp: 1 #启用 dhcp 管理
- pxe_just_once: 1 #仅安装一次
修改配置文件 /etc/cobbler/dhcp.template, 需要关注的配置如下:
- option routers 192.168.1.x; #修改为 cobbler server 端所在机器 IP
- option domain-name-servers 192.168.1.x; #修改为 cobbler server 端所在机器 IP
在 cobber 配置更改之后, 需要将所有的配置重新生成同步一次(尤其是 DHCP 配置文件), 如下:
service cobblerd restart
cobbler sync
service cobblerd restart
由于启用了 DHCP 管理, 因此需要运行并设置 DHCP 开机自启, 如下:
systemctl start dhcpd
systemctl enable dhcpd
至此, Cobber server 端安装配置完成.(如不成功, 请检查防火墙和相应服务状态)
来源: https://juejin.im/entry/5ac9acd6f265da238e0e01ef