入门手册


红帽网络 Satellite 5.5

使用红帽网络 Satellite 指配和部署

版 2

Red Hat Engineering Content Services

摘要

本文档包含有关在红帽网络 Satellite 中使用 kickstart 指配功能的信息和步骤。有关 Satellite 基础的详情请参考《Satellite 用户指南》

第 1 章 简介

Provisioning 是将物理或者虚拟机配置为预定义已知状态的过程。红帽网络(RHN)Satellite 使用 kickstart 进程分配系统。要使用 provisioning 功能,则需要一个或者多台目标机器。目标机器可以是物理机、裸机系统或者虚拟机。要使用 RHN Satellite 虚拟机的 provisioning 功能,则需要使用 Xen 或者 KVM 创建该虚拟机。

定义

一些贯穿本手册的术语:
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 方案

RHN Satellite 支持的 provisioning 方案类型:
新安装
指配之前没有安装任何操作系统的系统(也称为裸机安装)。
虚拟安装
Satellite 支持 KVM、Xen 全虚拟客体以及 Xen 半虚拟客体。
重新指配
物理系统和客体系统都可被重新指配,为其提供他们已经在同一 Satellite 事务中的注册。请查看 第 2.5.2 节 “重新指配(Reprovisioning)”

第 2 章 Kickstart

2.1. 所需软件包

如果您使用自定义发行,则需要以下软件包,它们位于任意 rhn-tools 红帽网络(RHN) 频道:
  • koan
  • spacewalk-koan
建议您克隆现有 rhn-tools 频道以便可从您自定义的频道访问这些软件包。
RHN Satellite 需要将 kernelinitrd 文件放在 kickstart 树的特别位置,但这些位置在不同构架中有所不同。以下表格给出了不同的位置:
Expand
表 2.1. 构架所需发行文件
构架 内核 初始 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 树

您必须至少在您的 Satellite 中安装一个 kickstart 树方可使用 kickstart provisioning。您可以自动和手动安装 kickstart 树。

过程 2.1. 自动安装 Kickstart 树

所有在 RHN 中有基本频道的发行,都会自动安装 kickstart 树。这通常是使用 satellite-sync 进行频道同步的一部分。
  1. 选择您要在其中执行 kickstart 的发行本并找到那个发行本的基本频道及其对应的 RHN 工具频道。
    例如:如果您要在 x86 构架中使用红帽企业版 Linux 5,您将需要 rhel-i386-server-5 频道及其对应 RHN 工具频道 rhn-tools-rhel-i386-server-5
  2. 如果是连接的 Satellite,则可直接使用 satellite-sync 将 Satellite 服务器与红帽服务器同步。如果 Satellite 服务器的连接已断开,则需从红帽服务器中获得断开频道的转储,并使用哪些转储同步。
  3. 与该频道同步将自动为那个发行本创建对应的 kickstart 树。

过程 2.2. 手动安装 Kickstart 树

如果要 kickstart 自定义发行(通常红帽这样的发行),或者红帽企业版 Linux 的 beta 版本,您需要手动创建相应的 kickstart 树。还要为用来 kickstart 的发行本提供安装 ISO。
  1. 将安装 ISO 复制到您的 satellite 服务器中并将其挂载到 /mnt/iso
  2. 将 ISO 的内容复制到自定义的位置。建议您在 /var/satellite 下为所有您的自定义发行创建目录。例如:您可能需要将 RHEL beta 发行的内容复制到 /var/satellite/custom-distro/rhel-i386-server-5.3-beta/
  3. 使用 RHN Satellite 网页界面创建自定义软件频道。请使用「频道」「管理软件频道」「创建新频道」创建有适当的名称和标签的父频道。如在上述示例中您要使用标签 rhel-5.3-beta
  4. 请使用 rhnpush 命令将软件的软件包从树的位置 push 到新创建的软件频道中:
    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 Toggle word wrap
    该树中的子目录会根据您的发行本而有所不同。
  5. 将该软件的软件包 push 到该频道中后,您可以使用 rm 命令将其从树路径中删除。该软件包仍保存在 Satellite 服务器的那个频道中,但不再需要在树中保存。
    rm /var/satellite/custom-distro/rhel-i386-server-5.3-beta/Server/*.rpm
    Copy to Clipboard Toggle word wrap

    注意

    您可以选择将该软件的软件包留在 kickstart 树中。这样以后就可随时使用 yum 命令安装它们。
  6. 在 RHN Satellite 网页界面中创建发行。进入「系统」「Kickstart」「发行」「创建新发行」,使用正确的标签和树路径(比如 /var/satellite/custom-distro/rhel-i386-server-5.3-beta/)创建该发行。选择之前创建的基本频道,并选择正确的安装程序版本(比如「红帽企业版 Linux 5」)。最后选择「创建 Kickstart 发行」完成创建。
  7. 要在多个环境和系统中维护同一软件,可将现有红帽企业版 Linux 基本频道中的 RHN Tools 子频道克隆到新创建的基本频道中。您可以使用以下方面克隆子频道:
    1. 在 Satellite 网页界面中,点击「频道」「管理软件频道」「克隆频道」
    2. 在下拉菜单 克隆自: 中选择您要克隆的子频道,并选择克隆状态。
    3. 点击「创建频道」
    4. 填写所需信息并选择克隆的子频道所属的上级频道。
    5. 点击「创建频道」

图 2.1. 创建 Kickstart 发行

2.3. Kickstart 侧写

Kickstart 侧写会指定用于安装的配置选项。
可使用 向导 界面创建 Kickstart 侧写,它会根据您对一组问题的回答生成侧写。还可以使用 原始方法 创建侧写,使用这种方法您可以完全控制侧写的内容。

过程 2.3. 使用向导创建 Kickstart 侧写

  1. 选择「系统」「Kickstart」「创建新 kickstart 侧写」
  2. 提供正确的「标签」,并选择所需「基本频道」「可 kickstart 的树」
  3. 选择所需「虚拟化类型」。有关虚拟化类型的详情请参考 虚拟化类型。点击「下一步」继续。
  4. 为该 kickstart 侧写选择下载位置。如果您要使用自定义发行,请输入它的树位置作为 URL(支持 HTTP 和 FTP),否则请使用默认选项。点击「下一步」继续。
  5. 输入 root 密码并点击「完成」完成该侧写的创建。
  6. 此时会生成完整的 Kickstart 侧写。点击「Kickstart 文件」可查看该侧写。

过程 2.4. 使用原始方法创建 Kickstart 侧写

  1. 选择「系统」「Kickstart」「上传新 kickstart 文件」
  2. 提供正确的「标签」,并选择所需「发行」
  3. 选择所需「虚拟化类型」。有关虚拟化类型的详情请查看 虚拟化类型
  4. 如果您有现成的 kickstart 侧写,请上传该文件。否则请在「文件内容」框中写入该 kickstart 侧写。
    这里是您可以作为参考的原始 kickstart 示例:
    install
    text
    network --bootproto dhcp
    url --url http://$http_server/ks/dist/org/1/ks-rhel-i386-server-5
    lang en_US
    keyboard us
    zerombr
    clearpart --all
    part / --fstype=ext3 --size=200 --grow
    part /boot --fstype=ext3 --size=200
    part swap --size=1000   --maxsize=2000
    bootloader --location mbr
    timezone America/New_York
    auth --enablemd5 --enableshadow
    rootpw --iscrypted $1$X/CrCfCE$x0veQO88TCm2VprcMkH.d0
    selinux --permissive
    reboot
    firewall --disabled
    skipx
    key --skip
    
    %packages 
    @ Base
    
    %post
    $SNIPPET('redhat_register')
    
    Copy to Clipboard Toggle word wrap
  5. RHN Satellite 服务器不会处理 kickstart 中指定为 url 的发行,因此您要在您的侧写中包含 url --url 选项,具体应类似如下:
    url --url http://satellite.example.com/ks/dist/org/1/my_distro
    Copy to Clipboard Toggle word wrap
    使用发行标签替换 my_distro,使用您的 org id 替换 1
  6. 原始 kickstart 侧写使用 $http_server 而不是 Satellite 的主机名。会在修改 kickstart 模板时自动填写。
  7. 可使用 redhat_register 片断处理注册。

图 2.2. 原始 Kickstart

虚拟化类型

所有 Kickstart 侧写都有与之关联的虚拟化类型。以下表格列出了不同的选项:

Expand
表 2.2. 虚拟化类型
类型 描述 用法
「无」 无虚拟化 一般指配、裸机以及 Xen 或者 KVM 以外的虚拟安装(比如 VMware 或者 Virtage)会使用这个类型
KVM 虚拟客体 KVM 客体 使用这个类型指配 KVM 客体
「Xen 全虚拟客体」 Xen 客体 使用这个类型指配 Xen 客体

注意

这个选项需要在主机中支持硬件,但不需要在客体中修改操作系统。
「Xen 半虚拟客体」 Xen 客体 在使用 Xen 半虚拟化指配虚拟机时使用这个类型。它要求在系统 CPU 中有 PAE 标记以及一个修改的操作系统。红帽企业版 Linux 5 支持半虚拟化机。
「Xen 虚拟化主机」 Xen 主机 在使用 Xen 半虚拟化的虚拟主机中指配时使用这个类型。如果硬件兼容也支持 Xen 半虚拟客体和主机。
创建作为 Xen 主机使用的 Kickstart 侧写应在 %packages 部分包括 kernel-xen 软件包。
创建作为 KVM 主机使用的 Kickstart 侧写应在 %packages 部分包括 qemu 软件包。
全虚拟系统可能需要虚拟化支持方可打开计算机的 BIOS 菜单。

注意

有关 kickstart 的详情请参考《红帽企业版 Linux 安装指南》《Kickstart 安装》一章。

2.4. 模板

Kickstart 模板可让您在您的 kickstart 文件中添加变量、片断以及流量控制报告,比如 for 循环和 if 报告。您可以使用 cheetah 工具得到达到此目的。
模板会对您有帮助的理由如下:
  • 在多个 kickstart 间重新使用某个 kickstart 的具体部分,比如磁盘分区部分。
  • 在多个 kickstart 间您可能要执行一些 %post 动作。
  • 在多个服务器间定义片断,比如 DNS 服务器、proxy 服务器和 web 服务器。例如 web 服务器可能需要定义以下片断:
    httpd
    mod_ssl
    mod_python
    
    Copy to Clipboard Toggle word wrap
    如果您要创建 web 服务器侧写,请在 Kickstart 文件的 %package 部分包含 web 服务器片断。如果您要在 web 服务器和 proxy 服务器中同时拥有侧写,您应该在软件包部分包含二者的片断。然后如果您要在 web 服务器片断中添加另一个软件包,比如 mod_perl,您更新该片断后,就会更新所有使用那个片断的侧写。
变量

模板可让您定义在 kickstart 文件中使用的变量。变量是可以继承的,这样就可在一层中设定它们并覆盖更低的层。因此,如果在系统层定义了某个变量,那么它就会覆盖在侧写或者 kikcstart 树层中定义的同一变量。同样,如果在侧写层定义了某个变量,那么它将会覆盖在 kickstart 树层定义的同一变量。

注意

注:无法为自动生成的 kickstart 树定义 kickstart 树变量,比如那些在您执行 satellite 同步时生成的树。
片断(Snippet)

片断可重复使用多个 kickatart 模板中的代码片。它们可衍生出很多行,其中包含变量。可使用文本 $SNIPPET('片段名称') 将其包含在 kickstart 树中。您可以为软件包列表创建片断,可以是 %post 脚本,或者是通常包含在 kickstart 文件中的文本。

要管理片断,请导航至「系统」「Kickstart」「Kickstart 片断(Kickstart Snippet)」
「Kickstart 片断」页面显示一些不能编辑的默认片断,但所有机构都可以使用它们。默认片断可在编写或者上传到 RHN Satellite 服务器的 kickstart 文件中使用。默认片断是保存在 RHN Satellite 服务器文件系统的 /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')
Copy to Clipboard Toggle word wrap
要确定用来在 kickstart 中插入片断的文本,请查看片断列表中的「片断宏」栏,或者在片断详情页中查看。

注意

位于全局层的片断不会与变量共享同一继承结构。但是可使用片断中的变量在系统请求 kickstart 时更改其行为方式。

图 2.3. Kickstart 片断

转义特殊字符

可在生成模板的过程中使用 $# 字符指定变量和控制流。如果您需要在脚本中出于其他目的使用这些字符,则需要将其转义以免将其识别为变量。有几个转义方法可用:

  • 在每个要在生成模板的过程中忽略的 $ 或者 # 实例前使用反斜杠(\)。
  • 使用 #raw ... #endraw 打包整个脚本
    所有使用向导类型 kickstart 所生成的 %pre%post 脚本都默认使用 #raw...#endraw 打包。这可在编辑 %post 或者 %pre 脚本时使用「模板」复选框切换。
  • 在该片断的第一行中包含 #errorCatcher Echo

例 2.1. 在模板中转义特殊字符

这个示例论述了如何在 kickstart 模板中转义特殊字符。
%post 部分插入以下 bash 脚本:
%post 
echo $foo > /tmp/foo.txt
Copy to Clipboard Toggle word wrap
如果不转义 $,则模板生成引擎就会尝试查找名为 $foo 的变量,且因为 foo 不存在而失败。
转义 $ 最简单的方法是使用反斜杠字符(\):
%post 
echo \$foo > /tmp/foo.txt
Copy to Clipboard Toggle word wrap
这样就会将 \$foo 变为 $foo
第二个方法是将 #raw ... #endraw 中的整个 bash 脚本打包,如下
%post 
#raw  
echo $foo > /tmp/foo.txt 
#end raw
Copy to Clipboard Toggle word wrap
最后一个方法是在您 kickstart 模板的第一行中包含 #errorCatcher Echo。这可让模板引擎忽略所有不存在的变量并照原样输出其文本。在使用向导模式的 kickstart 中已经包含此选项,并可添加到手动创建的所有原始 kickstart 中。

2.5. Kickstart 一台机器

2.5.1. 在裸机中 Kickstart

当机器不存在操作系统或者安装了错误的操作系统,我们称其为裸机。从裸机中指配机器有三种方法:
  • 标准操作系统安装介质
  • PXE 引导

过程 2.5. 使用安装介质引导

  1. 在机器中插入安装介质。这个介质必须与您要使用的 kickstart 匹配。例如:如果将 kickstart 配置为 ks-rhel-i386-server-5-u2 kickstart 树,请使用红帽企业版 Linux 5.2 i386 安装介质。
  2. 当出现引导提示符时,使用这个命令激活 kickstart:
    linux ks=http://satellite.example.com/path/to/kickstart
    
    Copy to Clipboard Toggle word wrap
  3. 系统引导后,下载 kickstart 并自动安装。

过程 2.6. PXE 引导

要执行 PXE 引导,您的所有系统必须都在 BIOS 层支持 PXE 引导。几乎所有最新的硬件都支持此功能。另外,您还必须有一台 DHCP 服务器,即便在安装后将静态配置您的系统也要如此。
  1. 重要

    如果您在网络的另一个系统中部署了 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;
    
    Copy to Clipboard Toggle word wrap
  2. 在 DHCP 服务器中切换为 root 用户并打开 /etc/dhcpd.conf 文件。添加有选项的新级别以便执行 PXE 引导安装:
    allow booting;
    allow bootp;
    class "PXE" {
      match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
      next-server 192.168.2.1;
      filename "pxelinux.0";
    }
    
    Copy to Clipboard Toggle word wrap
    这个级别将执行以下动作:
    1. 使用 bootp 协议启用网络引导
    2. 创建名为 PXE 的级别。如果将某个系统配置为 PXE 有第一引导优先权,则将其识别为 PXEClient
    3. DHCP 服务器会将该系统在 IP 地址 192.168.2.1 指向 Cobbler 服务器
    4. DHCP 服务器会参考 /var/lib/tftpboot/pxelinux.0 的引导映像文件
  3. 配置 Xinetd。Xinetd 是管理一组服务的守护进程,其中包括 TFTP,即用来将引导映像传送到 PXE 客户端的 FTP 服务器。
    运行 chkconfig 命令启用 Xinetd:
    chkconfig xinetd on
    
    Copy to Clipboard Toggle word wrap
    另外,您还可切换为 root 用户并打开 /etc/xinetd.d/tftp 文件,找到 disable = yes 行,并将其改为 disable = no
  4. 启动 Xinetd 服务以便 TFTP 可开始服务于 pxelinux.0 引导映像:
    chkconfig --level 345 xinetd on
    /sbin/service xinetd start
    
    Copy to Clipboard Toggle word wrap
    chkconfig 命令会为所有用户运行级别打开 xinetd 访问,同时 /sbin/service 命令会立即打开 xinetd

2.5.2. 重新指配(Reprovisioning)

重新安装现有系统,也称重新指配。您可使用 RHN Satellite 网页界面执行重新指配,且该系统会使用在将其被重新指配前使用的同一系统侧写。这将保留很多有关该系统的信息和设置。
您可以在查看系统时使用「指配(Provisioning)」标签调度重新指配。要配置额外的选项,请点击「高级选项」页。在这一页中您可以配置详细信息,比如内核选项、联网信息以及软件包侧写同步。「内核选项」部分提供在 kickstart 过程中使用的内核选项,而「后内核选项」是那些在 kickstart 完成后以及第一次引导系统时使用的内核选项。

例 2.2. 配置内核选项及后内核选项

这个示例论述了在重新指配配置过程中内核选项与后内核选项中的不同。
如果您要建立 VNC 连接以便远程监控 kickstart,请在 Kernel Options 行中包含 vnc vncpassword=PASSWORD
要引导所得到的带 noapic 内核选项的系统内核,请在 Post Kernel Options 行添加 noapic 内核选项。

过程 2.7. 文件保留

文件保留功能可用于在重新指配的过程中防止文件丢失。这个功能可在 kickstart 的过程中临时保存文件并在重新指配完成后恢复它们。

注意

只有在向导模式 kickstart 中可使用文件保留列表,且只可在重新指配的过程中使用。
  1. 请进入「系统」「Kickstart」「文件保留」「创建文件保留列表」,并生成要保留的文件列表。
  2. 进入「系统」「Kickstart」「侧写」,并选择所需侧写将文件保留列表与 kickstart 关联。
  3. 进入「系统详情」「文件保留」,并选择文件保留列表。

2.5.3. 虚拟客体指配

在 RHN Satellite 中使用以虚拟化下技术支持虚拟机指配:
  • KVM 虚拟客体
  • Xen 全虚拟客体
  • Xen 半虚拟客体

过程 2.8. 指配虚拟客体

  1. 查看拥有「虚拟化」或者「虚拟化平台」系统授权的主机系统。
  2. 「系统」页面中选择适当的虚拟主机,然后选择「虚拟化」「指配」。选择正确的 kickstart 侧写并输入客体名称。
  3. 要配置额外的参数,比如虚拟机内存以及 CPU 用量,请点击「高级配置」按钮。此时您可配置以下选项:
    • 网络:静态或者 DHCP
    • 内核选项
    • 软件包侧写同步:当 kickstart 完成后,系统会将其软件包侧写与另一系统或者保存的侧写同步
    • 内存分配:RAM(默认为 512MB)
    • 虚拟磁盘大小
    • 虚拟 CPU(默认为 1)
    • 虚拟桥接:用于安装的联网桥接。Xen 指配默认使用 xenbr0,而 KVM 默认使用 virbr0

      注意

      virbr0 联网桥接不允许外部联网。如果您需要外部联网,请将该主机配置为生成实际桥接。但 xenbr0 是一个实际桥接,建议您在可能的情况下使用它。
    • 虚拟存储路径:到保存客体磁盘信息的文件、LVM 逻辑卷、目录或者块设备路径,比如 /dev/sdb/dev/LogVol00/mydiskVolGroup00 或者 /var/lib/xen/images/myDisk
  4. 点击「调度 Kickstart 并完成」

2.5.4. 使用 RHN Proxy 指配

还可使用在 RHN Satellite 中安装并注册的 RHN Proxy 进行指配。
  1. 当指配一台虚拟客体或者重新指配某个系统时,可从「选择 Stellite Proxy」下拉菜单中选择所需代理服务器。
  2. 在裸机安装中,请使用该代理服务器的完全限定域名(FQDN)替换该 RHN Satellite 的 FQDN。例如:如果 kickstart 文件的 URL 为:
    http://satellite.example.com/ks/cfg/org/1/label/myprofile
    
    Copy to Clipboard Toggle word wrap
    那么要通过 Proxy 执行 kickstart,请使用:
    http://proxy.example.com/ks/cfg/org/1/label/myprofile
    
    Copy to Clipboard Toggle word wrap

第 3 章 多个 Satellite

satellite 间同步(ISS)可让您在 Satellite 间协调内容。这个功能可有几个不同的用途,具体要看您机构的需要。本章有一节讲述的是使用案例以及如何设定 ISS 以最佳方式适应您的机构。

ISS 要求

以下是使用 ISS 的前提条件:
  • 两台或者更多的 RHN Satellite 服务器
  • 至少在一台 RHN Satellite 中使用至少一个频道
  • 为保证连接安全,要求每个辅 RHN Satellite 都有一个主 RHN Satellite SSL 证书

3.1. Satellite 间的同步

过程 3.1. 配置主服务器

主服务器可用来决定什么文件要与其它 satellite 同步。
  1. 启用 Stellite 间同步(ISS)功能。打开 /etc/rhn/rhn.conf 文件中并添加或者修改以下行:
    disable_iss=0
    
    Copy to Clipboard Toggle word wrap
  2. /etc/rhn/rhn.conf 文件中找到 allowed_iss_slaves= 行。默认情况下没有为同步指定辅 Satellite。请输入每个辅 Satellite 服务器的主机名,用逗号分开:
    allowed_iss_slaves=slave1.satellite.example.org,slave2.satellite.example.org
    
    Copy to Clipboard Toggle word wrap
  3. 保存配置文件并重启 httpd 服务:
    service httpd restart
    
    Copy to Clipboard Toggle word wrap

过程 3.2. 配置辅服务器

辅 satellite 服务器要将其内容与主服务器同步的机器。
  1. 要安全将内容传送到辅服务器中,您需要来自主 RHN Satellite 服务器的 ORG-SSL 证书。您可通过 HTTP 在任意 Satellite 的 /pub/ 目录中下载这个证书。文件名为 RHN-ORG-TRUSTED-SSL-CERT,您可为其重命名并保存在辅 Satellite 的任意目录中,比如 /usr/share/rhn/ 目录。
  2. 使用以下命令在主服务器中查看可同步的频道列表。这会显示官方红帽频道以及可用的自定义频道:
    satellite-sync --iss-parent=master.satellite.example.com --ca-cert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --list-channels
    
    Copy to Clipboard Toggle word wrap
    使用主服务器的主机名替换 master.satellite.example.com

过程 3.3. 执行 Satellite 间同步

配置完成主服务器和辅服务器后,您可以在二者间执行同步。
  1. 在辅服务器中使用您喜欢的文本编辑器打开 /etc/rhn/rhn.conf 文件,添加主服务器主机名和 SSL 证书文件路径详情:
    iss_parent      = master.satellite.example.com
    iss_ca_chain    = /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
    
    Copy to Clipboard Toggle word wrap
  2. 然后运行 satellite-sync 命令开始同步:
    satellite-sync -c your-channel
    Copy to Clipboard Toggle word wrap

    注意

    satellite-sync 命令的所有命令行选项都会覆盖 /etc/rhn/rhn.conf 文件的自定义设置。

3.2. 机构间同步

ISS 还可用来将内容导入到具体机构中,可以本地执行,也可以使用远程同步。这个功能对多个机构间断开连接的 satellite 非常有用,您可以通过频道转储搜索内容,或者从连接的 satellite 中导出,然后导入到断开连接的 satellite 中。机构间同步可用于从连接的 satellite 中导出自定义频道。它还可用于在机构间有效地移动内容。
机构间同步遵循以下明确规则以便保持源机构的完整性:
  • 如果源内容属于 NULL 机构(即红帽内容),它将默认使用 NULL 机构,即使指定了目的机构也会如此。这是要保证指定的内容总是在特许的 NULL 机构中。
  • 如果在命令行中指定一个机构,它就会从那个机构中导入内容。
  • 如果没有指定机构,则默认使用机构 1。
以下是三个在 Satellite 间使用机构 ID(orgid)同步的示例情况:

例 3.1. 从主 satellite 中向辅 satellite 中导入内容

这个示例是从主 satellite 中向辅 satellite 中导入内容:
satellite-sync --parent-sat=master.satellite.example.com -c channel-name --orgid=2
Copy to Clipboard Toggle word wrap

例 3.2. 从某个机构导出的转储中导入内容

这个示例是从具体机构导出的转储中导入内容:
$ satellite-sync -m /dump -c channel-name --orgid=2
Copy to Clipboard Toggle word wrap

例 3.3. 从 Red Hat Network 托管中导入内容

这个示例是导入红帽网络托管的内容(假设系统已经注册并激活):
$ satellite-sync -c channel-name
Copy to Clipboard Toggle word wrap

3.3. ISS 使用案例

ISS 可有不同的使用方法,具体要看您机构的要求。本小节提供了如何选择使用 ISS、设定方法以及操作这些案例的示例。

例 3.4. 临时 Satellite

在这个示例中,将一个 Satellite 作为临时 Satellite 使用,用它来准备内容并执行软件包质量验证以保证其可在产品中使用。当确定内容可用于产品后,该产品 satellite 可与临时 satellite 的内容同步。
  1. 运行 satellite-sync 命令与「rhn_parent」(通常为 Red Hat Network 托管)中的数据同步。
    satellite-sync -c your-channel
    
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令与临时服务器中的数据同步:
    satellite-sync --iss-parent=staging-satellite.example.com -c custom-channel
    Copy to Clipboard Toggle word wrap

例 3.5. 同步的辅服务器

在这个示例中,主 Satellite 直接将数据提供给辅 satellite,并定期同步其更改的内容。

例 3.6. 辅自定义内容

在这个示例中,主 satellite 是开发频道,在此可将内容发送到所有产品辅 satellite 中。有些辅 satellite 有附加的内容,这些内容不会出现在主 satellite 频道中。这些软件包是保留的,但所有主 satellite 中的更改都会被同步到辅 satellite 中。

例 3.7. 双向同步

在这个环境中两个 RHN Satellite 服务器互为主服务器并可彼此同步其内容。
  1. 确定两个 satellite 可共享 SSL 证书。
  2. 在第一个 Satellite 中打开 /etc/rhn/rhn.conf 文件并将 iss_parent 选项设定为指向第二个 Satellite 的主机名。
  3. 在第二个 Satellite 中打开 /etc/rhn/rhn.conf 文件并将 iss_parent 选项设定为指向第一个 Satellite。

第 4 章 高级 API 方法和命令

4.1. XML-RPC API

RHN Satellite 5.5 使用 XML-RPC API 支持 provisioning。
以下 API 方法可用于 kickstart 侧写和树维护:
Expand
表 4.1. XML-RPC 方法
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 侧写关联的位置信息。
另外,下面的 API 方法调用可用于重新指配主机和客体安装调度。
  • system.provision_system
  • system.provision_virtual_guest
有关 API 调用的详情请参考 API 文档,位置为 https://satellite.example.com/rpc/api

4.2. Cobbler

RHN Satellite 在 provisioning 中使用 Cobbler。当在 RHN Satellite 中更新用于 provisioning 的 kickstart 侧写、树(发行)和系统时,可在 RHN Satellite 主机中将其与 Collber 实例同步。就是说您可以使用 cobbler 直接管理 provisioning。
以下表格描述了 Cobbler 命令:
Expand
表 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 设定

只有几个 Cobbler 设置可直接在 /etc/cobbler/settings 文件中更改。pxe_just_once 选项就是其中之一(如 过程 4.3, “将 Cobbler 配置为使用 PXE” 所述)。还可更改 server 反映 RHN Satellite 服务器的地址或者主机名。

更改 /etc/cobbler/settings 后,请运行以下命令使其生效:
/sbin/service cobblerd restart
cobbler sync
Copy to Clipboard Toggle word wrap

重要

不要修改 /etc/cobbler/settings 中的任何设置。RHN Satellite 要求该文件保持某种设置,这取决于 RHN Satellite 安装程序。同样的要求也适用于控制认证源的 /etc/cobbler/modules.conf 文件,应保持为 RHN Satellite 安装程序所生成的样子。特别是认证模块必须保持为 authn_spacewalk,不能更改。

过程 4.1. 为使用 Cobbler 配置 SELinux

红帽企业版 Linux 安装时默认 SELinux 支持和安全防火墙。要正确配置 红帽企业版 Linux 服务器来使用 Cobbler,则必须将 SELinux 配置为允许来自 Cobbler 服务器的连接。
  1. 要为 Cobbler 支持启用 SELinux,您必须使用以下命令将 SELinux 布尔值设定为允许 HTTPD 网页服务组件:
    setsebool -P httpd_can_network_connect true
    
    Copy to Clipboard Toggle word wrap
    -P 选项是必须的,因为它可在所有系统重启中永久启用 HTTPD 连接。
  2. 要将 TFTP 将 SELinux 文件上下文规则设定为使用引导映像文件,请在 Cobbler 服务器中使用以下命令:
    semanage fcontext -a -t public_content_t "var/lib/tftpboot/.*"
    
    Copy to Clipboard Toggle word wrap
  3. 必须配置 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
    
    Copy to Clipboard Toggle word wrap
    对于 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
    
    Copy to Clipboard Toggle word wrap
    对于 Cobbler:
    /sbin/iptables -A INPUT -m state --state NEW -m udp -p udp --dport 25150 -j ACCEPT
    
    Copy to Clipboard Toggle word wrap
    对于 Koan:
    /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 25151 -j ACCEPT
    
    Copy to Clipboard Toggle word wrap
  4. 保存防火墙配置:
    /sbin/iptables-save
    
    Copy to Clipboard Toggle word wrap
  5. 运行以下命令确定同步了所有配置文件:
    cobbler sync
    
    Copy to Clipboard Toggle word wrap
  6. 启动 Satellite 服务器:
    /usr/sbin/rhn-satellite start
    
    Copy to Clipboard Toggle word wrap

    警告

    不要独立于 Satellite 服务启动或者停止 cobblerd 服务,这样做会造成错误或者其它问题。
    总是使用 /usr/sbin/rhn-satellite 启动或者停止 RHN Satellite。

过程 4.2. 配置 Cobbler 系统记录

Cobbler 系统记录是在 Cobbler 中用来追踪系统及其关联 kickstart 侧写的对象。要执行 PXE kickstart,则必须将该 Cobbler 系统记录与您要 kickstart 的机器绑定。
  1. 在每个系统中进入「系统详情」「指配(Provisioning)」,并选择要关联的 kickstart 侧写。
  2. 点击「创建 Cobbler 系统记录」生成关联。
  3. 完成二者间的关联后,它就会一直保持这个状态直到您为任意给定机器将 pxe_just_once 设定为 true。在那种情况下成功 kickstart 后关联会解除。有关此设置的详情请参考 过程 4.3, “将 Cobbler 配置为使用 PXE”

过程 4.3. 将 Cobbler 配置为使用 PXE

默认将 Cobbler 设定为使用 PXE 配置,但可以调整 pxe_just_once 配置选项以便在 BIOS 中获得最佳 PXE 流量。
  1. 通常会将 BIOS 顺序设定为首先执行 PXE 引导。就是说该系统不会关闭本地磁盘,除非 PXE 服务器远程指导它这样做。这个设置可生成引导循环,导致系统不断重新安装。
    要防止引导循环,请打开 /etc/cobbler/settings 文件并添加以下行:
    pxe_just_once: 1
    
    Copy to Clipboard Toggle word wrap
    这个设置在 kickstart 模板中添加了 $kickstart_done 宏,这可让该系统在完成安装后本地引导,而不是从网络引导。
  2. 如果您包含了 pxe_just_once: 1 设置,并想以后重新安装该系统,则您需要在该系统中启动 netboot-enabled 标记。您可在 RHN Satellite 网页界面中,或者直接在 Cobbler 中启动。系统下一次重启时,它将会执行 PXE 安装,然后返回使用本地磁盘引导直到重新设定该标记为止。
    如果将该 BIOS 设定为首先使用本地硬盘引导,则不需要启用 pxe_just_once 参数。但如果要使用 PXE 重新指配该系统,则需要 MBR(主引导记录)清零。

命名惯例

为在 RHN Satellite 和 Cobbler 间保持数据同步,RHN Satellite 使用发行本和侧写的命名惯例。如果您使用命令行界面与 Cobbler 互动,这些命名惯例就很重要。
发行
$tree_name:$org_id:$org_name(如果手动生成)
$tree_name(如果使用 RHN Satellite Sync 同步)
侧写
$profile_name:$org_id:$org_name

重要

不要更改 RHN Satellite 自动生成的名称。如果更改,则 RHN Satellite 就无法再维护那些项目。

注意

为方便故障排除,Cobbler 在 RHN Satellite 日志以及 /var/log/cobbler/ 文件中记录数据。

4.3. Koan

koan(通过网络 kickstart)程序是可让您从已经指配的主机中远程访问 RHN Satellite。Koan 可让您执行 kickstart 指配、创建虚拟客体(在虚拟主机中)并列出 RHN Satellite 主机中可用的 kickstart。该程序包含在 koan 软件包中。
Expand
表 4.3. 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 显示远程安装可使用的侧写或者系统列表

注意

为方便故障排除,Koan 在 /var/log/koan 文件中记录数据。

第 5 章 故障排除

5.1. Web 界面
问: 我无法使用 RHN Satellite 用户界面。应该检查哪个日志文件?
5.2. Anaconda
问: 我得到 Error downloading kickstart file 出错信息。出了什么问题,如何修复?
问: 我得到软件包安装出错信息:The file chkconfig-1.3.30.1-2.i386.rpm cannot be opened。是什么问题,该如何修复?
5.3. 回溯(Tracback)
问: 我收到标题为 "WEB TRACEBACK" 的电子邮件。我该怎么办?
5.4. 注册
问: 我运行 rhnreg_ks 命令时失败,显示 ERROR: unable to read system id。这是什么问题?
5.5. Kickstart 和片断
问: Kickstart 的目录结构是什么?
问: Cobbler 片断的目录结构是什么?

5.1. Web 界面

问:
我无法使用 RHN Satellite 用户界面。应该检查哪个日志文件?
答:
如果您无法在 RHN Satellite 用户界面中查看、调度或者使用 kickstart,请查看 /var/log/tomcat5/catalina.out 日志文件。
有关其它所有用户界面错误,请查看 /var/log/httpd/error_log 日志文件。

5.2. Anaconda

问:
我得到 Error downloading kickstart file 出错信息。出了什么问题,如何修复?
答:
这个出错信息一般是因为网络问题。要确定哪里出了问题,请运行 cobbler check 命令,并查看输出结果,您应该看到类似如下信息:
# cobbler check
The following potential problems were detected:
#0: reposync is not installed, need for cobbler reposync, install/upgrade yum-utils?
#1: yumdownloader is not installed, needed for cobbler repo add with --rpm-list parameter, install/upgrade yum-utils?
#2: The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed
#3: fencing tools were not found, and are required to use the (optional) power management features. install cman to use them
Copy to Clipboard Toggle word wrap
如果 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
    Copy to Clipboard Toggle word wrap
问:
我得到软件包安装出错信息:The file chkconfig-1.3.30.1-2.i386.rpm cannot be opened。是什么问题,该如何修复?
答:
客户端将根据 kickstart 中的 --url 参数从 RHN Satellite 中提取内容。例如:
url --url http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3
Copy to Clipboard Toggle word wrap
如果您看到出错信息指出 Anaconda 无法找到映像或者软件包,检查该 kickstart 中的 URL 会生成 200 OK 响应。您可以尝试使用 wget 在那个 URL 定位该文件:
wget http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3
--2011-08-19 15:06:55--  http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3
Resolving satellite.example.com... 10.10.77.131
Connecting to satellite.example.com|10.10.77.131|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 0 [text/plain]
Saving to: `ks-rhel-i386-server-5-u3.1'
2011-08-19 15:06:55 (0.00 B/s) - `ks-rhel-i386-server-5-u3.1' saved [0/0]
Copy to Clipboard Toggle word wrap
如果您得到 200 OK 之外的响应,请检查出错日志发现问题所在。您还可以通过搜索 access_log 文件检查 Anaconda 具体尝试下载的文件:
# grep chkconfig /var/log/httpd/access_log
10.10.77.131 - - [19/Aug/2011:15:12:36 -0400] "GET /rhn/common/DownloadFile.do?url=/ks/dist/ks-rhel-i386-server-
5-u3/Server  /chkconfig-1.3.30.1-2.i386.rpm HTTP/1.1" 206 24744 "-" "urlgrabber/3.1.0 yum/3.2.19"
10.10.76.143 - - [19/Aug/2011:15:12:36 -0400] "GET /ks/dist/ks-rhel-i386-server-5-u3/Server/chkconfig-
1.3.30.1-2.i386.rpm HTTP/1.1" 206 24744 "-" "urlgrabber/3.1.0 yum/3.2.19"
10.10.76.143 - - [19/Aug/2011:15:14:20 -0400] "GET /ks/dist/ks-rhel-i386-server-5-u3/Server/chkconfig-  
1.3.30.1-2.i386.rpm HTTP/1.1" 200 162580 "-" "urlgrabber/3.1.0 yum/3.2.19"
10.10.77.131 - - [19/Aug/2011:15:14:20 -0400] "GET /rhn/common/DownloadFile.do?url=/ks/dist/ks-rhel-i386-server- 
5-u3/Server/chkconfig-1.3.30.1-2.i386.rpm HTTP/1.1" 200 162580 "-" "urlgrabber/3.1.0 yum/3.2.19"
Copy to Clipboard Toggle word wrap
如果那些请求没有出现在 access_log 文件中,则该系统就应该有联网设置问题。如果该请求没有出现但生成出错信息,请检查出错日志。
您还可以手动下载这些文件看该软件包是否可用:
wget http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3/Server/chkconfig-1.3.30.1-2.i386.rpm
Copy to Clipboard Toggle word wrap

5.3. 回溯(Tracback)

问:
我收到标题为 "WEB TRACEBACK" 的电子邮件。我该怎么办?
答:
典型的回溯电子邮件应类似:
Subject: WEB TRACEBACK from satellite.example.com
Date: Wed, 19 Aug 2011 20:28:01 -0400
From: RHN Satellite <dev-null@redhat.com>
To: admin@example.com

java.lang.RuntimeException: XmlRpcException calling cobbler.
	at com.redhat.rhn.manager.kickstart.cobbler.CobblerXMLRPCHelper.invokeMethod(CobblerXMLRPCHelper.java:72)
	at com.redhat.rhn.taskomatic.task.CobblerSyncTask.execute(CobblerSyncTask.java:76)
	at com.redhat.rhn.taskomatic.task.SingleThreadedTestableTask.execute(SingleThreadedTestableTask.java:54)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
Caused by: redstone.xmlrpc.XmlRpcException: The response could not be parsed.
	at redstone.xmlrpc.XmlRpcClient.handleResponse(XmlRpcClient.java:434)
	at redstone.xmlrpc.XmlRpcClient.endCall(XmlRpcClient.java:376)
	at redstone.xmlrpc.XmlRpcClient.invoke(XmlRpcClient.java:165)
	at com.redhat.rhn.manager.kickstart.cobbler.CobblerXMLRPCHelper.invokeMethod(CobblerXMLRPCHelper.java:69)
	... 4 more
Caused by: java.io.IOException: Server returned HTTP response code: 503 for URL: http://someserver.example.com:80/cobbler_api
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1236)
	at redstone.xmlrpc.XmlRpcClient.handleResponse(XmlRpcClient.java:420)
	... 7 more
Copy to Clipboard Toggle word wrap
这表明 Cobbler 在与 taskomatic 服务沟通时有问题。尝试检查如下内容:
  • 确定 httpd 正在运行:service httpd status
  • 确定 cobblerd 正在运行:service cobblerd status
  • 确定没有阻止 localhost 连接的防火墙规则

5.4. 注册

问:
我运行 rhnreg_ks 命令时失败,显示 ERROR: unable to read system id。这是什么问题?
答:
在 kickstart 结尾有一个 %post 部分,这部分可在 RHN Satellite 中注册该机器:
# begin Red Hat management server registration
mkdir -p /usr/share/rhn/
wget http://satellite.example.com/pub/RHN-ORG-TRUSTED-SSL-CERT -O /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT   
perl -npe 's/RHNS-CA-CERT/RHN-ORG-TRUSTED-SSL-CERT/g' -i /etc/sysconfig/rhn/*  
rhnreg_ks --serverUrl=https://satellite.example.com/XMLRPC --sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --activationkey=1-c8d01e2f23c6bbaedd0f6507e9ac079d
# end Red Hat management server registration
Copy to Clipboard Toggle word wrap
按添加的顺序进行解读,即:
  • 创建一个目录,并在其中保存用于 RHN Satellite 的自定义 SSL 证书。
  • 提取要在注册过程中使用的 SSL 证书。
  • 搜索并替换 rhn-register 中的 SSL 证书字符串;然后使用该 SSL 证书和激活码在 RHN Satellite 注册。每个 kickstart 侧写都有一个激活码,它可保证将该系统分配给正确的基本频道和子频道,并获得正确的系统授权。如果要重新指配现有系统,该激活码还将保证它与之前的系统侧写关联。
如果 rhnreg_ks 命令失败,您会在 ks-post.log 日志文件中看到出错信息:
ERROR: unable to read system id.
Copy to Clipboard Toggle word wrap
如果您执行 rhn_check 且该系统还没有在 RHN Satellite 中注册也会出现这些出错信息。
解决这个问题最好的方法是在完成 kickstart 后查看 kickstart 文件,并在命令提示符后复制-粘贴上面的四步。这可生成可用的出错信息帮助您找出问题。

5.5. Kickstart 和片断

问:
Kickstart 的目录结构是什么?
答:
保存 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
Copy to Clipboard Toggle word wrap
问:
Cobbler 片断的目录结构是什么?
答:
Cobbler 片断保存在 /var/lib/rhn/kickstarts/snippets。Cobbler 使用符号链接 /var/lib/cobbler/snippets/spacewalk 访问片断。
Snippets:  /var/lib/rhn/kickstarts/snippets/$org_id/$snippet_name
Copy to Clipboard Toggle word wrap

重要

RHN Satellite RPM 需要 Cobbler kickstart 和片断目录保存在其默认位置,不要更改。

附录 A. 修订记录

修订历史
修订 4-2.3.4002013-10-31Rüdiger Landmann
Rebuild with publican 4.0.0
修订 4-2.3Thur Apr 18 2013Leah Liu
翻译、校对完成
修订 4-2.2Wed Mar 6 2013Leah Liu
翻译完成
修订 4-2.1Thu Feb 21 2013Leah Liu
翻译已与 XML 来源 4-2 同步
修订 4-2Wed Sept 19 2012Dan Macpherson
为版本 5.5 最终打包
修订 4-1Thu Aug 9 2012Athene Chan
待发布
修订 4-0Mon June 25 2012Athene Chan
更新 RHN Satellite 5.5 第 1-2 章
编辑 RHN Satellite 5.5 第 3-5 章
BZ#787348 修改 Cobbler iptables 行
BZ#702529 软件额外的 Kickstart 信息
BZ#797688 不支持 Cobbler Boot ISO
修订 3-0Thu May 31 2012Athene Chan
BZ#826803 - 修改 "Kickstarting 机器" 一节中的标点错误。
修改 kickstart 一节中的一些语法问题。
修订 2-0Thu May 24 2012Athene Chan
BZ#783339 - 重新编写 "Provisioning 故障排除 Taskomatic" 一节中的一些句子。
BZ#783340 - 将 "s390x" 改为 "IBM System z"
修订 1-3Mon Aug 15 2011Lana Brindley
将 z-stream 发行本与 y-stream 发行本合并
修订 1-2Wed Jun 15 2011Lana Brindley
准备翻译
修订 1-1Fri May 27 2011Lana Brindley
翻译
修订 1-0Fri May 6, 2011Lana Brindley
最终 QE 审核编辑
准备翻译
修订 0-8Thu May 5, 2011Lana Brindley
BZ#701822 - QE 审核
修订 0-7Thu April 14, 2011Lana Brindley
技术审核反馈
修订 0-6Wed March 23, 2011Lana Brindley
准备技术审核
修订 0-5Tue March 22, 2011Lana Brindley
BZ#666435
BZ#666846
BZ#678080
BZ#682364
修订 0-4Tue March 22, 2011Lana Brindley
故障排除
修订 0-3Mon March 21, 2011Lana Brindley
多个 Satellite
修订 0-2Thu March 17, 2011Lana Brindley
简介
Kickstart
高级命令
一些章节重组
修订 0-1Wed Jan 5, 2011Lana Brindley
完成新章节结构
修订 0-0Tue Dec 21, 2010Lana Brindley
以原来的 RHN Satellite 部署指南为蓝本生成新文档

法律通告

Copyright © 2011 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat