• 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)交互过程分析:

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

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


    简单总结一下,

    PXE Client发送广播包请求DHCP分配IP地址DHCP
    Server回复请求,给出IP地址以及Boot
    Server的地址PXE下载引导文件执行引导程序
    总结来说,PXE主要是通过广播的方式发送一个包,并请注获取一个地址,而后交给TFTP程序下载一个引导文件。下面我们来说一下Kickstart。

    二、Kickstart 概述
    Kickstart 是红帽搞出来的一个东西,我们可以简单理解为一个自动安装应答配置管理程序。通过读取这个配置文件,系统知道怎么去分区,要安装什么包,配什么IP,优化什么内核参数等等。其主要有以下部分组成:

    Kickstart 安装选项,包含语言的选择,防火墙,密码,网络,分区的设置等;
    %Pre 部分,安装前解析的脚本,通常用来生成特殊的ks配置,比如由一段程序决定磁盘分区等;
    %Package 部分,安装包的选择,可以是 @core 这样的group的形式,也可以是这样 vim-* 包的形式;
    %Post 部分,安装后执行的脚本,通常用来做系统的初始化设置。比如启动的服务,相关的设定等。


    Server端:

    第一步,启动Cobbler服务
    第二步,进行Cobbler错误检查,执行cobbler check命令
    第三步,进行配置同步,执行cobbler sync命令
    第四步,复制相关启动文件文件到TFTP目录中
    第五步,启动DHCP服务,提供地址分配
    第六步,DHCP服务分配IP地址
    第七步,TFTP传输启动文件
    第八步,Server端接收安装信息
    第九步,Server端发送ISO镜像与Kickstart文件
    Client端:

    第一步,客户端以PXE模式启动
    第二步,客户端获取IP地址
    第三步,通过TFTP服务器获取启动文件
    第四步,进入Cobbler安装选择界面
    第五步,客户端确定加载信息
    第六步,根据配置信息准备安装系统
    第七步,加载Kickstart文件
    第八步,传输系统安装的其它文件

  • 相关阅读:
    WPF 关于多语言 的实现 学习,利用反射中的特性
    WPF Textbox 中文输入崩溃 规避
    自定义控件.依赖项属性同步更新内部控件属性
    HexInput
    HashMap实现原理分析
    centos下nginx安装
    dos下mybatis自动生成代码
    设计模式之装饰器模式
    Java 中的悲观锁和乐观锁的实现
    redis分布式锁
  • 原文地址:https://www.cnblogs.com/muzinan110/p/11237341.html
Copyright © 2020-2023  润新知