cobbler自动化之原理篇

Cobbler 介绍

快速网络安装linux操作系统的服务,支持众多的Linux版本,也支持网络安装windows系统
PXE的二次封装,将多种安装参数封装到一个菜单
它是由Python编写的
还可以用CLI和WEB来管理
Cobbler 配置目录说明
安装:yum install 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 仓库存储目录

日志目录:

/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 查看配置信息

cobbler 重要的参数

/etc/cobbler/settings中重要的参数设置

default_password_crypted: “ 1 1 1gEc7ilpP$pg5iSOj/mlxTxEslhRvyp/”

manage_dhcp:1

manage_tftpd:1

pxe_just_once:1

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

server:<cobbler服务器的 IP 地址>

cobbler PXE启动错误报告-来自网络

PXE-E00:Could not find enough free base memory.

      PXE主代码和UNDI运行时模块从闪存或上位内存拷贝至基本内存顶部480K(78000h)至640K(A0000h)的剩余空间位置,这段内存必须被系统BIOS填零,如果这些内存没有填零,PXE ROM里的重布置代码将认为这些内存已经被系统BIOS或其它启动ROM占用了。

PXE-E01:PCI Vendor and Device IDs do not match!

      此信息在成品BIOS中不可能出现,当系统BIOS初始化基于PCI的ROM时,它将假设PCI总线/设备/模块(Bus/Device/Function)值已在AX寄存器里通过审核,如果AX寄存器里定义的PCI设备不匹配UNDI设备,将出现此错误代码。

PXE-E04:Error reading PCI configuration space

      如果任何PCI BIOS调用导致PCI设置空间返回错误代码,此信息将出现,此信息将不会在成品BIOS和硬件上出现。

PXE-E05:EEPROM checksum error

      如果网卡EEPROM内容被损坏,将出现此信息。EEPROM内容的损坏通常发生在正在对网卡EEPROM进行编程时系统突然复位(Reset)或掉电的情形下,如果出现此信息,PXE ROM将不执行引导。

PXE-E06:Option ROM requires DDIM support

      此信息将不会在成品BIOS中出现,PCI可选ROM通常必须被设置为DDIM可选ROM(通常必须被安置在读/写上位内存中)

PXE-E07:PCI BIOS calls not supported

      此信息将不会在成品BIOS中出现,PCI BIOS必须有PCI BIOS服务。

PXE-E08:Unexpected API error.API:xxxxh Status:xxxxh

      如果PXE API返回一个运行时加载器(Runtime Loader)预料之外的状态代码,将出现此信息

PXE-E09:Unexpected UNDI loader error.Status:xxxxh

      如果UNDI运行时加载器(Runtime Loader)返回预料之外的状态代码,将出现此信息

ARP错误代码

PXE-E11:ARP timeout PXE ROM

      将重试四遍ARP请求,如果无法获取任何有效的ARP答复,将出现此信息,此信息通常源于一些网络和服务设置错误,通常的原因有:

              1.在DHCP主服务器上设置了DHCP类标识符(Option 60)却在另一台服务器上安装了ProxyDHCP服务。

              2.使用了不响应ARP请求的路由器

BIOS和BIS错误代码

PXE-E20:BIOS extended memory copy error.AH==nn

      如果BIOS扩展内存拷贝服务返回一个错误信息,此信息将出现,在成品BIOS中将不会遭遇此信息,代码"nn"为BIOS扩展内存拷贝服务(Int 15h,AH=87h)返回的错误代码。

PXE-E21:BIS integrity check failed

      如果在扩展内存中的BIS映像损坏,则将显示此信息

PXE-E22:BIS image/credential validation failed

      下载的映像和证书不匹配客户端关键字

PXE-E23:BIS initialization failed BIS

      无法被初始化,没有更多可用数据

PXE-E24:BIS shutdown failed BIS

      无法停止,没有更多可用数据

PXE-E25:BIS get boot object authorization check flag failed–2

      PXE启动芯片出错代码表无法检测BIS已启用/已禁用

PXE-E26:BIS free memory failed

      无法释放BIS分配内存

PXE-E27:BIS get signature information failed

      请求BIS证书类型信息不能被确定。

PXE-E28:BIS bad entry structure checksum SM BIOS

      表中的BIS入口结构无效。

TFTP/MTFTP错误代码

PXE-E32:TFTP open timeout TFTP"Open"

      请求没有应答,验证TFTP服务是否正在运行。

PXE-E35:TFTP read timeout

      未收到下一个TFTP数据包

PXE-E36:Error received from TFTP server

      从TFTP服务器上收到了一个错误的TFTP数据包

PXE-E38:TFTP cannot open connection

      当试图送出一个TFTP"Open"包时发生了一个硬件错

PXE-E39:TFTP cannot read from connection

      当试图送出一个TFTP应答包时发生了一个硬件错

PXE-E3A:TFTP too many packages.

      此信息意味着发生了下列两种情况中的一个:

            1.你试图用TFTP下载一个比分配的缓冲区更大的文件

            2.你作为一个从(Slave)客户端使用MTFTP开始下载一个文件,而当你变成一个主(Master)客户端时,此文件的大小发生了改变。

PXE-E3B:TFTP error– File not found

      请求的文件在TFTP服务器上无法找到。

PXE-E3C:TFTP error– Access violation

      已在TFTP服务器上找到了请求的文件,但TFTP服务没有足够的访问权限开启/读取文件。

PXE-E3F:TFTP packet size is invalid

      收到的TFTP包大小超过1456bytes BOOTP/DHCP错误代码

PXE-E51:No DHCP or proxyDHCP offers were received

      客户端没有收到任何有效的DHCP、BOOTP或proxyDHCP应答。

PXE-E52:proxyDHCP offers were received.No DHCP offers were received

      客户端没有收到任何有效的DHCP或BOOTP应答,但客户端收到了至少一个有效的proxyDHCP应答。

PXE-E53:No boot filename received

      客户端收到了至少一个有效的DHCP/BOOTP应答,但没有启动文件名可下载。

PXE-E55:proxyDHCP service did not reply to request on port 4011

      客户端发出一个proxyDHCP请求到DHCP服务器的4011端口并没有收到回复。

UNDI错误代码

PXE-E60:Invalid UNDI API function number

      一个被基本代码所使用的API在UNDI ROM中无法执行。

PXE-E61:Media test failed,check cable

      网线没有插或没有连接,可能是网线坏、网卡坏或连接问题。

PXE-E63:Error while initializing the NIC

      初始化网卡硬件时出现错误,建议换网卡。

PXE-E64:Error while initializing the PHY

      试图初始化PHY硬件时出现错误,建议换网卡。

PXE-E65:Error while reading the configuration data

      读取网卡设置数据时出现错误,建议换网卡。

PXE-E66:Error while reading the initialization data

      读取网卡初始化数据时出现错误,建议换网卡。

PXE-E67:Invalid MAC address

      存储在这块网卡中的MAC地址无效,建议换网卡

PXE-E68:Invalid EEPROM checksum

      EEPROM校验和错误,EEPROM内容已损坏,建议换网卡

PXE-E69:Error while setting interrupt

      无法配置硬件中断,建议换网卡。

Bootstrap和Discovery错误代码

PXE-E74:Bad or missing PXE menu and/or prompt information

      已检测到PXE标识但启动菜单和/或启动命令提示符标识未发现/不存在

PXE-E76:Bad or missing multicast discovery address

      多播创建已启动但多播创建地址标识不符

PXE-E77:Bad or missing discovery server list

      多播和广播创建(Discovery)都被禁用,或使用服务器列表启用,但服务器列表标识未发现/不存在

PXE-E78:Could not locate boot server

      有效的引导服务器应答未被客户端收到

PXE-E79:NBP is too big to fit in free base memory

      NBP太大,超过客户端基本内存容量

PXE-E7A:Client could not locate asecure server

      当客户端未从启动服务器收到任何安全信息并且客户端上的BIS已被启用,将显示此信息。

PXE-E7B:Missing MTFTP server IP address

      当ROM未收到PXE创建标识或proxyDHCP回应和DHCP SIADDR区域被设置为0.0.0.0,将显示此信息。

未分类错误代码

PXE-EA0:Network boot canceled by keystroke

      用户在DHCP/创建/TFTP过程中按了"Esc"或"Ctrl C"键

基础代码/UNDI Loader错误代码

PXE-EC1:BaseCode ROM ID structure was not found UNDI

      引导模块不能发现基础代码ROM ID结构。如果系统中有基础代码ROM映像,它可能已经损坏了

PXE-EC3:BaseCode ROM ID structure is invalid

      基础代码ROM ID结构有问题,基础代码ROM映像已经损坏了

PXE-EC4:UNDI ROM ID structure was not found

      基础代码载入模块不能在UNDI ROM ID结构中定位

PXE-EC5:UNDI ROM ID structure is invalid UNDI

      ROM映像已经损坏了

PXE-EC6:UNDI driver image is invalid UNDI

      ROM映像已经损坏了

PXE-EC8:!PXE structure was not found in UNDI driver code segment

      UNDI ROM映像已经损坏了,或者未能被BIOS载入,此错误信息通常系如下一个或三个原因所致:

              1.当即将调用一个LOM映像的时间点,网卡映像正在被编程进BIOS

              2.在PXE可选ROM开始启动之前,PXE可选ROM载入自检内存管理器(POST Memory Manager,$PMM)分配的内存期间被损坏或删除。

              3.在载入ROM结构期间UNDI_Loader结构未被正确载入

PXE-EC9:PXENV structure was not found in UNDI driver code segment

      UNDI ROM映像可能被损坏了,或未被BIOS载入,此错误信息通常系如下三个原因所致:

              1.当即将调用一个LOM映像的时间点,网卡映像正在被编程进BIOS

              2.在PXE可选ROM开始启动之前,PXE可选ROM载入自检内存管理器(POST Memory Manager,$PMM)分配的内存期间被损坏或删除。

              3.在载入ROM结构期间UNDI_Loader结构未被正确载入。

以上内容原文:https://www.linuxidc.com/Linux/2018-07/153262.htm

以下内容原文:https://blog.csdn.net/weixin_41738417/article/details/88741793

pxe概述

预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)是让计算机通过网卡独立地使用数据设备(如硬盘)或者安装操作系统。最早是Intel 搞出来的一个东西,更深层次的东西我们不用去管,直接上个图,我们看下其工作原理:
pxe
简单总结一下,
PXE Client发送广播包请求DHCP分配IP地址DHCP
Server回复请求,给出IP地址以及Boot
Server的地址PXE下载引导文件执行引导程序
总结来说,PXE主要是通过广播的方式发送一个包,并请注获取一个地址,而后交给TFTP程序下载一个引导文件。下面我们来说一下Kickstart。

Kickstart 概述

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

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

Cobbler简介

1、Cobbler概述

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

2、Cobbler的设计方式

Cobbler 的配置结构基于一组注册的对象。每个对象表示一个与另一个实体相关联的实体(该对象指向另一个对象,或者另一个对象指向该对象)。当一个对象指向另一个对象时,它就继承了被指向对象的数据,并可覆盖或添加更多特定信息。以下对象类型的定义为:

发行版:表示一个操作系统。它承载了内核和 initrd 的信息,以及内核参数等其他数据。
配置文件:包含一个发行版、一个 kickstart 文件以及可能的存储库,还包含更多特定的内核参数等其他数据。
系统:表示要配给的机器。它包含一个配置文件或一个镜像,还包含 IP 和 MAC 地址、电源管理(地址、凭据、类型)以及更为专业的数据等信息。
存储库:保存一个 yum 或 rsync 存储库的镜像信息。
镜像:可替换一个包含不属于此类别的文件的发行版对象(例如,无法分为内核和 initrd 的对象)。

基于注册的对象以及各个对象之间的关联,Cobbler 知道如何更改文件系统以反映具体配置。因为系统配置的内部是抽象的,所以您可以仅关注想要执行的操作。Cobbler 对象关系图如下:cobble-release

3、Cobbller工作原理

cobbler-works

下面我们来简单的说明一下,

  • Server端:

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

  • Client端:

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

4、Cobbler功能

为了协助管理系统,Cobbler 可通过 fence scripts 连接到各种电源管理环境。Cobbler 支持 apc_snmp、bladecenter、bullpap、drac、ether_wake、ilo、integrity、ipmilan、ipmitool、lpar、rsa、virsh 和 wti。

除了这些特性,还可使用一个配置管理系统 (CMS)。您有两种选择:该工具内的一个内部系统,或者集成一个现有的外部 CMS,比如 Chef 或 Puppet。借助内部系统,您可以指定文件模板,这些模板会依据配置参数进行处理(与 kickstart 模板的处理方式一样),然后复制到您指定的位置。如果必须自动将配置文件部署到特定机器,那么此功能很有用。

使用 koan 客户端,Cobbler 可从客户端配置虚拟机并重新安装系统。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值