zoukankan      html  css  js  c++  java
  • linux无人值守安装介绍(一)

    一、术语解释
    PXE(Pre-boot ExecutionEnvironment)是由Intel设计的协议,它可以使计算机通过网络而不是从本地硬盘、光驱等设备启动。现代的网卡,一般都内嵌支持PXE的ROM芯片。当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXEclient将放置在远端的操作系统通过网络下载到本地运行。

    DHCP(Dynamic Host Control Protocol) 动态主机控制协议。用于集中、动态的给客户机分配IP地址。

    TFTP(trivial file transfer protocol),一种开销很小的文件传输协议,语法类似ftp。因简单、高效,常用于网络设备的OS和配置更新。

    Cobbler(补鞋匠)是通过将DHCP、TFTP、DNS、HTTP等服务进行集成,创建一个中央管理节点,其可以实现的功能有配置服务,创建存储库,解压缩操作系统媒介,代理或集成一个配置管理系统,控制电源管理等。

    Cobbler的最终目的是实现无需进行人工干预即可安装机器。在进行进一步的操作之前,我们有必要先了解下pxe和kickstart 。


    二、PXE、kickstart原理


    2.1 PXE Client Api (架构)

    上图说明: 当BIOS把PXE Client载入记忆体,此时便具有DHCP Client及TFTP Client的能力。
    PXE Client具备DHCP Client能力,可以透过DHCP Server来取得IP位址。
    PXE Client具备TFTP Client能力”,可通过TFTP来下载kernel image等文件。

    2.2 PXE原理

    pxe boot启动流程图一:


    上图启动流程说明如下:

    PXE Client 向 UDP 67端口 广播 DHCPDDISCOVER 消息。
    DHCP SERVER 或者 DHCP Proxy 收到广播消息后,发送DHCPOFFER(包含ip地址)消息 到 PXE Client的 68 端口。
    PXE Client 发送 DHCPREQUEST 消息到 DHCP SERVER ,获取启动文件(boot file name)。
    DHCP SERVER 发送DHCPACK(包含Network Bootstrap Program file name)消息 到PXE Client。
    PXE Client 向 Boot Server 获取 NBP(Network Bootstrap Program) 文件。
    PXE Client 从TFTP SERVER 下载 NBP,然后在客户端执行NBP文件
    注意: 在NBP执行初始化后,NBP会按照自己默认的方式从TFTP SERVER中下载其他所需的配置文件。
    这个时候 PXE 启动流程已经完成了,剩下的工作都是有NBP来执行完成的。

    例如: pxelinux。0(NBP) 他会下载 default 配置文件,来显示菜单,根据需要启动不同的kernel image。

    pxe boot启动流程图二:

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

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

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


    三、Cobbler简介


    3.1 Cobbler概述
    Cobbler由python语言开发,是对PXE和Kickstart以及DHCP的封装。融合很多特性,提供了CLI和Web的管理形式。更加方便的实行网络安装。同时,Cobbler也提供了API接口,使用其它语言也很容易做扩展。它不紧可以安装物理机,同时也支持kvm、xen虚拟化、Guest OS的安装。更多的是它还能结合Puppet等集中化管理软件,实现自动化的管理。

    3.2 Cobbler的设计方式
    Cobbler 的配置结构基于一组注册的对象。每个对象表示一个与另一个实体相关联的实体(该对象指向另一个对象,或者另一个对象指向该对象)。当一个对象指向另一个对象时,它就继承了被指向对象的数据,并可覆盖或添加更多特定信息。以下对象类型的定义为:
    发行版(distro):表示一个操作系统。它承载了内核和 initrd 的信息,以及内核参数等其他数据。
    配置文件(profile):包含一个发行版、一个 kickstart 文件以及可能的存储库,还包含更多特定的内核参数等其他数据。
    系统(system):表示要配给的机器。它包含一个配置文件或一个镜像,还包含 IP 和 MAC 地址、电源管理(地址、凭据、类型)以及更为专业的数据等信息。
    存储库(repo):保存一个 yum 或 rsync 存储库的镜像信息。
    镜像(image):可替换一个包含不属于此类别的文件的发行版对象(例如,无法分为内核和 initrd 的对象)。
    基于注册的对象以及各个对象之间的关联,Cobbler 知道如何更改文件系统以反映具体配置。因为系统配置的内部是抽象的,所以您可以仅关注想要执行的操作。Cobbler 对象关系图如下:


    3.3 Cobbller工作原理
    Cobbler 原理

    image
    Server端:

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

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

    3.4 cobbler对象的关系:

    image

  • 相关阅读:
    Python 进阶_OOP 面向对象编程_实例属性和方法
    Python 进阶_OOP 面向对象编程_实例属性和方法
    Python 进阶_OOP 面向对象编程_类属性和方法
    Python 进阶_OOP 面向对象编程_类属性和方法
    Python 进阶_OOP 面向对象编程_类属性和方法
    Python 进阶_OOP 面向对象编程_类和继承
    pytest十四:doctest 框架
    pytest十三:配置文件 pytest.ini
    pytest十二:cmd命令行参数
    pytest十一:函数传参和 firture 传参数 request
  • 原文地址:https://www.cnblogs.com/zyd112/p/8136717.html
Copyright © 2011-2022 走看看