Cobbler
技术原理解析:
Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client
Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0
Client执行接收到的pxelinux.0文件
Client向TFTP Server发送针对本机的配置信息文件(在TFTP服务的pxelinux.cfg目录下,这是系统菜单文件,格式和isolinux.cfg格式一样,功能也是类似),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client
Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统
Client启动Linux内核
Client下载安装源文件,读取自动化安装脚本
Cobbler简单介绍:
Cobbler是一个Linux服务器快速网络安装的服务,由python开发,小巧轻便(15k行python代码),可以通过PXE的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS,TFTP、RSYNC以及yum仓库、构造系统ISO镜像。
Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。
Cobbler工作流程:
Client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器 (Cobbler server)发送其分配好的一个IP
DHCP服务器(Cobbler server)收到请求后发送responese,包括其ip地址
Client裸机拿到ip后再向Cobbler server发送请求OS引导文件的请求
Cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port
Client裸机通过上面告知的TFTP server地址通信,下载引导文件
Client裸机执行执行该引导文件,确定加载信息,选择要安装的OS, 期间会再向cobbler server请求kickstart文件和OS image
Cobbler server发送请求的kickstart和OS iamge
Client裸机加载kickstart文件
Client裸机接收os image,安装该OS image
Cobbler集成的服务:
PXE服务支持
DHCP服务管理
DNS服务管理(可选bind,dnsmasq)
电源管理
Kickstart服务支持
YUM仓库管理
TFTP(PXE启动时需要)
Apache(提供kickstart的安装源,并提供定制化的kickstart配置)
Cobbler 设计方式:
发行版(distro) :表示一个操作系统,它承载了内核和initrd的信息,以及内核等其他数据 存储库
(repository):保存了一个yum或者rsync存储库的镜像信息
配置文件(profile):包含了一个发行版(distro),一个kickstart文件以及可能的存储库(repository),还包含了更多的内核参数等其他数据
系统(system):表示要配给的机器,它包含了一个配置文件或一个镜像,还包含了ip和mac地址,电源管理(地址,凭据,类型)以及更为专业的数据信息
镜像(image):可替换一个包含不属于此类别的文件的发行版对象(eg: 无法作为内核和initrd的对象)
以上各个组件中, 发行版,存储库, 配置文件为必须配置项,只有在虚拟环境中,必须要用cobbler来引导虚拟机启动时候,才会用到系统组件但事实上,在生产环境中需要大量的虚拟机实例的话,通常利用openstack等来实现虚拟机节点
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 # 模块的配置文件
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 仓库存储目录
Cobbler镜像目录:
/var/www/cobbler/ks_mirror/ # 导入的发行版系统的所有数据
/var/www/cobbler/images/ # 导入发行版的kernel和initrd镜像用于远程网络启动
/var/www/cobbler/repo_mirror/ # yum 仓库存储目录
Cobbler日志目录:
/var/log/cobbler/installing # 客户端安装日志
/var/log/cobbler/cobbler.log # cobbler日志
Cobbler命令介绍:
cobbler check # 核对当前设置是否有问题
cobbler list # 列出所有的cobbler元素
cobbler report # 列出元素的详细信息
cobbler sync # 同步配置到数据目录,更改配置最好都要执行下
cobbler reposync # 同步yum仓库
cobbler distro # 查看导入的发行版系统信息
cobbler system # 查看添加的系统信息
cobbler profile # 查看配置信息
/etc/cobbler/settings中重要的参数设置:
default_password_crypted: "1gEc7ilpP$pg5iSOj/mlxTxEslhRvyp/"
manage_dhcp:1
manage_tftpd:1
pxe_just_once:1
next_server:< tftp服务器的 IP 地址>
server:<Cobbler服务器IP地址>
Cobble安装:
系统信息:
[root@c7-42 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
关闭防火墙
1.[root@c7-42 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset:enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
2.[root@c7