入门手册
使用红帽网络 Satellite 指配和部署
版 2
Red Hat Engineering Content Services
摘要
第 1 章 简介 复制链接链接已复制到粘贴板!
定义
- Kickstarting
- 以自动方式安装 Red Hat 系统的过程,需要很少或者根本不需要人机互动。技术上说,kickstart 指的是使用 Anaconda 安装程序中的机制,允许您向安装程序提供要进行安装的机器内容和配置的简洁描述。在 Satellite 5.3.0 中,这样的简洁系统定义指的是 Kickstart 侧写。
- Kickstart 侧写
- kickstart 文件是一个文本文件,指定要 kickstart 一台机器所需要的所有选项,其中包括分区信息、网络配置和要安装的软件包。在 RHN Satellite 中,Kickstart 侧写是传统 Anaconda kickstart 定义的超级集合,因为 Satellite 的实施是建立在 Cobbler 改进的基础上方可进行 kickstart。Kickstart 侧写假设有 Kickstart 树存在。
- kickstart 树
- Kickstart 一台机器所需要的软件和支持文件。这也常被称为"安装树"。这通常是目录结构,且文件来自与具体发行本一同发售的安装介质。在 Cobbler 术语中,Kickstart 树是 Distro(发行本的简称)的一部分。
- PXE(预引导执行环境)
- 底层协议可允许在通电且没有预先配置目标机器的情况下 kickstart 裸机机器(通常为物理或者真实机器)。PXE 依靠 DHCP 服务器通知客户端引导服务器(在本文本中是指 Satellite 5.3.0 安装)。目标机器的固件必须支持 PXE 方可使用。可以在没有 PXE 的情况下使用虚拟化和 Satellite 重安装工具,虽然 PXE 对引导新的物理机或者重新安装没有在 Satellite 中注册的机器非常有帮助。
Provisioning 方案
- 新安装
- 指配之前没有安装任何操作系统的系统(也称为裸机安装)。
- 虚拟安装
- Satellite 支持 KVM、Xen 全虚拟客体以及 Xen 半虚拟客体。
- 重新指配
- 物理系统和客体系统都可被重新指配,为其提供他们已经在同一 Satellite 事务中的注册。请查看 第 2.5.2 节 “重新指配(Reprovisioning)”。
第 2 章 Kickstart 复制链接链接已复制到粘贴板!
2.1. 所需软件包 复制链接链接已复制到粘贴板!
rhn-tools 红帽网络(RHN) 频道:
koanspacewalk-koan
rhn-tools 频道以便可从您自定义的频道访问这些软件包。
kernel 和 initrd 文件放在 kickstart 树的特别位置,但这些位置在不同构架中有所不同。以下表格给出了不同的位置:
| 构架 | 内核 | 初始 RAM 磁盘映像 |
|---|---|---|
| IBM System z | TREE_PATH/images/kernel.img | TREE_PATH/images/initrd.img |
| PowerPC | TREE_PATH/ppc/ppc64/vmlinuz | TREE_PATH/images/pxeboot/vmlinux |
| 所有其它构架 | TREE_PATH/images/pxeboot/vmlinuz | TREE_PATH/images/pxeboot/initrd.img |
2.2. Kickstart 树 复制链接链接已复制到粘贴板!
过程 2.1. 自动安装 Kickstart 树
satellite-sync 进行频道同步的一部分。
- 选择您要在其中执行 kickstart 的发行本并找到那个发行本的基本频道及其对应的 RHN 工具频道。例如:如果您要在 x86 构架中使用红帽企业版 Linux 5,您将需要
rhel-i386-server-5频道及其对应 RHN 工具频道rhn-tools-rhel-i386-server-5。 - 如果是连接的 Satellite,则可直接使用
satellite-sync将 Satellite 服务器与红帽服务器同步。如果 Satellite 服务器的连接已断开,则需从红帽服务器中获得断开频道的转储,并使用哪些转储同步。 - 与该频道同步将自动为那个发行本创建对应的 kickstart 树。
过程 2.2. 手动安装 Kickstart 树
- 将安装 ISO 复制到您的 satellite 服务器中并将其挂载到
/mnt/iso - 将 ISO 的内容复制到自定义的位置。建议您在
/var/satellite下为所有您的自定义发行创建目录。例如:您可能需要将 RHEL beta 发行的内容复制到/var/satellite/custom-distro/rhel-i386-server-5.3-beta/。 - 使用 RHN Satellite 网页界面创建自定义软件频道。请使用 → → 创建有适当的名称和标签的父频道。如在上述示例中您要使用标签 rhel-5.3-beta。
- 请使用
rhnpush命令将软件的软件包从树的位置 push 到新创建的软件频道中:rhnpush --server=http://localhost/APP -c 'rhel-5.3-beta' \ -d /var/satellite/custom-distro/rhel-i386-server-5.3-beta/Server/
rhnpush --server=http://localhost/APP -c 'rhel-5.3-beta' \ -d /var/satellite/custom-distro/rhel-i386-server-5.3-beta/Server/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该树中的子目录会根据您的发行本而有所不同。 - 将该软件的软件包 push 到该频道中后,您可以使用
rm命令将其从树路径中删除。该软件包仍保存在 Satellite 服务器的那个频道中,但不再需要在树中保存。rm /var/satellite/custom-distro/rhel-i386-server-5.3-beta/Server/*.rpm
rm /var/satellite/custom-distro/rhel-i386-server-5.3-beta/Server/*.rpmCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意
您可以选择将该软件的软件包留在 kickstart 树中。这样以后就可随时使用yum命令安装它们。 - 在 RHN Satellite 网页界面中创建发行。进入 → → → ,使用正确的标签和树路径(比如
/var/satellite/custom-distro/rhel-i386-server-5.3-beta/)创建该发行。选择之前创建的基本频道,并选择正确的安装程序版本(比如「红帽企业版 Linux 5」)。最后选择「创建 Kickstart 发行」完成创建。 - 要在多个环境和系统中维护同一软件,可将现有红帽企业版 Linux 基本频道中的 RHN Tools 子频道克隆到新创建的基本频道中。您可以使用以下方面克隆子频道:
- 在 Satellite 网页界面中,点击 → → 。
- 在下拉菜单 克隆自: 中选择您要克隆的子频道,并选择克隆状态。
- 点击「创建频道」。
- 填写所需信息并选择克隆的子频道所属的上级频道。
- 点击「创建频道」。
图 2.1. 创建 Kickstart 发行
2.3. Kickstart 侧写 复制链接链接已复制到粘贴板!
过程 2.3. 使用向导创建 Kickstart 侧写
- 选择 → →
- 提供正确的「标签」,并选择所需「基本频道」和「可 kickstart 的树」。
- 为该 kickstart 侧写选择下载位置。如果您要使用自定义发行,请输入它的树位置作为 URL(支持 HTTP 和 FTP),否则请使用默认选项。点击「下一步」继续。
- 输入 root 密码并点击「完成」完成该侧写的创建。
- 此时会生成完整的 Kickstart 侧写。点击「Kickstart 文件」可查看该侧写。
过程 2.4. 使用原始方法创建 Kickstart 侧写
- 选择 → →
- 提供正确的「标签」,并选择所需「发行」。
- 选择所需「虚拟化类型」。有关虚拟化类型的详情请查看 虚拟化类型。
- 如果您有现成的 kickstart 侧写,请上传该文件。否则请在「文件内容」框中写入该 kickstart 侧写。这里是您可以作为参考的原始 kickstart 示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - RHN Satellite 服务器不会处理 kickstart 中指定为
url的发行,因此您要在您的侧写中包含url --url选项,具体应类似如下:url --url http://satellite.example.com/ks/dist/org/1/my_distro
url --url http://satellite.example.com/ks/dist/org/1/my_distroCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用发行标签替换my_distro,使用您的 org id 替换1。 - 原始 kickstart 侧写使用
$http_server而不是 Satellite 的主机名。会在修改 kickstart 模板时自动填写。 - 可使用
redhat_register片断处理注册。
图 2.2. 原始 Kickstart
所有 Kickstart 侧写都有与之关联的虚拟化类型。以下表格列出了不同的选项:
| 类型 | 描述 | 用法 |
|---|---|---|
| 「无」 | 无虚拟化 | 一般指配、裸机以及 Xen 或者 KVM 以外的虚拟安装(比如 VMware 或者 Virtage)会使用这个类型 |
| KVM 虚拟客体 | KVM 客体 | 使用这个类型指配 KVM 客体 |
| 「Xen 全虚拟客体」 | Xen 客体 | 使用这个类型指配 Xen 客体
注意
这个选项需要在主机中支持硬件,但不需要在客体中修改操作系统。
|
| 「Xen 半虚拟客体」 | Xen 客体 | 在使用 Xen 半虚拟化指配虚拟机时使用这个类型。它要求在系统 CPU 中有 PAE 标记以及一个修改的操作系统。红帽企业版 Linux 5 支持半虚拟化机。 |
| 「Xen 虚拟化主机」 | Xen 主机 | 在使用 Xen 半虚拟化的虚拟主机中指配时使用这个类型。如果硬件兼容也支持 Xen 半虚拟客体和主机。 |
%packages 部分包括 kernel-xen 软件包。
%packages 部分包括 qemu 软件包。
注意
2.4. 模板 复制链接链接已复制到粘贴板!
for 循环和 if 报告。您可以使用 cheetah 工具得到达到此目的。
- 在多个 kickstart 间重新使用某个 kickstart 的具体部分,比如磁盘分区部分。
- 在多个 kickstart 间您可能要执行一些
%post动作。 - 在多个服务器间定义片断,比如 DNS 服务器、proxy 服务器和 web 服务器。例如 web 服务器可能需要定义以下片断:
httpd mod_ssl mod_python
httpd mod_ssl mod_pythonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您要创建 web 服务器侧写,请在 Kickstart 文件的%package部分包含 web 服务器片断。如果您要在 web 服务器和 proxy 服务器中同时拥有侧写,您应该在软件包部分包含二者的片断。然后如果您要在 web 服务器片断中添加另一个软件包,比如mod_perl,您更新该片断后,就会更新所有使用那个片断的侧写。
模板可让您定义在 kickstart 文件中使用的变量。变量是可以继承的,这样就可在一层中设定它们并覆盖更低的层。因此,如果在系统层定义了某个变量,那么它就会覆盖在侧写或者 kikcstart 树层中定义的同一变量。同样,如果在侧写层定义了某个变量,那么它将会覆盖在 kickstart 树层定义的同一变量。
注意
片断可重复使用多个 kickatart 模板中的代码片。它们可衍生出很多行,其中包含变量。可使用文本 $SNIPPET('片段名称') 将其包含在 kickstart 树中。您可以为软件包列表创建片断,可以是 %post 脚本,或者是通常包含在 kickstart 文件中的文本。
/var/lib/cobbler/snippets/ 目录中。/var/lib/rhn/kickstarts/wizard/ 中还有一些向导模式的 kickstart 模板,其中解释了不同的默认片断及其工作原理。
redhat_register 片断是 kickstart 的一部分,用于在 RHN Satellite 服务器中注册机器的默认片断。它使用名为 redhat_management_key 的变量注册机器。要使用这个片断,请在系统、侧写或者发行层设定 redhat_management_key 变量,并在 kickstart 文件的 %post 部分添加 $SNIPPET('redhat_register')。RHN Satellite 服务器生成的所有向导类型的 kickstart 都包含在 %post 部分的这个片断中。
/var/lib/rhn/kickstarts/snippets/ 目录中。RHN Satellite 为不同机构在不同目录中保存片断,因此自定义片断将会被保存在类似以下名称的目录中,其中 1 为机构 ID:
$SNIPPET('spacewalk/1/snippet_name')
$SNIPPET('spacewalk/1/snippet_name')
注意
图 2.3. Kickstart 片断
可在生成模板的过程中使用 $ 和 # 字符指定变量和控制流。如果您需要在脚本中出于其他目的使用这些字符,则需要将其转义以免将其识别为变量。有几个转义方法可用:
- 在每个要在生成模板的过程中忽略的
$或者#实例前使用反斜杠(\)。 - 使用
#raw ... #endraw打包整个脚本所有使用向导类型 kickstart 所生成的%pre和%post脚本都默认使用#raw...#endraw打包。这可在编辑%post或者%pre脚本时使用「模板」复选框切换。 - 在该片断的第一行中包含
#errorCatcher Echo。
例 2.1. 在模板中转义特殊字符
%post 部分插入以下 bash 脚本:
%post echo $foo > /tmp/foo.txt
%post
echo $foo > /tmp/foo.txt
$,则模板生成引擎就会尝试查找名为 $foo 的变量,且因为 foo 不存在而失败。
$ 最简单的方法是使用反斜杠字符(\):
%post echo \$foo > /tmp/foo.txt
%post
echo \$foo > /tmp/foo.txt
\$foo 变为 $foo。
#raw ... #endraw 中的整个 bash 脚本打包,如下
%post #raw echo $foo > /tmp/foo.txt #end raw
%post
#raw
echo $foo > /tmp/foo.txt
#end raw
#errorCatcher Echo。这可让模板引擎忽略所有不存在的变量并照原样输出其文本。在使用向导模式的 kickstart 中已经包含此选项,并可添加到手动创建的所有原始 kickstart 中。
2.5. Kickstart 一台机器 复制链接链接已复制到粘贴板!
2.5.1. 在裸机中 Kickstart 复制链接链接已复制到粘贴板!
- 标准操作系统安装介质
- PXE 引导
过程 2.5. 使用安装介质引导
- 在机器中插入安装介质。这个介质必须与您要使用的 kickstart 匹配。例如:如果将 kickstart 配置为
ks-rhel-i386-server-5-u2kickstart 树,请使用红帽企业版 Linux 5.2 i386 安装介质。 - 当出现引导提示符时,使用这个命令激活 kickstart:
linux ks=http://satellite.example.com/path/to/kickstart
linux ks=http://satellite.example.com/path/to/kickstartCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 系统引导后,下载 kickstart 并自动安装。
过程 2.6. PXE 引导
重要
如果您在网络的另一个系统中部署了 DHCP 服务器,则您将需要有该 DHCP 服务器的管理权限以便可编辑 DHCP 配置文件。如果您的机器位于多网络中,则您将需要确定您的所有机器都可连接到 DHCP 服务器。您可以通过多重连接(multi-homing)您的 DHCP 服务器(可以是真实或者集群 VLAN),并将所有路由器或者开关配置为允许 DHCP 协议通过网络界限达到此目的。通过为您希望由 RHN Satellite 管理的系统设定next-server地址将您的 DHCP 服务器配置为指向 PXE 服务器。要在执行安装时使用主机名,则需要将 DHCP 服务器配置为指向该域和 IP 地址,方法是在配置文件中添加以下行:option domain-name DOMAIN_NAME; option domain-name-servers IP_ADDRESS1, IP_ADDRESS2;
option domain-name DOMAIN_NAME; option domain-name-servers IP_ADDRESS1, IP_ADDRESS2;Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 DHCP 服务器中切换为 root 用户并打开
/etc/dhcpd.conf文件。添加有选项的新级别以便执行 PXE 引导安装:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个级别将执行以下动作:- 使用
bootp协议启用网络引导 - 创建名为
PXE的级别。如果将某个系统配置为 PXE 有第一引导优先权,则将其识别为PXEClient。 - DHCP 服务器会将该系统在 IP 地址 192.168.2.1 指向 Cobbler 服务器
- DHCP 服务器会参考
/var/lib/tftpboot/pxelinux.0的引导映像文件
- 配置 Xinetd。Xinetd 是管理一组服务的守护进程,其中包括 TFTP,即用来将引导映像传送到 PXE 客户端的 FTP 服务器。运行
chkconfig命令启用 Xinetd:chkconfig xinetd on
chkconfig xinetd onCopy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,您还可切换为 root 用户并打开/etc/xinetd.d/tftp文件,找到disable = yes行,并将其改为disable = no。 - 启动 Xinetd 服务以便 TFTP 可开始服务于
pxelinux.0引导映像:chkconfig --level 345 xinetd on /sbin/service xinetd start
chkconfig --level 345 xinetd on /sbin/service xinetd startCopy to Clipboard Copied! Toggle word wrap Toggle overflow chkconfig命令会为所有用户运行级别打开xinetd访问,同时/sbin/service命令会立即打开xinetd。
2.5.2. 重新指配(Reprovisioning) 复制链接链接已复制到粘贴板!
例 2.2. 配置内核选项及后内核选项
Kernel Options 行中包含 vnc vncpassword=PASSWORD。
noapic 内核选项的系统内核,请在 Post Kernel Options 行添加 noapic 内核选项。
过程 2.7. 文件保留
注意
- 请进入 → → → ,并生成要保留的文件列表。
- 进入 → → ,并选择所需侧写将文件保留列表与 kickstart 关联。
- 进入 → ,并选择文件保留列表。
2.5.3. 虚拟客体指配 复制链接链接已复制到粘贴板!
- KVM 虚拟客体
- Xen 全虚拟客体
- Xen 半虚拟客体
过程 2.8. 指配虚拟客体
- 查看拥有「虚拟化」或者「虚拟化平台」系统授权的主机系统。
- 在「系统」页面中选择适当的虚拟主机,然后选择 → 。选择正确的 kickstart 侧写并输入客体名称。
- 要配置额外的参数,比如虚拟机内存以及 CPU 用量,请点击按钮。此时您可配置以下选项:
- 网络:静态或者 DHCP
- 内核选项
- 软件包侧写同步:当 kickstart 完成后,系统会将其软件包侧写与另一系统或者保存的侧写同步
- 内存分配:RAM(默认为 512MB)
- 虚拟磁盘大小
- 虚拟 CPU(默认为 1)
- 虚拟桥接:用于安装的联网桥接。Xen 指配默认使用
xenbr0,而 KVM 默认使用virbr0。注意
virbr0联网桥接不允许外部联网。如果您需要外部联网,请将该主机配置为生成实际桥接。但xenbr0是一个实际桥接,建议您在可能的情况下使用它。 - 虚拟存储路径:到保存客体磁盘信息的文件、LVM 逻辑卷、目录或者块设备路径,比如
/dev/sdb、/dev/LogVol00/mydisk、VolGroup00或者/var/lib/xen/images/myDisk。
- 点击。
2.5.4. 使用 RHN Proxy 指配 复制链接链接已复制到粘贴板!
- 当指配一台虚拟客体或者重新指配某个系统时,可从「选择 Stellite Proxy」下拉菜单中选择所需代理服务器。
- 在裸机安装中,请使用该代理服务器的完全限定域名(FQDN)替换该 RHN Satellite 的 FQDN。例如:如果 kickstart 文件的 URL 为:
http://satellite.example.com/ks/cfg/org/1/label/myprofile
http://satellite.example.com/ks/cfg/org/1/label/myprofileCopy to Clipboard Copied! Toggle word wrap Toggle overflow 那么要通过 Proxy 执行 kickstart,请使用:http://proxy.example.com/ks/cfg/org/1/label/myprofile
http://proxy.example.com/ks/cfg/org/1/label/myprofileCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 3 章 多个 Satellite 复制链接链接已复制到粘贴板!
ISS 要求
- 两台或者更多的 RHN Satellite 服务器
- 至少在一台 RHN Satellite 中使用至少一个频道
- 为保证连接安全,要求每个辅 RHN Satellite 都有一个主 RHN Satellite SSL 证书
3.1. Satellite 间的同步 复制链接链接已复制到粘贴板!
过程 3.1. 配置主服务器
- 启用 Stellite 间同步(ISS)功能。打开
/etc/rhn/rhn.conf文件中并添加或者修改以下行:disable_iss=0
disable_iss=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在
/etc/rhn/rhn.conf文件中找到allowed_iss_slaves=行。默认情况下没有为同步指定辅 Satellite。请输入每个辅 Satellite 服务器的主机名,用逗号分开:allowed_iss_slaves=slave1.satellite.example.org,slave2.satellite.example.org
allowed_iss_slaves=slave1.satellite.example.org,slave2.satellite.example.orgCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存配置文件并重启
httpd服务:service httpd restart
service httpd restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
过程 3.2. 配置辅服务器
- 要安全将内容传送到辅服务器中,您需要来自主 RHN Satellite 服务器的
ORG-SSL证书。您可通过 HTTP 在任意 Satellite 的/pub/目录中下载这个证书。文件名为RHN-ORG-TRUSTED-SSL-CERT,您可为其重命名并保存在辅 Satellite 的任意目录中,比如/usr/share/rhn/目录。 - 使用以下命令在主服务器中查看可同步的频道列表。这会显示官方红帽频道以及可用的自定义频道:
satellite-sync --iss-parent=master.satellite.example.com --ca-cert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --list-channels
satellite-sync --iss-parent=master.satellite.example.com --ca-cert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --list-channelsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用主服务器的主机名替换 master.satellite.example.com。
过程 3.3. 执行 Satellite 间同步
- 在辅服务器中使用您喜欢的文本编辑器打开
/etc/rhn/rhn.conf文件,添加主服务器主机名和 SSL 证书文件路径详情:iss_parent = master.satellite.example.com iss_ca_chain = /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
iss_parent = master.satellite.example.com iss_ca_chain = /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERTCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 然后运行
satellite-sync命令开始同步:satellite-sync -c your-channel
satellite-sync -c your-channelCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意
satellite-sync命令的所有命令行选项都会覆盖/etc/rhn/rhn.conf文件的自定义设置。
3.2. 机构间同步 复制链接链接已复制到粘贴板!
- 如果源内容属于
NULL机构(即红帽内容),它将默认使用NULL机构,即使指定了目的机构也会如此。这是要保证指定的内容总是在特许的NULL机构中。 - 如果在命令行中指定一个机构,它就会从那个机构中导入内容。
- 如果没有指定机构,则默认使用机构 1。
orgid)同步的示例情况:
例 3.1. 从主 satellite 中向辅 satellite 中导入内容
satellite-sync --parent-sat=master.satellite.example.com -c channel-name --orgid=2
satellite-sync --parent-sat=master.satellite.example.com -c channel-name --orgid=2
例 3.2. 从某个机构导出的转储中导入内容
satellite-sync -m /dump -c channel-name --orgid=2
$ satellite-sync -m /dump -c channel-name --orgid=2
例 3.3. 从 Red Hat Network 托管中导入内容
satellite-sync -c channel-name
$ satellite-sync -c channel-name
3.3. ISS 使用案例 复制链接链接已复制到粘贴板!
例 3.4. 临时 Satellite
- 运行
satellite-sync命令与「rhn_parent」(通常为 Red Hat Network 托管)中的数据同步。satellite-sync -c your-channel
satellite-sync -c your-channelCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 运行以下命令与临时服务器中的数据同步:
satellite-sync --iss-parent=staging-satellite.example.com -c custom-channel
satellite-sync --iss-parent=staging-satellite.example.com -c custom-channelCopy to Clipboard Copied! Toggle word wrap Toggle overflow
例 3.5. 同步的辅服务器
例 3.6. 辅自定义内容
例 3.7. 双向同步
- 确定两个 satellite 可共享 SSL 证书。
- 在第一个 Satellite 中打开
/etc/rhn/rhn.conf文件并将iss_parent选项设定为指向第二个 Satellite 的主机名。 - 在第二个 Satellite 中打开
/etc/rhn/rhn.conf文件并将iss_parent选项设定为指向第一个 Satellite。
第 4 章 高级 API 方法和命令 复制链接链接已复制到粘贴板!
4.1. XML-RPC API 复制链接链接已复制到粘贴板!
| XML-RPC 命名空间 | 用法 |
|---|---|
kickstart | 创建、导入并删除 kickstart 侧写。另外可用于列出 kickstart 树和侧写。 |
kickstart.tree | 创建、重命名、更新和删除 kickstart 树。 |
kickstart.filepreservation | 列出、创建和删除可与 kickstart 侧写关联的文件保留列表。生成文件保留列表后,可调用 kickstart.profile.system.add_file_preservations API 方法将其与 kickstart 侧写关联。 |
kickstart.keys | 列出、创建和删除与不同 kickstart 侧写关联的加密密钥(GPG/SSL)。
注意
创建加密密钥后,可调用 kickstart.profile.system.add_keys API 方法将其与 kickstart 侧写关联。
|
kickstart.profile | 控制 IP 范围、更改 kickstart 树和子频道、下载与某个侧写关联的 kickstart 文件、控制高级选项、控制自定义选项以及添加与 kickstart 侧写的预/后脚本。 |
kickstart.profile.keys | 列出、添加(关联)和删除(取消关联)与 kickstart 侧写关联的激活密钥。 |
kickstart.profile.software | 控制与 kickstart 侧写关联的软件包列表。 |
kickstart.profile.system | 管理保留文件、管理加密密钥、启用/禁用配置管理和远程命令、设定分区方案以及设定与 kickstart 侧写关联的位置信息。 |
system.provision_systemsystem.provision_virtual_guest
https://satellite.example.com/rpc/api。
4.2. Cobbler 复制链接链接已复制到粘贴板!
| 命令 | 用法 |
|---|---|
cobbler profile list | 在 RHN Satellite 主机中运行此命令显示侧写列表 |
cobbler distro list | 显示 kickstart 树、内核、RAM 磁盘和其它选项列表 |
cobbler system list | 显示在调度 kickstart 时生成的显示系统记录列表 |
cobbler profile report --name=profile-name or cobbler system report --name=system-name | 要显示具体对象的详细输出 |
cobbler profile edit --name=profile-name --virt-ram=1024 | 编辑各种参数。这个示例会为每个给定侧写的虚拟安装分配 1GB 的内存: |
cobbler system edit --name=system-name --netboot-enabled=1 | 强制系统在下次重启时重新安装 |
cobbler system edit --name=system-name --profile=new-profile-name --netboot-enabled=1 | 为新侧写分配系统重新安装: |
cobbler system find --profile=profile-name | 列出为某个侧写分配的所有系统: |
cobbler system find --profile="abc" | xargs -n1 --replace cobbler system edit \ --name={} --profile="def" --netboot-enabled=1 | 将目前设定为 abc 侧写的所有系统都分配给 def 侧写并在下次开机时重新安装它们 |
cobbler profile edit --name=profilename --kopts="variablename=3" --in-place | 在侧写中设定附加模板变量但不修改其它任何变量 |
cobbler system edit --name=systemname --kopts="selinux=disabled asdf=jkl" | 为系统记录分配各种变脸,并忽略所有设定的旧变量 |
cobbler profile find --name="*webserver*" | xargs -n1 --replace cobbler profile edit --name={} --profile="RHEL5-i386" | 将所有包含 webserver 的侧写的全新安装设定为一个字符串,以便使用名为 RHEL5-i386 的侧写 |
只有几个 Cobbler 设置可直接在 /etc/cobbler/settings 文件中更改。pxe_just_once 选项就是其中之一(如 过程 4.3, “将 Cobbler 配置为使用 PXE” 所述)。还可更改 server 反映 RHN Satellite 服务器的地址或者主机名。
/etc/cobbler/settings 后,请运行以下命令使其生效:
/sbin/service cobblerd restart cobbler sync
/sbin/service cobblerd restart
cobbler sync
重要
/etc/cobbler/settings 中的任何设置。RHN Satellite 要求该文件保持某种设置,这取决于 RHN Satellite 安装程序。同样的要求也适用于控制认证源的 /etc/cobbler/modules.conf 文件,应保持为 RHN Satellite 安装程序所生成的样子。特别是认证模块必须保持为 authn_spacewalk,不能更改。
过程 4.1. 为使用 Cobbler 配置 SELinux
- 要为 Cobbler 支持启用 SELinux,您必须使用以下命令将 SELinux 布尔值设定为允许 HTTPD 网页服务组件:
setsebool -P httpd_can_network_connect true
setsebool -P httpd_can_network_connect trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow -P选项是必须的,因为它可在所有系统重启中永久启用 HTTPD 连接。 - 要将 TFTP 将 SELinux 文件上下文规则设定为使用引导映像文件,请在 Cobbler 服务器中使用以下命令:
semanage fcontext -a -t public_content_t "var/lib/tftpboot/.*"
semanage fcontext -a -t public_content_t "var/lib/tftpboot/.*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 必须配置 IPTables 使其允许 Cobbler 服务器中的进出网络流量。如果您有使用 iptables 的防火墙规则组,请添加以下规则打开与 Cobbler 相关的端口,如下所示:TFTP:
/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 69 -j ACCEPT /sbin/iptables -A INPUT -m state --state NEW -m udp -p udp --dport 69 -j ACCEPT
/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 69 -j ACCEPT /sbin/iptables -A INPUT -m state --state NEW -m udp -p udp --dport 69 -j ACCEPTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 HTTPD:/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 Cobbler:/sbin/iptables -A INPUT -m state --state NEW -m udp -p udp --dport 25150 -j ACCEPT
/sbin/iptables -A INPUT -m state --state NEW -m udp -p udp --dport 25150 -j ACCEPTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 Koan:/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 25151 -j ACCEPT
/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 25151 -j ACCEPTCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存防火墙配置:
/sbin/iptables-save
/sbin/iptables-saveCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 运行以下命令确定同步了所有配置文件:
cobbler sync
cobbler syncCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 启动 Satellite 服务器:
/usr/sbin/rhn-satellite start
/usr/sbin/rhn-satellite startCopy to Clipboard Copied! Toggle word wrap Toggle overflow 警告
不要独立于 Satellite 服务启动或者停止cobblerd服务,这样做会造成错误或者其它问题。总是使用/usr/sbin/rhn-satellite启动或者停止 RHN Satellite。
过程 4.2. 配置 Cobbler 系统记录
- 在每个系统中进入 → ,并选择要关联的 kickstart 侧写。
- 点击生成关联。
- 完成二者间的关联后,它就会一直保持这个状态直到您为任意给定机器将
pxe_just_once设定为 true。在那种情况下成功 kickstart 后关联会解除。有关此设置的详情请参考 过程 4.3, “将 Cobbler 配置为使用 PXE”。
过程 4.3. 将 Cobbler 配置为使用 PXE
pxe_just_once 配置选项以便在 BIOS 中获得最佳 PXE 流量。
- 通常会将 BIOS 顺序设定为首先执行 PXE 引导。就是说该系统不会关闭本地磁盘,除非 PXE 服务器远程指导它这样做。这个设置可生成引导循环,导致系统不断重新安装。要防止引导循环,请打开
/etc/cobbler/settings文件并添加以下行:pxe_just_once: 1
pxe_just_once: 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个设置在 kickstart 模板中添加了$kickstart_done宏,这可让该系统在完成安装后本地引导,而不是从网络引导。 - 如果您包含了
pxe_just_once: 1设置,并想以后重新安装该系统,则您需要在该系统中启动netboot-enabled标记。您可在 RHN Satellite 网页界面中,或者直接在 Cobbler 中启动。系统下一次重启时,它将会执行 PXE 安装,然后返回使用本地磁盘引导直到重新设定该标记为止。如果将该 BIOS 设定为首先使用本地硬盘引导,则不需要启用pxe_just_once参数。但如果要使用 PXE 重新指配该系统,则需要 MBR(主引导记录)清零。
命名惯例
- 发行
$tree_name:$org_id:$org_name(如果手动生成)$tree_name(如果使用 RHN Satellite Sync 同步)- 侧写
$profile_name:$org_id:$org_name
重要
注意
/var/log/cobbler/ 文件中记录数据。
4.3. Koan 复制链接链接已复制到粘贴板!
koan(通过网络 kickstart)程序是可让您从已经指配的主机中远程访问 RHN Satellite。Koan 可让您执行 kickstart 指配、创建虚拟客体(在虚拟主机中)并列出 RHN Satellite 主机中可用的 kickstart。该程序包含在 koan 软件包中。
| 命令 | 用法 |
|---|---|
man koan | 阅读 koan 手册页面 |
koan --replace-self --server=satellite.example.org --profile=profile-name 或者 koan --replace-self --server=satellite.example.org --system=system-name | 重新分配现有系统。运行此命令后重启安装新的操作系统。您还可以用于升级 kickstart(例如:将大量机器从红帽企业版 Linux 的一个版本升级到下一个版本)。 |
koan --virt --server=satellite.example.org --profile=profile-name or koan --virt --server=satellite.example.org --system=system-name | 指配虚拟客体 |
koan --list=profiles --server=satellite.example.org or koan --list=systems --server=satellite.example.org | 查询 Cobbler 显示远程安装可使用的侧写或者系统列表 |
注意
/var/log/koan 文件中记录数据。
第 5 章 故障排除 复制链接链接已复制到粘贴板!
- 5.1. Web 界面
- 5.2. Anaconda
- 5.3. 回溯(Tracback)
- 5.4. 注册
- 5.5. Kickstart 和片断
5.1. Web 界面 复制链接链接已复制到粘贴板!
/var/log/tomcat5/catalina.out 日志文件。
/var/log/httpd/error_log 日志文件。
5.2. Anaconda 复制链接链接已复制到粘贴板!
Error downloading kickstart file 出错信息。出了什么问题,如何修复?
cobbler check 命令,并查看输出结果,您应该看到类似如下信息:
cobbler check 没有提供任何回答,请检查:
- 确定
httpd正在运行:service httpd status - 确定
cobblerd正在运行:service cobblerd status - 确定您可在不同主机中使用
wget提取上述文件:wget http://satellite.example.com/cblr/svc/op/ks/profile/rhel5-i386-u3:1:Example-Org
wget http://satellite.example.com/cblr/svc/op/ks/profile/rhel5-i386-u3:1:Example-OrgCopy to Clipboard Copied! Toggle word wrap Toggle overflow
The file chkconfig-1.3.30.1-2.i386.rpm cannot be opened。是什么问题,该如何修复?
--url 参数从 RHN Satellite 中提取内容。例如:
url --url http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3
url --url http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3
200 OK 响应。您可以尝试使用 wget 在那个 URL 定位该文件:
200 OK 之外的响应,请检查出错日志发现问题所在。您还可以通过搜索 access_log 文件检查 Anaconda 具体尝试下载的文件:
access_log 文件中,则该系统就应该有联网设置问题。如果该请求没有出现但生成出错信息,请检查出错日志。
wget http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3/Server/chkconfig-1.3.30.1-2.i386.rpm
wget http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3/Server/chkconfig-1.3.30.1-2.i386.rpm
5.3. 回溯(Tracback) 复制链接链接已复制到粘贴板!
taskomatic 服务沟通时有问题。尝试检查如下内容:
- 确定
httpd正在运行:service httpd status - 确定
cobblerd正在运行:service cobblerd status - 确定没有阻止
localhost连接的防火墙规则
5.4. 注册 复制链接链接已复制到粘贴板!
rhnreg_ks 命令时失败,显示 ERROR: unable to read system id。这是什么问题?
%post 部分,这部分可在 RHN Satellite 中注册该机器:
- 创建一个目录,并在其中保存用于 RHN Satellite 的自定义 SSL 证书。
- 提取要在注册过程中使用的 SSL 证书。
- 搜索并替换
rhn-register中的 SSL 证书字符串;然后使用该 SSL 证书和激活码在 RHN Satellite 注册。每个 kickstart 侧写都有一个激活码,它可保证将该系统分配给正确的基本频道和子频道,并获得正确的系统授权。如果要重新指配现有系统,该激活码还将保证它与之前的系统侧写关联。
rhnreg_ks 命令失败,您会在 ks-post.log 日志文件中看到出错信息:
ERROR: unable to read system id.
ERROR: unable to read system id.
rhn_check 且该系统还没有在 RHN Satellite 中注册也会出现这些出错信息。
5.5. Kickstart 和片断 复制链接链接已复制到粘贴板!
/var/lib/rhn/kickstarts/。在这个目录中,原始 kickstart 位于 upload 子目录中,而使用向导创建的文件保存在 wizard 子目录中:
Raw Kickstarts: /var/lib/rhn/kickstarts/upload/$profile_name--$org_id.cfg Wizard Kickstarts: /var/lib/rhn/kickstarts/wizard/$profile_name--$org_id.cfg
Raw Kickstarts: /var/lib/rhn/kickstarts/upload/$profile_name--$org_id.cfg
Wizard Kickstarts: /var/lib/rhn/kickstarts/wizard/$profile_name--$org_id.cfg
/var/lib/rhn/kickstarts/snippets。Cobbler 使用符号链接 /var/lib/cobbler/snippets/spacewalk 访问片断。
Snippets: /var/lib/rhn/kickstarts/snippets/$org_id/$snippet_name
Snippets: /var/lib/rhn/kickstarts/snippets/$org_id/$snippet_name
重要
附录 A. 修订记录 复制链接链接已复制到粘贴板!
| 修订历史 | |||||||
|---|---|---|---|---|---|---|---|
| 修订 4-2.3.400 | 2013-10-31 | ||||||
| |||||||
| 修订 4-2.3 | Thur Apr 18 2013 | ||||||
| |||||||
| 修订 4-2.2 | Wed Mar 6 2013 | ||||||
| |||||||
| 修订 4-2.1 | Thu Feb 21 2013 | ||||||
| |||||||
| 修订 4-2 | Wed Sept 19 2012 | ||||||
| |||||||
| 修订 4-1 | Thu Aug 9 2012 | ||||||
| |||||||
| 修订 4-0 | Mon June 25 2012 | ||||||
| |||||||
| 修订 3-0 | Thu May 31 2012 | ||||||
| |||||||
| 修订 2-0 | Thu May 24 2012 | ||||||
| |||||||
| 修订 1-3 | Mon Aug 15 2011 | ||||||
| |||||||
| 修订 1-2 | Wed Jun 15 2011 | ||||||
| |||||||
| 修订 1-1 | Fri May 27 2011 | ||||||
| |||||||
| 修订 1-0 | Fri May 6, 2011 | ||||||
| |||||||
| 修订 0-8 | Thu May 5, 2011 | ||||||
| |||||||
| 修订 0-7 | Thu April 14, 2011 | ||||||
| |||||||
| 修订 0-6 | Wed March 23, 2011 | ||||||
| |||||||
| 修订 0-5 | Tue March 22, 2011 | ||||||
| |||||||
| 修订 0-4 | Tue March 22, 2011 | ||||||
| |||||||
| 修订 0-3 | Mon March 21, 2011 | ||||||
| |||||||
| 修订 0-2 | Thu March 17, 2011 | ||||||
| |||||||
| 修订 0-1 | Wed Jan 5, 2011 | ||||||
| |||||||
| 修订 0-0 | Tue Dec 21, 2010 | ||||||
| |||||||