• 欢迎访问蜷缩的蜗牛博客 蜷缩的蜗牛
  • 微信搜索: 蜷缩的蜗牛 | 联系站长 kbsonlong@qq.com
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

cobbler原理分析

自动化运维 蜷缩的蜗牛 9个月前 (01-23) 201次浏览 已收录

Cobbler 通过将设置和管理一个安装服务器所涉及的任务集中在一起,从而简化了系统配置。

一、Cobbler 简介

Cobbler 通过将设置和管理一个安装服务器所涉及的任务集中在一起,从而简化了系统配置。相当于 Cobbler 封装了 DHCP、TFTP、XINTED 等服务,结合了 PXE、kickstart 等安装方法,可以实现自动化安装操作系统,并且可以同时提供多种版本,以实现在线安装不同版本的系统。

二、相关服务介绍

2.1 DHCP:

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用 UDP 协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配 IP 地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。DHCP 有 3 个端口,其中UDP67 和 UDP68 为正常的 DHCP 服务端口,分别作为 DHCP Server 和 DHCP Client 的服务端口;546 号端口用于 DHCPv6 Client,而不用于 DHCPv4,是为 DHCP failover 服务,这是需要特别开启的服务,DHCP failover 是用来做“双机热备”的。

2.2 TFTP:

TFTP 是一种比较特殊的文件传输协议。相对于 FTP 和目前经常使用的 SFTP,TFTP 是基于 TCP/IP 协议簇,用于进行简单文件传输,提供简单、低开销的传输服务。TFTP 的端口设置为 69。
相对于常见的 FTP,TFTP 有两个比较好的优势:
1. TFTP 基于 UDP 协议,如果环境中没有 TCP 协议,是比较合适的;
2. TFTP 执行和代码占用内存量比较小;

默认情况下,Linux 内部是安装了 tftp 服务器包的。但是默认是不启动的。

2.3 PXE:

预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。

PXE 当初是作为 Intel 的有线管理体系的一部分,Intel 和 Systemsoft 于 1999 年 9 月 20 日公布其规格(版本 2.1)[1]。通过使用像网际协议(IP)、用户数据报协议(UDP)、动态主机设定协定(DHCP)、小型文件传输协议(TFTP)等几种网络协议和全局唯一标识符(GUID)、通用网络驱动接口(UNDI)、通用唯一识别码(UUID)的概念并通过对客户机(通过 PXE 自检的电脑)固件扩展预设的 API 来实现目的。

三、交互过程分析

cobbler server 与裸机(PXE client)交互过程分析:

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

之后,裸机就不“裸”了,有了自己的 os 和 dhcp 分配给其的 ip。

可以通过查看 cobbler server 所在机器的 dhcp 服务的相关文件,来查看分配出去的 ip 和对应的 mac 地址:

<code class=" hljs cs">vi /<span class="hljs-keyword">var</span>/lib/dhcpd/dhcpd.leases</code>

四、Cobbler 相关

Cobbler 使用 Python 开发,目前实验使用的版本是 Cobbler 2.6.11 Released by Jörgen on January 23, 2016

Reference:

  1. https://zh.wikipedia.org/wiki/%E9%A2%84%E5%90%AF%E5%8A%A8%E6%89%A7%E8%A1%8C%E7%8E%AF%E5%A2%83
  2. https://zh.wikipedia.org/wiki/%E5%8A%A8%E6%80%81%E4%B8%BB%E6%9C%BA%E8%AE%BE%E7%BD%AE%E5%8D%8F%E8%AE%AE
  3. https://zh.wikipedia.org/wiki/%E5%B0%8F%E5%9E%8B%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE
  4. http://cobbler.github.io/
  5. http://www.361way.com/cobbler-principle/4328.html

本文转载自 cobbler 原理分析


蜷缩的蜗牛 , 版权所有丨如未注明 , 均为原创丨 转载请注明cobbler 原理分析
喜欢 (0)
[]
分享 (0)