首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 Cobbler 自动化和管理系统安装(1)

使用 Cobbler 自动化和管理系统安装(1)

设置一个网络环境可能涉及到许多步骤,才能为开始安装做好准备。您必须:
  • 配置服务,比如 DHCP、TFTP、DNS、HTTP、FTP 和 NFS
  • 在 DHCP 和 TFTP 配置文件中填入各个客户端机器的信息
  • 创建自动部署文件(比如 kickstart 和 autoinst)
  • 将安装媒介解压缩到 HTTP/FTP/NFS 存储库中。
这个过程并不简单,而且手动注册每个必须配置的客户端机器可能很麻烦。对配置一台机器的任何参数更改(比如要使用一个不同的操作系统),都需要对配置进行手动干预,并有可能对自动部署文件进行手动干预。当机器数量增加时,如果不高度重视文件组织的条理性,TFTP 目录等元素就可能变得混乱。
Cobbler 通过为机器配置的所有方面创建一个中央管理点,从而解决了这些不足。Cobbler 可重新配置服务,创建存储库,解压缩操作系统媒介,代理或集成一个配置管理系统,控制电源管理等。Cobbler 创建了一个抽象层,您可在其中运行 “add new repository” 或 “change client machine operating system” 等命令。Cobbler 负责处理所有事情:创建或更新配置文件,重新启动服务,或者将媒介解压到新创建的目录中。它的目的是隐藏所有与系统相关的问题,以便您可专注于任务本身。
本文介绍 Cobbler 是如何被设计的,其主要特性,以及使用这些特性快速且轻松地配置机器的示例。首先介绍 Cobbler 的特性。
Tivoli Configuration Manager 是一个集成的软件分发和资产管理套件,包括两个主要组件 Software Distribution 和 Inventory,以及各种服务。Tivoli Configuration Manager 控制一个多平台环境中的配置、分发、变更、版本和资产管理。

该工具提供的功能使用 Cobbler,您无需进行人工干预即可安装机器。Cobbler 设置一个 PXE 引导环境(它还可使用 yaboot 支持 PowerPC),并控制与安装相关的所有方面,比如网络引导服务(DHCP 和 TFTP)与存储库镜像。当希望安装一台新机器时,Cobbler 可以:
  • 使用一个以前定义的模板来配置 DHCP 服务(如果启用了管理 DHCP)
  • 将一个存储库(yum 或 rsync)建立镜像或解压缩一个媒介,以注册一个新操作系统
  • 在 DHCP 配置文件中为需要安装的机器创建一个条目,并使用您指定的参数(IP 和 MAC 地址)
  • 在 TFTFP 服务目录下创建适当的 PXE 文件
  • 重新启动 DHCP 服务以反映更改
  • 重新启动机器以开始安装(如果电源管理已启用)
Cobbler 支持众多的发行版:Red Hat、Fedora、CentOS、Debian、Ubuntu 和 SuSE。当添加一个操作系统(通常通过使用 ISO 文件)时,Cobbler 知道如何解压缩合适的文件并调整网络服务,以正确引导机器。
Cobbler 可使用 kickstart 模板。基于 Red Hat 或 Fedora 的系统使用 kickstart 文件来自动化安装流程。通过使用模板,您就会拥有基本的 kickstart 模板,然后定义如何针对一种配置文件或机器配置而替换其中的变量。例如,一个模板可能包含两个变量 $domain$machine_name。在 Cobbler 配置中,一个配置文件指定 domain=mydomain.com,并且每台使用该配置文件的机器在 machine_name 变量中指定其名称。该配置文件中的所有机器都使用相同的 kickstart 安装且针对 domain=mydomain.com 进行配置,但每台机器拥有其自己的机器名称。您仍然可以使用 kickstart 模板在不同的域中安装其他机器并使用不同的机器名称。
为了协助管理系统,Cobbler 可通过 fence scripts 连接到各种电源管理环境。Cobbler 支持 apc_snmp、bladecenter、bullpap、drac、ether_wake、ilo、integrity、ipmilan、ipmitool、lpar、rsa、virsh 和 wti。要重新安装一台机器,可运行 reboot system foo 命令,而且 Cobbler 会使用必要的凭据和信息来为您运行恰当的 fence scripts(比如机器插槽数)。
除了这些特性,还可使用一个配置管理系统 (CMS)。您有两种选择:该工具内的一个内部系统,或者集成一个现有的外部 CMS,比如 Chef 或 Puppet。借助内部系统,您可以指定文件模板,这些模板会依据配置参数进行处理(与 kickstart 模板的处理方式一样),然后复制到您指定的位置。如果必须自动将配置文件部署到特定机器,那么此功能很有用。
使用 koan 客户端,Cobbler 可从客户端配置虚拟机并重新安装系统。我不会讨论配置管理和 koan 特性,因为它们不属于本文的介绍范畴。但是,它们是值得研究的有用特性。
Cobbler 的设计方式Cobbler 的配置结构基于一组注册的对象。每个对象表示一个与另一个实体相关联的实体(该对象指向另一个对象,或者另一个对象指向该对象)。当一个对象指向另一个对象时,它就继承了被指向对象的数据,并可覆盖或添加更多特定信息。以下对象类型的定义为:
  • 发行版:表示一个操作系统。它承载了内核和 initrd 的信息,以及内核参数等其他数据。
  • 配置文件:包含一个发行版、一个 kickstart 文件以及可能的存储库,还包含更多特定的内核参数等其他数据。
  • 系统:表示要配给的机器。它包含一个配置文件或一个镜像,还包含 IP 和 MAC 地址、电源管理(地址、凭据、类型)以及更为专业的数据等信息。
  • 存储库:保存一个 yum 或 rsync 存储库的镜像信息。
  • 镜像:可替换一个包含不属于此类别的文件的发行版对象(例如,无法分为内核和 initrd 的对象)。
基于注册的对象以及各个对象之间的关联,Cobbler 知道如何更改文件系统以反映具体配置。因为系统配置的内部是抽象的,所以您可以仅关注想要执行的操作。
图 1. Cobbler 对象关系使用 Cobbler配置和使用 Cobbler 的方式包括命令行、API、XML-RPC 和 Web UI。我重点介绍命令行选项。
EPEL 程序包RHEL 和 CentOS 的 Cobbler 程序包通过 EPEL (Extra Packages for Enterprise Linux) 分发,这是 Fedora 社区的一个特殊兴趣小组。EPEL 维护着一组针对 Enterprise Linux 的附加程序包,包括 Red Hat Enterprise Linux (RHEL)、CentOS 和 Scientific Linux (SL) 发行版。如需了解更多信息,

Cobbler 拥有 Fedora、RHEL、CentOS、Ubuntu 和 OpenSuse 发行版的程序包(参阅 )。我以一个 Fedora 系统上的指令为基础 — 如果愿意,可针对另一个系统轻松地调整这些指令。
首先,安装该工具和 fence 代理包,Cobbler 使用这个程序包执行电源管理活动。以 root 用户的身份,执行发行版的包管理器的 install 命令:
yum -y install cobbler fence-agents
安装好这些程序包后,启动必要的服务:
1
2
service cobblerd start
service httpd start




要测试 Cobbler 是否在正常运行,可键入 cobbler check。这个命令显示可能需要调整的配置点。不要担心它们;该命令只是一个为用户提供帮助的指南。后续步骤将配置相关的各个方面(惟一的例外是 SELinux 警告,可按照来自 Cobbler 的指令调整它们)。如果您碰巧获得一条连接错误消息,则需要验证各种服务 — 以及 SELinux 日志(如果已启用)— 是否已正常启动。您可能需要将 SELinux 布尔值 httpd_can_network_connect_cobbler 设置为 true (setsebool -P httpd_can_network_connect_cobbler 1)。如果需要这么做,则请记住在完成后重新启动各项服务。
配置 Cobbler主要的 Cobbler 配置文件是 /etc/cobbler/settings。使用文本编辑器打开这个文件,并设置以下选项:
  • manage_dhcp:1
  • manage_dns:1
  • manage_tftpd:1
  • restart_dhcp:1
  • restart_dns:1
  • pxe_just_once:1
  • next_server:<服务器的 IP 地址>
  • server:<服务器的 IP 地址>
选项 manage_* 和 restart_* 无需加以说明。选项 next_server 用在 DHCP 配置文件中,向机器告知提供引导文件的服务器地址。选项 server 在机器安装期间用于引用 Cobbler 服务器地址。最后,选项 pxe_just_once 预防将机器中的安装循环配置为始终从网络引导。激活此选项时,机器告诉 Cobbler 安装已完成。Cobbler 将系统对象的 netboot 标志更改为 false,这会强制机器从本地磁盘引导。本示例稍后面将使用此选项。
仅配置部分服务可以将 Cobbler 配置为仅管理某些服务来适应您的需要。例如,您可能管理一台文件服务器,但网络中您无法访问的另一台机器提供 DHCP。在这种情况下,DHCP 管理员设置 filename 选项来询问引导文件(x86 系统为 pxelinux.0,PowerPC 为 yaboot),设置 next_server 选项来指向您的文件服务器的 IP 地址。在网络中引导的机器会从您的服务器请求引导文件。然后,配置 Cobbler 来管理 TFTP 服务并在该工具中注册机器,以便它为这些机器提供合适的文件。

您可能未激活所有选项(参阅 )。在本例中,配置 Cobbler 来管理所有服务,因为这是一种常见场景,并可展示如何进行配置。
现在,Cobbler 已知道要管理哪些服务,请告诉它要使用哪些程序。使用的选项为:
  • DHCP:ISC dhcpd 或 dnsmasq
  • DNS:BIND 或 dnsmasq
  • TFTP:in.tftpd 或 cobbler 的内部 TFTP
为 DHCP 和 DNS 使用 dnsmasq 是一个不错的主意,因为 dnsmasq 的配置过程很容易。可使用 in.tftpd,因为这是系统的默认选择。使用清单 1 中的设置编辑文件 /etc/cobbler/modules.conf:
清单 1. 配置设置
1
2
3
4
5
6
7
8
[dns]
module = manage_dnsmasq

[dhcp]
module = manage_dnsmasq

[tftpd]
module = manage_in_tftpd




Cobbler 使用一个模板来创建服务的配置文件。需要编辑 /etc/cobbler/dnsmasq.template 上的 dnsmasq 模板来修改网络信息,比如要使用的网关地址和 IP 范围。假设运行 Cobbler 的服务器也是网关,而且我们的 IP 范围为 192.168.122.5-192.168.122.254,那么在文件中输入以下这行内容:
1
dhcp-range=192.168.122.5,192.168.122.254,255.255.255.0




通常,您希望阻止未注册的客户端从服务器引导。为此,添加参数 dhcp-ignore=tag:!known。(在以前的版本中,语法可能有所不同:dhcp-ignore=#known。如果有疑问,您可以同时插入两个版本。)文件内容类似于清单 2 中的代码:
清单 2. dnsmasq 模板文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Cobbler generated configuration file for dnsmasq
# $date
#

# resolve.conf .. ?
#no-poll
#enable-dbus
read-ethers
addn-hosts = /var/lib/cobbler/cobbler_hosts

dhcp-range=192.168.122.5,192.168.122.254,255.255.255.0
dhcp-ignore=tag:!known
dhcp-option=3,$next_server
dhcp-lease-max=1000
dhcp-authoritative
dhcp-boot=pxelinux.0
dhcp-boot=net:normalarch,pxelinux.0
dhcp-boot=net:ia64,$elilo

$insert_cobbler_system_definitions




Cobbler 基本上已可以使用了。重新启动服务,并将更改同步到文件系统以使它们生效。还要记住重新启动 xinetd 服务以提供 TFTP。运行以下命令:
1
2
3
service cobblerd restart
cobbler sync
service xinetd restart




您可添加发行版和存储库,创建配置文件,以及注册系统。请记得要验证您的防火墙配置是否允许网络服务 TFTP、DHCP 和 HTTP/HTTPS 使用端口上的流量。
返回列表