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简单介绍:

  1. Cobbler是一个Linux服务器快速网络安装的服务,由python开发,小巧轻便(15k行python代码),可以通过PXE的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS,TFTP、RSYNC以及yum仓库、构造系统ISO镜像。
  2. Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。

Cobbler工作流程:

Cobbler原理解析

  • Client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器 (Cobbler server)发送其分配好的一个IP
  • DHCP服务器(Cobbler server)收到请求后发送responese,包括其ip地址
  • Client裸机拿到ip后再向Cobbler server发送请求OS引导文件的请求
  • Cobbler server告诉裸机OS引导文件的名字和TFTP server的ipport
  • Client裸机通过上面告知的TFTP server地址通信,下载引导文件
  • Client裸机执行执行该引导文件,确定加载信息,选择要安装的OS, 期间会再向cobbler server请求kickstart文件和OS image
  • Cobbler server发送请求的kickstart和OS iamge
  • Client裸机加载kickstart文件
  • Client裸机接收os image,安装该OS image

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: "$1$gEc7ilpP$pg5iSOj/mlxTxEslhRvyp/"

manage_dhcp:1

manage_tftpd:1

pxe_just_once:1

next_server:< tftp服务器的 IP 地址>

server:

后面会说明Cobbler的安装和配置。


分享到:


相關文章: