使用Cobbler2.6.11批自动化部署Esxi5.5(理论篇)
折腾了半天,终于验证成功了。
为了便于搭建,首先了解下原理。
--------------------------------------------------------------------------------------------
原理篇
前言:
网络安装服务器套件 Cobbler(补鞋匠)。从前,我们一直在做装机民工这份很有前途的职业。自打若干年前 RedHat 推出了 Kickstart后,我们顿觉身价倍增。不再需要刻了光盘一台一台地安装Linux,只要搞定PXE、DHCP、 TFTP,还有那满屏眼花缭乱不知所云的Kickstart脚本,我们就可以像哈里波特一样,轻点魔棒,瞬间安装上百台服务器。这一堆花里胡哨的东西可不是一般人都能整明白的,没有大专以上学历,通不过英语四级,根本别想玩转。但很不幸,RedHat 最新(Cobbler项目最初在2008年左右发布)发布了网络安装服务器套件Cobbler(补鞋匠),它已将 Linux网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会。
--------------------------------------------------------------------------------------------
1. Cobbler介绍
1)Cobbler是一个Linux服务器快速网络安装的服务,而且在经过调整也可以支持网络安装windows。
2)该工具使用python开发,小巧轻便(才15k行python代码),可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS,TFTP、RSYNC以及yum仓库、构造系统ISO镜像。
3)Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。
4)Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管理。
5)Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。
6)Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷。
--------------------------------------------------------------------------------------------
2、Cobbler可以干啥
使用Cobbler,您无需进行人工干预即可安装机器。Cobbler设置一个PXE引导环境(它还可以使用yaboot支持PowerPC),并控制与安装相关的所有方面,比如网络引导服务(DHCP和TFTP)与存储库镜像。当希望安装一台新机器时,Cobbler可以:
1)使用一个以前定义的模板来配置DHCP服务(如果启用了管理DHCP)
2)将一个存储库(yum或rsync)建立镜像或解压缩一个媒介,以注册一个新操作系统
3)在DHCP配置文件中为需要安装的机器创建一个条目,并使用指定的参数(IP和MAC)
4)在TFTP服务目录下创建适当的PXE文件
5)重新启动DHCP服务来反应新的更改
6)重新启动机器以开始安装(如果电源管理已启动)
--------------------------------------------------------------------------------------------
3、Cobbler支持的系统和功能
1) Cobbler支持众多的发行版:RedHat、Fedora、CentOS、Debian、Ubuntu和SUSE。当添加一个操作系统(通常通过使用ISO文件)时,Cobbler知道如何解压缩合适的文件并调整网络服务,以正确引导机器。
2) Cobbler可以使用kickstart模板。基于RedHat或 Fedora的系统使用kickstart文件来自动化安装流程。通过使用模板,就会拥有基本的kickstart模板,然后定义如何针对一种配置文件或机器配置而替换其中的变量。
3)为了协助管理系统,Cobbler可通过fencescripts连接到各个电源管理环境。Cobbler支持apc_snmp、bladecenter、bullpap、drac、 ether_wake、ilo、integrity、ipmilan、ipmitool、lpar、rsa、virsh和wti。要重新安装一台机器,可运行rebootsystem foo命令,而且Cobbler会使用必要的和信息来为您运行恰当的fencescripts(比如机器插槽数)。
4)除了这些特性,还可以使用一个配置管理系统(CMS)。你有两种选择:该工具内的一个内部系统,或者现成的外部CMS,比如Chef或 Puppet。借助内部系统,你可以指定文件模板,这些模板会依据配置参数进行处理(与kickstart模板的处理方式一样),然后复制到你指定的位置。如果必须自动将配置文件部署到特定机器,那么此功能很有用。使用koan客户端,Cobbler可从客户端配置虚拟机并重新安装系统。
--------------------------------------------------------------------------------------------
4、Cobbler主要的网络配置接口:
Cobbler的配置结构基于一组注册的对象。每个对象表示一个与另一个实体相关联的实体(该对象指向另一个对象,或者另一个对象指向该对象)。当一个对象指向另一个对象时,它就继承了被指向对象的数据,并可覆盖或添加更多特定信息。以下对象类型的定义:
1) Distros(发行版):表示一个操作系统,它承载了内核和initrd的信息,以及内核参数等其他数据 vmlinuz+initrd.img
2) Profile(配置文件):包含一个发行版、一个kickstart文件以及可能的存储库,还包含更多特定的内核参数等其他数据
3) Systems(系统):表示要配给的机器。它包含一个配置文件或一个镜像,还包含IP和MAC地址、电源管理(地址、凭据、类型)、(网卡绑定、设置valn等)使用的很少。
4) Repository(镜像):保存一个yum或rsync存储库的镜像信息 mirror、import两个方式
5) Image(存储库):可替换一个包含不属于此类比的额文件的发行版对象(例如,无法分为内核和initrd的对象)。
基于注册的对象以及各个对象之间的关联,Cobbler知道如何更改文件系统以反应具体配置。因为系统配置的内部是抽象的,所以您可以仅关注想要执行的操作。
单个系统安装:
我们需要特定系统: (pxeboot) vmlinuz , initrd.img 特定系统安装源:yum repository
CentOS 5 yum repo , CentOS 6 yum repo
CentOS 5 yum pxeboot , CentOS 6 yum pxeboot 不可以交叉组合
Profile:kickstart
CentOS 6 web = CentOS 6 yum pxeboot + CentOS 6 yum repo + kickstart_web
CentOS 6 database= CentOS 6 yum pxeboot + CentOS 6 yum repo + kickstart_DB
CentOS 5 = CentOS 5 yum pxeboot +CentOS 5 yum repo
这里想要说明的是 ,各系统的Distros与Repo需要通过Profile进行关联起来,不能混搭。
--------------------------------------------------------------------------------------------
4、什么是PXE:
严格来说,PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。协议分为 client
和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE
client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
--------------------------------------------------------------------------------------------
5、什么是KickStart:
KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。