Red Hat Training
A Red Hat training course is available for Red Hat Satellite
用户指南
Red Hat Network Satellite 使用及管理
版 2
Red Hat Engineering Content Services
摘要
前言
第 1 章 用户管理
1.1. 添加、停用和删除用户帐户
过程 1.1. 添加用户
- 在「用户」标签中点击「创建新用户」打开「创建用户」。页。
图 1.1. 「创建用户」页面
- 在「所需登录(Desired Login)」字段输入该用户名称。登录名必须至少有五个字符。
- 在「所需密码(Desired Password)」字段输入该用户的密码。重新输入同一密码确认。
- 在「姓名(First,Last Name)」字段输入该用户的姓和名,并在可用下拉菜单中选择称谓(比如先生、女士或者夫人)。
- 在「电子邮件(Email)」字段输入该用户的电子邮件地址。
- 在「时区(Time Zone)」部分选择正确的时区。
- 在「界面语言(Interface Language)」部分选择在 RHN Satellite Server 界面中使用的语言。
- 点击「创建登录(Create Login)」创建新用户。此时会为该用户发送一封电子邮件(使用在创建过程中指定的地址)通知他们新帐户详情。
- 成功创建帐户后,都会将您重新指向「用户列表」页面。如果您要为新用户更改权限和选项,请从列表中选择显示列表中的名称,这样会显示该用户的「用户详情」页面,您可以在适当的标签中导航更改内容。
过程 1.2. 停用用户
- 在「用户」标签的列表中点击该用户名称显示「用户详情」页。
- 查看该用户是否为 Satellite 管理员。如果该用户是 Satellite 管理员,则取消选择该角色旁边的复选框,并点击「提交」按钮。如果该用户不是 Satellite 管理员,继续进入下一步。
- 点击「停用用户」链接。
图 1.2. 停用用户
再次点击它会请您确认这个动作。检查详细内容,然后再次点击「停用用户」确认。 - 成功停用帐户后,该用户将不再出现在「激活用户」列表中。点击「用户列表」中的「停用」链接查看停用的用户。
- 要重新激活该用户帐户,请查看「停用」列表,检查要重新激活的用户名旁边的选择框,点击「重新激活」按钮即可。
过程 1.3. 删除用户
警告
- 在「用户」标签的列表中点击该用户名称显示「用户详情」页。
- 查看该用户是否为 Satellite 管理员。如果该用户是 Satellite 管理员,则取消选择该角色旁边的复选框,并点击「提交」按钮。如果该用户不是 Satellite 管理员,继续进入下一步。
- 点击「删除用户」。
图 1.3. 用户删除中......
此时会请您确认这个动作。检查详细内容,然后再次点击「删除用户」确认。 - 成功删除该帐户后,该用户的名称就不会出现在「激活用户」列表中。这一步是不可逆的。
1.2. 用户管理
用户角色
- 「RHN Satellite 管理员」
- Satellite 管理任务的特殊角色,比如创建机构、管理订阅、配置全局 RHN Satellite Server 设定。不能在「用户详情」页面中分配这个角色。已经拥有 RHN Satellite Server 管理员角色的用户可为其他用户分配这个角色,方法为进入「管理」 → 「用户」。
- 「机构管理员」
- 执行管理功能,比如在其机构的上下文中管理用户、系统和频道。会自动为机构管理员赋予其他角色管理访问,这些角色使用灰色复选框表示。
- 「激活码管理员」
- 执行激活密钥功能,比如在该帐户中生成、修改和删除密钥。
- 「频道管理员」
- 提供对机构中所有软件频道及其关联频道的访问。执行一些功能,比如生成频道全局订阅、创建新频道以及在频道中管理软件包。
- 「配置管理员」
- 可访问机构中的所有配置频道及其关联频道。在机构中执行频道和文件管理配置功能。
- 「Monitoring 管理员」
- 执行探测调度并可查看其它监控构架。这个角色只可用于启用了监控的 RHN Satellite Server。
- 「系统组群管理员」
- 这个角色有全部系统和系统组群授权,即可以访问它们。可执行管理功能,比如创建新系统组群、删除所有分配的系统组群、在组群中添加系统以及管理对组群的用户访问。
第 2 章 自动同步
cron
。
过程 2.1. 自动同步
- 切换成 root 用户,并在文本编辑器中打开
crontab
:crontab -e
注意
默认情况是使用 vi 打开crontab
。要改变这一行为,请将EDITOR
变量改为您喜欢使用的文本编辑器名称。 - 在
crontab
中,使用前五个字段(分钟、小时、日、月和工作日)调度同步。要创建随机同步时间,请使用以下条目:0 1 * * * perl -le 'sleep rand 9000' && satellite-sync --email >/dev/null 2>1
crontab
条目会在 01:00 至 03:30 间随机运行同步任务。它会放弃cron
的stdout
和stderr
,这样可防止在satellite-sync
中出现重复信息。您还可根据需要添加其它选项。 - 退出文本编辑器即可保存
crontab
。新的cron
规则会立即生效。
第 3 章 备份和恢复
3.1. 备份
过程 3.1. 备份内嵌的数据库
- 使用
stop
命令停止 RHN Satelite 服务器:rhn-satellite stop
- 切换为 Oracle 用户,并使用
db-control
程序创建备份:su - oracle db-control backup [directory]
使用您要保存数据库备份位置的绝对路径替换 directory。这个过程可能需要几分钟。 - 切换回 root 用户并启动 Satellite:
exit rhn-satellite start
- 切换为 Oracle 用户,并使用
db-control
的examine
选项检查备份时间戳,并确定是否有丢失的文件:su - oracle db-control examine [directory]
您还可以使用db-control
命令的verify
选项执行全面的检查,其中包括检查备份中每个文件的 md5sum:db-control verify [directory]
如果验证成功,就可以使用 directory 中的内容恢复数据库。
注意
备份系统文件
/etc/sysconfig/rhn/
/etc/rhn/
/etc/sudoers
/etc/tnsnames.ora
/var/www/html/pub/
/var/satellite/redhat/[0-9]*/
(这是自定义 RPM 的位置)/root/.gnupg/
/root/ssl-build/
/etc/dhcpd.conf
/etc/httpd/
/tftpboot/
/var/lib/cobbler/
/var/lib/nocpulse/
/var/lib/rhn/kickstarts/
/var/www/cobbler/
/var/satellite/
。这是红帽 RPM 库的副本,并可在从失败中恢复时保存大量下载。您可以使用 satellite-sync
工具生成该文件。如果您使用断开连接的 satellite,则必须备份 /var/satellite/
方可从失败中恢复。
satellite-sync
工具重新与 Red Hat 软件包同步,并需要安装 /root/ssl-build/rhn-org-httpd-ssl-key-pair-MACHINE_NAME-VER-REL.noarch.rpm
软件包。另外,您还可以在不重新注册的情况下重新安装 RHN Satellite 服务器,取消或者跳过红帽网络注册和 SSL 证书生成部分即可。
3.2. 使用备份恢复
过程 3.2. 使用备份恢复内嵌的数据库
- 使用
stop
命令停止 RHN Satelite 服务器:rhn-satellite stop
- 切换为 Oracle 用户,并使用
db-control
工具恢复备份:su - oracle db-control restore [directory]
使用您要保存数据库备份位置的绝对路径替换 directory。这个过程要在恢复数据库前验证备份的内容,可能需要几分钟。 - 切换回 root 用户并启动 Satellite:
exit rhn-satellite start
- 无论您备份的是外部数据库还是内嵌数据库,当您使用备份恢复 Satellite 时,应运行以下命令调度在下次启动
rhn-search
服务时重新生成搜索索引:/etc/init.d/rhn-search cleanindex
3.3. 自动的备份
cron
。
过程 3.3. 自动的备份
backup-db.sh
的新文件。这个脚本可停止 satellite,执行数据库备份并重启 satellite:
#!/bin/bash { /usr/sbin/rhn-satellite stop su - oracle -c' d=db-backup-$(date "+%F"); mkdir -p /tmp/$d; db-control backup /tmp/$d '; /usr/sbin/rhn-satellite start } &> /dev/null
- 生成包含以下脚本的名为
move-files.sh
的新文件。这个脚本可使用rsync
将备份文件移动到保存它的目录中:#!/bin/bash rsync -avz /tmp/db-backup-$(date "+%F") [destination] &> /dev/null
使用到备份目录的路径替换 [destination]。另外,以下脚本使用scp
可得到同样的结果:#!/bin/bash scp -r /tmp/db-backup-$(date "+%F") [destination] &> /dev/null
- 切换为 root 用户,并在文本编辑器中打开
crontab
:crontab -e
注意
默认情况是使用 vi 打开crontab
。要改变这一行为,请将EDITOR
变量改为您喜欢使用的文本编辑器名称。 - 在
crontab
中,使用前五个字段(分钟、小时、日、月和工作日)调度备份脚本运行:0 3 * * * backup-db.sh 0 6 * * * move-files.sh
这个crontab
条目将在 03:00 运行备份,并在 06:00 传送备份文件。您可根据需要添加其它选项。您还可以添加清除脚本以便删除旧的备份目录,防止填满备份存储。 - 退出文本编辑器即可保存
crontab
。新的cron
规则会立即生效。
第 4 章 克隆机器
spacewalk-clone-by-date
命令,根据红帽企业版 Linux 系统中的可用日期勘误生成自定义克隆的红帽企业版 Linux 频道。
4.1. 特性
spacewalk-clone-by-date
的特性:
- 克隆该频道在某个具体日期时的状态
- 使用脚本和模板文件自动克隆
- 从频道中删除或者阻断软件包
- 在上级和下级频道中解决软件包相依性问题
- 在具体勘误中执行过滤和动作而忽略其他。例如:只在安全性勘误中执行,忽略 bugfix 和改进。
注意
spacewalk-clone-by-date
,且 username
必须为 Organizational Administrator 或者 Channel Administrator。
4.2. 命令行选项
表 4.1. 可用命令行选项
选项 | 定义 |
---|---|
-h, --help | 显示帮助文件。 |
-c CONFIG, --config=CONFIG | 允许用户提供指定所有选项的配置文件。在这个配置文件中可指定命令行中运行的所有选项。该配置文件允许用户设定他们要克隆复杂的频道列表,并保存具体命令以备今后使用。 |
-u USERNAME, --username=USERNAME | 指定用来登录 Satellite 的用户名。 |
-p PASSWORD, --password=PASSWORD | 指定该用户名的密码 |
-s SERVER, --server=SERVER | api 连接中使用的服务器 URL。默认为 https://localhost/rpc/api |
-l CHANNELS, --channels=CHANNELS | 指定要克隆的频道。频道标签必须使用原始克隆对指定。指定克隆对时,请记住将其用空格分开。可使用 --channels 选项指定一个以上的附加频道。 |
-b BLACKLIST, --blacklist=BLACKLIST | 用逗号分开的软件包名称(或者正则表达式)列表以便从克隆的勘误中排除(只考虑添加的软件包)。 |
-r REMOVELIST, --removelist=REMOVELIST | 逗号分开的,要从目的频道中删除的软件包名称(或者正则表达式)列表(所有软件包都可以被删除)。 |
-d TO_DATE, --to_date=TO_DATE | 将勘误克隆到具体日期(YYYY-MM-DD)。可让用户克隆原始软件包以及从生成原始频道到具体 TO_DATE 参数指定日期见发布的所有具体勘误。在指定的 TO_DATE 过程中可获得根据时间获取的频道快照。 |
-y, --assumeyes | 假设对所有提示的回答都是 yes。这是用于没有人机互动的克隆。 |
-m, --sample-config | 打印完整配置文件示例并退出。 |
-k, --skip_depsolve | 跳过所有相依性解决(不推荐)。 |
-v, --validate | 在一组指定的库中运行 repoclosure。 |
-g, --background | 在后端克隆勘误。提示符将更迅速地返回,即总克隆完成前就可返回。 |
-o, --security_only | 只克隆安全勘误(及其相依性)。这个命令可与 --to_date 命令一同使用只克隆之前或者指定日期发布的安全勘误。 |
4.3. 示例用法
rhel-i386-server-5
频道,将其命名为 my-clone-RHEL-5。
# spacewalk-clone-by-date --username=your_username --password=your_password --server=satellite_server_url --channels=rhel-i386-server-5 my-clone-RHEL-5 --to_date=2012-01-01
# spacewalk-clone-by-date --username=your_username --password=your_password --server=satellite_server_url --channels=rhel-i386-server-5 my-clone-RHEL-5 --to_date=2012-01-01 --security_only --background --blacklist=kernel,vim-extended --assumeyes
第 5 章 监控
过程 5.1. 监控表空间
- 在 Oracle 数据库中,常规查看表空间是否有足够可用空间是很重要的。切换为
Oracle
用户,并执行db-control report
命令可达到此目的:su - oracle db-control report Tablespace Size Used Avail Use% DATA_TBS 4.8G 3.9G 996M 80% SYSTEM 250M 116M 133M 46% TOOLS 128M 3M 124M 2% UNDO_TBS 1000M 61M 938M 6% USERS 128M 64K 127M 0%
- 如果表空间将要用完时,可使用
db-control extend
命令附带要扩展的表空间名称扩大表空间:db-control extend tablespace
过程 5.2. 监控 RHN Satellite 服务器进程
- 请使用
rhn-satellite status
命令确认 Satellite 进程工作正常:rhn-satellite status
第 6 章 OpenSCAP
6.1. OpenSCAP 功能
- 确认系统的工具是标准工具RHN Satellite Server 有整合的 OpenSCAP 作为版本 5.5 的审核功能。您可用它通过网页界面调度并查看系统合规扫描。
- SCAP 内容如果您了解 XCCDF 或者 OVAL,则可从头开始创建 SCAP 内容。另外还有其他选项。XCCDF 内容会经常以开源许可证方式在网上发布,同时您可以自定义这个内容以满足您的需要。
注意
红帽支持使用这个模板评估您的系统。但不支持使用这些模板编写的自定义内容。这些组的一些示例如下:- RHEL5 桌面的美国政府配置基准(USGCB) — NIST 与红帽公司及美国国防部(DoD)合作使用 OVAL 开发出政府部门使用桌面的官方 SCAP 内容。
- 社区提供的内容
- RHEL6 SCAP 安全指南 — 使用根据 USGCB 要求和广泛接受的策略激活社区使用内容,并包含桌面、服务器以及 ftp 服务器侧写。
- RHEL6 的 OpenSCAP 内容 — 红帽企业版 Linux 6 自选频道中的 openscap-content 软件包还使用模板为红帽企业版 Linux 6 提供默认内容向导。
6.2. RHN Satellite 中的 OpenSCAP
6.2.1. 前提条件
SCAP 需要这些软件包:
- 服务器:RHN Satellite 5.5
- 客户端:spacewalk-oscap 软件包(可在 RHN 工具子频道中找到)
调度的扫描需要管理授权。
客户端:向客户端机器发布 XCCDF 内容
- 传统方法(CD、USB、nfs、scp、ftp)
- Satellite 脚本
- RPM推荐使用自定义 RPM 将 SCAP 内容发布到其他机器中。可签署或者确认 RPM 软件包以确定其完整性。可使用用户界面安装、删除并确认 RPM 软件包。
6.2.2. 执行审核扫描
过程 6.1. 使用网页界面扫描
- 登录 Satellite 网页界面。
- 点击「系统」 → 「目标系统」.
- 点击「审核」 → 「调度」
- 填写
调度新 XCCDF 扫描
表格:- 命令行参数:可在此字段添加 oscap 工具的附加参数。这里有两个可使用的命令行参数。它们是:
--profile PROFILE
— 从 XCCDF 文档中选择具体侧写。XCCDF xml 文件可确定侧写,并可使用Profile id
标签检查。例如:Profile id="RHEL6-Default"
注意
OpenSCAP 的某些版本需要 --profile 命令行参数,否则扫描将失败。--skip-valid
— 不确认输入/输出文件。使用非正规格式 XCCDF 内容的用户可以选择使用这个参数绕过文件验证过程。如果命令行参数通过,则会使用默认侧写。 - 到 XCCDF 文档的路径:这是必填项。
path
参数指向客户端系统中该内容位置。例如:/usr/local/scap/dist_rhel6_scap-rhel6-oval.xml
警告
在远程系统中运行 xccdf 内容前要对其进行验证。指定无效参数可导致 spacewalk-oscap 无法验证或者运行。出于安全考虑,‘osccap xccdf eval’ 命令只接受有限的参数。
- 运行
rhn_check
保证客户端系统选择了这个动作。rhn_check -vv
注意
另外,如果客户端系统中运行rhnsd
或者osad
命令,则这些服务会提取这个动作。要检查它们是否正在运行:service rhnsd start
或者service osad start
图 6.1. 使用 Web UI 调度扫描
过程 6.2. 使用 API 扫描
- 可使用前台 API
system.scap.scheduleXccdfScan
选择现有脚本或者创建调度系统扫描的脚本。脚本示例:#!/usr/bin/python client = xmlrpclib.Server('https://spacewalk.example.com/rpc/api') key = client.auth.login('username', 'password') client.system.scap.scheduleXccdfScan(key, 1000010001, '/usr/local/share/scap/usgcb-rhel5desktop-xccdf.xml', '--profile united_states_government_configuration_baseline')
其中:- 1000010001 是
system ID (sid)
。 - 内容在
/usr/local/share/scap
目录中。 --profile united_states_government_configuration_baseline
代表 oscap 工具中的附加参数。在这个示例中使用 USCFGB。
- 在任意系统的命令行界面中运行脚本。该系统需要安装正确的 python 和库。
- 运行
rhn_check
保证客户端系统选择了这个动作。rhn_check -vv
注意
另外,如果客户端系统中运行rhnsd
或者osad
命令,则这些服务会提取这个动作。要检查它们是否正在运行:service rhnsd start
或者service osad start
6.2.3. 如何查看 SCAP 结果
- 使用网页界面。执行该动作后,会在系统「审核」标签中显示结果。详情请参考 第 6.2.4 节 “OpenSCAP Satellite 页面”。
- 使用句柄
system.scap
的 API 功能: - 运行以下命令使用 Satellite 的
spacewalk-reports
工具:# /usr/bin/spacewalk-reports system-history-scap # /usr/bin/spacewalk-reports scap-scan # /usr/bin/spacewalk-reports scap-scan-results
6.2.4. OpenSCAP Satellite 页面
6.2.4.1. 「审核」
- 「审核」 → 「所有扫描」
- 「所有扫描」 是选择 「审核」 标签后默认出现的页面。在这个页面中显示所有完成的 OpenSCAP 扫描,这些扫描是用户有查看权限的扫描。扫描权限与系统权限相同。
图 6.2. 审核 ⇒ 所有扫描
在每个扫描中都会显示以下信息:- 系统
- 扫描的目标系统
- XCCDF 侧写
- 评估的侧写
- 完成
- 完成时间
- 满足
- 满足/通过的规则数。如果评估结果是 Pass 或者 Fixed,则视其为满足。
- 不满足
- 不满足/失败的规则数。如果评估结果是 Fail,则视其为不满足。
- 未知
- 无法评估的规则数。如果评估结果为 Error、Unknown 或者 Not Checked,则视其为未知。
XCCDF 规则评估也可能会返回类似「Informational」、「Not Applicable」或者「Not Selected」等状态。如果出现这种情况,给出的规则就不会包含在本页的统计信息中。详情请查看「系统详情」 → 「审核」。 - 「审核」 → 「XCCDF Diff」
- XCCDF Diff 是对比两个 XCCDF 扫描结果的视频程序。它显示两个扫描的元数据以及结果列表。
图 6.3. 审核 ⇒ XCCDF Diff
您可以直接访问类似扫描的diff
,方法是点击 「列出扫描」页,或者您也可以通过指定其 id,使用diff
对比随机扫描。只在进行对比的扫描中的一个中显示的项目被视为“验证中”。验证中的项目总是被突出为米黄色。有三个可能的对比形式:「全面对比」,即显示所有扫描项目;「只对比更改的项目」,即显示有变动的项目;和「只对比不变的项目」,即显示没有更改或者类似的项目。 - 「审核」 → 「高级搜索」
- 搜索页面允许您根据具体标准搜索您的扫描,其中包括:
- 规则结果
- 目标机器
- 扫描时间范围
图 6.4. 审核 ⇒ 高级搜索
搜索返回结果列表或者结果中的扫描列表。
6.2.4.2. 「系统」 → 「系统详情」 → 「审核」
- 「系统」 → 「系统详情」 → 「审核」 → 「列出扫描」
图 6.5. 系统 ⇒ 系统详情 ⇒ 审核 ⇒ 列出扫描扫描结果
这个子目录列出系统中完成的所有扫描小结。该栏目类似如下:表 6.1. OpenSCAP 扫描标签
栏目标签 定义 XCCDF 测试结果 扫描的测试结果名称,它可提供该扫描详细结果的链接。 完成 扫描完成的具体时间 合规 根据使用的标准得到的合规非加权 pass/fail 比例 P 通过的检查数 F 失败的检查数 E 扫描中出现的错误 U 未知 N 无法在该机器中应用 K 未检查 S 未选择 I 信息 X 已修复 总计 检查总数 每一行前面的图标表示与上衣个类似扫描的对比结果。这些图标显示新的扫描可以是:- — 与上一个扫描相比没有不同
- — 肯定有不同
- — 有很大不同,可能是比上一个扫描失败的项目多,或者通过的项目少
- — 没有找到可进行对比的扫描,因此无法进行对比。
- 「系统」 → 「系统详情」 → 「审核」 → 「扫描详情」
- 本页包含单次扫描的结果。可将其分为两部分:
- XCCDF 扫描详情扫描详情为您提供:
- 文件路径的常规信息
- 使用的命令行参数
- 调度此扫描的人
- 基准识别符和版本是什么
- 侧写识别符
- 侧写标题
- 开始和完成时间
- 所有错误输出结果。
- XCCDF 规则结果规则结果为您提供 XCCDF 规则识别符完整列表,用它们可识别每个规则结果的标签和结果。可根据具体结果过滤这个列表。
- 「系统」 → 「系统详情」 → 「审核」 → 「调度」
- 您可以使用这个子标签调度新扫描。除提供系统中要扫描的 XCCDF 文档路径外还可提供附加命令行参数。根据 "
Schedule no sooner than
" 参数,该扫描将在系统下次调度登录 Satellite 服务器时执行。有关如何使用 Satellite 网页界面进行调度的详情请参考本章中 过程 6.1, “使用网页界面扫描” 一节。
第 7 章 PAM 验证
过程 7.1. 设置 PAM 验证
- 确保您使用
selinux-policy-targeted
软件包的最新版本:# yum update selinux-policy-targeted
- 将
allow_httpd_mod_auth_pam
SELinux 布尔值设定为 on:# setsebool -P allow_httpd_mod_auth_pam 1
- 使用您喜欢的文本编辑器打开
/etc/rhn/rhn.conf
文件,并添加以下行。这样可在/etc/pam.d/rhn-satellite
中生成 PAM 文件:pam_auth_service = rhn-satellite
- 要设置验证,请使用您喜欢的文本编辑器打开
/etc/pam.d/rhn-satellite
服务文件,并添加适当的规则。有关配置 PAM 的详情,请参考《红帽企业版 Linux 部署指南》中《可插拔验证模块(PAM)》一章。
注意
例 7.1. 在红帽企业版 Linux 5 i386 系统中将 PAM 与 Kerberos 一同使用
/etc/pam.d/rhn-satellite
服务文件,并添加以下行:
#%PAM-1.0 auth required pam_env.so auth sufficient pam_krb5.so no_user_check auth required pam_deny.so account required pam_krb5.so no_user_check
kpasswd
更改密码。不要在 RHN 网站中更改密码,因为这个方法只适用于在 Satellite 服务器中更改本地密码。如果为该用户启用 PAM,则不会使用本地密码。
例 7.2. 将 PAM 与 LDAP 合用
/etc/pam.d/rhn-satellite
服务文件,并添加以下行:
#%PAM-1.0 auth required pam_env.so auth sufficient pam_ldap.so no_user_check auth required pam_deny.so account required pam_ldap.so no_user_check
第 8 章 RPM
rpm-build
软件包。您可能还需要其他软件包,比如编译程序和库文件。
过程 8.1. 生成 GPG 密钥
重要
- 为生成该密钥创建目录:
mkdir -p ~/.gnupg
- 生成密钥对:
gpg --gen-key
您需要选择密钥类型、大小以及该密钥的有效期限(按 enter 使用默认值)。您还需要指定名称、注释和电子邮件地址:Real name: rpmbuild Email address: rpmbuild@example.com Comment: this is a comment You selected this USER-ID: "rpmbuild (this is a comment) <rpmbuild@example.com>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?
按 O 接受详情并继续。 - 列出所有密钥及其指纹:
gpg --list-keys --fingerprint
- 导出该密钥:
gpg --export --armor "rpmbuild <rpmbuild@example.com>" > EXAMPLE-RPM-GPG-KEY
- 以 root 在所有目标系统中运行
gpg --import
即可将这个密钥导入到 RPM 数据库,确认其来源和完整性:rpm --import EXAMPLE-RPM-GPG-KEY
这会在客户端安装的过程中自动出现,且应不需要手动运行。 - 生成 RPM 后,可使用 GPG 密钥签注并上传到正确的频道中:
rpm --resign package.rpm rhnpush --server=http[s]://satellite.server/APP package.rpm --channel=custom-channel-name
- 要确认 RPM 软件包,请导航至包含该软件包的目录并运行以下命令:
rpm –qip package.rpm rpm -K package.rpm
过程 8.2. 构建 RPM
- 为构建软件包生成名为
rpmbuild
的非特权帐户。这可让几个管理员共享构建环境和 GPG 密钥。 - 在
rpmbuild
用户的主目录/home/rpmbuild
中,创建名为.rpmmacros
的文件:touch /home/rpmbuild/.rpmmacros
- 使用您喜欢的文本编辑器打开
.rpmmacros
并添加以下行。_gpg_name
必须与签注 RPM 的 GPG 密钥名称匹配:%_topdir %(echo $HOME)/rpmbuild %_signature %gpg %_gpg_name rpmbuild <rpmbuild@example.com>
定义的顶级目录的目录列表(上面的示例中为/home/rpmbuild/rpmbuild
)必须与在/usr/src/redhat
中出现的目录有同样的目录布局。
例 8.1. RPM 说明文件
_topdir
下的 SPECS
目录中,并在用户的 .rpmmacros
文件中定义,同时对应的源和路径文件应位于 SOURCES
目录中。
Name: foo Summary: The foo package does foo Version: 1.0 Release: 1 License: GPL Group: Applications/Internet URL: http://www.example.org/ Source0 : foo-1.0.tar.gz Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root Requires: pam BuildPrereq: coreutils %description This package performs the foo operation. %prep %setup -q %build %install mkdir -p %{buildroot}/%{_datadir}/%{name} cp -p foo.spec %{buildroot}/%{_datadir}/%{name} %clean rm -fr %{buildroot} %pre # Add user/group here if needed %post /sbin/chkconfig --add food %preun if [ $1 = 0 ]; then # package is being erased, not upgraded /sbin/service food stop > /dev/null 2>&1 /sbin/chkconfig --del food fi %postun if [ $1 = 0 ]; then # package is being erased # Any needed actions here on uninstalls else # Upgrade /sbin/service food condrestart > /dev/null 2>&1 fi %files %defattr(-,root,root) %{_datadir}/%{name} %changelog * Mon Jun 16 2003 Some One <one@example.com> - fixed the broken frobber (#86434)
第 9 章 引导设备
boot.iso
是必要条件。请确定系统中有这个映像,并记录其位置。
过程 9.1. CD 引导介质
注意
\
" 表示在 shell 提示符后连续的一行。
- 为引导映像生成工作目录:
mkdir -p temp cd/isolinux
- 将该引导映像挂载到
boot.iso
目录:mount -o loop boot.iso temp
- 为 CD 引导介质设备将所需文件复制到上一步生成的目录中:
cp -aP temp/isolinux/* cd/isolinux/
- 卸载
temp
目录并将cd
目录权限改为用户可读取、写入:umount temp chmod -R u+rw cd
- 进入
./cd
目录:cd ./cd
- 将
/usr/lib/syslinux/menu.c32
文件复制到 CD 中:cp -p /usr/lib/syslinux/menu.c32 isolinux
- 使用您喜欢的文本编辑器打开
isolinux/isolinux.cfg
文件,并添加以下行:mkisofs -o ./custom-boot.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \ -boot-load-size 4 -boot-info-table -J -l -r -T -v -V "Custom RHEL Boot" .
- 在
isolinux.cfg
文件中自定义 CD 引导所需的引导参数和对象。 - 将详细内容刻录到 CD 中完成此流程。
过程 9.2. PXE 引导
- 为引导映像生成工作目录:
mkdir -p temp pxe/pxelinux.cfg
- 将该引导映像挂载到
boot.iso
目录:mount -o loop boot.iso temp
- 为 PXE 引导设备将所需文件复制到上一步生成的目录中:
cp -aP temp/isolinux/* pxe/
- 卸载
temp
目录并将cd
目录权限改为用户可读取、写入:umount temp chmod -R u+rw pxe
- 进入
/pxe
目录:cd ./pxe
- 将
/usr/lib/syslinux/menu.c32
文件复制到/pxe
目录中:cp -p /usr/lib/syslinux/menu.c32 .
- 将
isolinux.cfg
文件移动到pxelinux.cfg/default
中:mv isolinux.cfg pxelinux.cfg/default
- 删除临时文件:
rm -f isolinux.bin TRANS.TBL
- 将
/usr/lib/syslinux/pxelinux.0
文件复制到/pxe
目录中:cp -p /usr/lib/syslinux/pxelinux.0 .
- 使用您喜欢的文本编辑器打开
pxelinux.cfg/default
文件,并为 PXE 引导自定义所有引导参数和对象。
过程 9.3. USB 引导介质
警告
/dev/loop0
挂载,请确定为您的系统使用正确的设备。您可以使用 losetup -f
命令结果查看哪个是正确的设备。
- 为引导映像生成工作目录:
mkdir -p temp usb/extlinux
- 将该引导映像挂载到
boot.iso
目录:mount -o loop boot.iso temp
- 为 USB 介质引导设备将所需文件复制到上一步生成的目录中:
cp -aP temp/isolinux/* usb/extlinux/
- 卸载
temp
目录并将cd
目录权限改为用户可读取、写入:umount temp chmod -R u+rw usb
- 进入
/usb
目录:cd ./usb
- 将
/usr/lib/syslinux/menu.c32
文件复制到extlinux/
目录中:cp -p /usr/lib/syslinux/menu.c32 extlinux/
- 将
extlinux/isolinux.cfg
文件移动到extlinux/extlinux.conf
:mv extlinux/isolinux.cfg extlinux/extlinux.conf
- 删除临时文件:
rm -f extlinux/isolinux.bin extlinux/TRANS.TBL
- 转换
custom-boot.img
文件并复制:dd if=/dev/zero of=./custom-boot.img bs=1024 count=30000
- 为这个回路设备找出正确的挂载点:
losetup -f /dev/loop0
使用引导映像设定回路设备:losetup /dev/loop0 ./custom-boot.img
- 打开
fdisk
程序:fdisk /dev/loop0
在该设备中创建主引导分区。您可使用以下按键组合完成此步骤:n p 1 Enter Enter a 1 p w - 将主引导记录(MBR)复制到回路设备中:
dd if=/usr/lib/syslinux/mbr.bin of=/dev/loop0
- 在回路设备中添加分区映射:
kpartx -av /dev/loop0
- 创建该文件系统:
mkfs.ext2 -m 0 -L "Custom RHEL Boot" /dev/mapper/loop0p1
- 挂载该设备:
mount /dev/mapper/loop0p1 temp
- 删除临时文件:
rm -rf temp/lost+found
- 将
extlinux/
目录复制到临时位置:cp -a extlinux/* temp/
- 在临时位置安装引导装载程序:
extlinux temp
- 卸载临时位置:
umount temp
- 在回路设备中删除分区映射:
kpartx -dv /dev/loop0
- 删除该回路:
losetup -d /dev/loop0
同步该文件系统更改:sync
- 使用您喜欢的文本编辑器打开
extlinux.conf
文件,并为 USB 引导自定义所有引导参数和对象。 - 将该映像传送到 USB 设备中以完成此流程。插入该设备,并运行
dmesg
命令检查挂载位置。在这个示例中它是/dev/sdb
。卸载 USB 设备:umount /dev/sdb
将该映像复制到 USB 设备中:dd if=./custom-boot.img of=/dev/sdb
第 10 章 机构
图 10.1. 管理
10.1. 创建机构
过程 10.1. 创建机构
- 要创建机构,请打开「管理」菜单,并选择「机构」 => 「创建新机构」。
图 10.2. 创建新机构
- 在正确的文本框中输入机构名称。名称长度应该在 3-128 个字符之间。
- 提供以下信息为机构生成管理员:
- 为机构管理员输入「所需登录」,该登录名称长度应该在 3-128 个字符之间。请考虑为机构管理员帐户使用描述性登录名以便与该结构中的管理登录名称匹配。
- 创建「所需密码」并「确认」该密码。
- 为机构管理员输入「电子邮件」地址。
- 输入机构管理员的「名」和「姓」。
- 点击「创建机构」按钮完成该过程。
organization 1
机构管理员帐户。这可让他们在需要时可登录到该机构中。
重要
10.2. 管理授权
rhel-server
或者 rhn-tools
。管理系统授权是机构可在 Satellite 中正常工作的基本要求。为机构分配的管理授权数与要在 RHN Satellite 中注册到该机构的系统最大值相等,这里不考虑可用的软件授权。例如:如果有 100 个红帽企业版 Linux 客户端授权,但该机构只有 50 个管理授权,那么在该机构中就只能注册 50 个系统。
rhn-virtualization
软件包,后者可保证正确计数 Xen 和 KVM 虚拟机授权。
注意
- 「总计」:Satellite 中频道授权总数。
- 「可用」:目前可以分配的授权数。
- 「用量」:目前所有机构已经使用的授权数,与分配的授权总数对比。
organization 1
之外的机构)中使用了 30 个总分配权利中的 24 个频道授权。
- 「活跃用户」:机构中的用户数
- 「系统」:该机构订阅的系统数
- 「系统组群」:该机构订阅的组群数
- 「激活码」:该机构可使用的激活码数
- 「Kickstart 侧写」:该机构可使用的 kickstart 侧写数
- 「配置频道」:该机构可使用的配置频道数
10.3. 在机构中配置系统
- 使用用户名和密码注册
- 如果您提供用户名和密码注册注册指定的机构,则会在那个机构中注册该系统。例如:如果
user-123
是 Satellite 中的「中央 IT」机构,那么在任意系统中执行以下命令就可在您的 Satellite 的「中央 IT」机构中注册该系统:rhnreg_ks --username=user-123 --password=foobar
注意
rhnreg_ks
中的--orgid
与 Satellite 注册或者 RHN Satellite 的多机构支持没有关系。 - 使用激活码注册
- 您还可以使用该机构的激活码在机构中注册系统。激活码会在生成该激活码的机构中注册系统。如果您想要让用户在机构中注册系统而无须提供该机构的登录访问,那么激活码是个好方法:
rhnreg_ks --activationkey=21-myactivationkey
要在机构间移动系统,还可使用该激活码的脚本自动进行移动。注意
激活码的最开始几个字符是用来说明拥有该密钥的机构 ID。
10.4. 机构的用户
注意
10.5. 机构信托
图 10.3. 机构信托
过程 10.2. 建立机构托管
- 点击「管理」主页菜单中的「机构」链接。
- 点击机构名称之一并在「详情」页中点击「信托」标签。
- 在「信托」标签中有 RHN Satellite 中所有其他信托的列表。在这里您可以使用「根据机构过滤」文本框将机构列表缩短。
- 选择您要与当前机构建立机构信托的机构名称旁边的复选框。
- 点击「修改信托」按钮创建该信托。
- 专用
- 使频道成为专用频道,这样除拥有它的机构外任何机构都不能访问该频道。
- 保护的
- 允许您选择的具体信托机构访问该频道。
- 公共
- 允许信托内的所有机构访问自定义频道。
- Satellite 管理员删除该信托关系
- 该机构管理员将频道访问改为专用
- 该机构管理员将频道访问改为专用,且在保护的列表中不包含订阅的系统的机构。
- 该机构管理员直接删除共享频道
- 该机构管理员删除共享子频道的上一级频道
注意
过程 10.3. 迁移系统
migrate-system-profile
将系统迁移到其它信托的机构,该程序是在命令行中使用 systemID
和 orgID
作为参数指定要迁移的系统及其目的地机构。Satellite 管理员可将系统从一个信托机构迁移到信托中的其它任意机构中。但是机构管理员只能将系统从其自身机构迁移到信托的另一个机构中。
migrate-system-profile
命令需要安装 spacewalk-utils
软件包,该软件包一般由 RHN Satellite 默认安装。当使用 migrate-system-profile
命令迁移系统时,该系统不会保留任何之前的源机构权利或者频道订阅。但系统历史记录是保留的,且新的机构管理员可访问这些记录以便简化剩余的迁移过程,其中包括订阅到基本频道和赋予授权。
- 使用以下格式执行该命令:
migrate-system-profile --satellite SATELLITE HOSTNAME OR IP --systemId=SYSTEM ID --to-org-id=DESTINATION ORGANIZATION ID
例如:如果财务部(在 RHN Satellite Server 中使用OrgID 2
作为机构创建)想要从工程部迁移工作站(SystemID 10001020
),但财务部机构管理员没有对 RHN Satellite 服务器的 shell 访问。RHN Satellite 主机名为 satserver.example.com。财务部机构管理员可在 shell 提示符后输入以下命令:migrate-system-profile --satellite satserver.example.com --systemId=10001020 --to-org-id=2
该程序会提示您输入用户名和密码。 - 登录到 RHN Satellite 网页界面后即可在「系统」页中看到该系统。通过为该客户端分配基本频道并为该客户端授权完成迁移过程,其它注册到他的机构的系统可在系统「历史记录」页中的「事件」标签中看到。
图 10.4. 系统历史记录
- 需要一次迁移几个系统的 Satellite 管理员可使用
migrate-system-profile
的--csv
选项自动完成此过程,用逗号分开要迁移的系统。CSV 文件中的行应使用以下格式标记迁移的系统的 ID 和目的地机构的 ID:systemId,to-org-id
例如:systemId
可为1000010000
,而to-org-id
可以是3
。以下为示例 CSV 文件:1000010000,3 1000010020,1 1000010010,4
附录 A. 修订记录
修订历史 | |||||||||
---|---|---|---|---|---|---|---|---|---|
修订 3-5.2.400 | 2013-10-31 | Rüdiger Landmann | |||||||
| |||||||||
修订 3-5.2 | Sun Nov 4 2012 | Leah Liu | |||||||
| |||||||||
修订 3-5.1 | Sun Nov 4 2012 | Terry Chuang | |||||||
| |||||||||
修订 3-5 | Wed Sept 19 2012 | Dan Macpherson | |||||||
| |||||||||
修订 3-4 | Fri Aug 31 2012 | Athene Chan | |||||||
| |||||||||
修订 3-3 | Fri Aug 24 2012 | Athene Chan | |||||||
| |||||||||
修订 3-3 | Fri Aug 24 2012 | Athene Chan | |||||||
| |||||||||
修订 3-2 | Fri Aug 24 2012 | Athene Chan | |||||||
| |||||||||
修订 3-1 | Fri Aug 17 2012 | Athene Chan | |||||||
| |||||||||
修订 3-0 | Thu Aug 9 2012 | Athene Chan | |||||||
| |||||||||
修订 2-5 | Wed Aug 1 2012 | Athene Chan | |||||||
| |||||||||
修订 2-0 | Fri Jul 6 2012 | Athene Chan | |||||||
| |||||||||
修订 1-5 | Mon Aug 15 2011 | Lana Brindley | |||||||
| |||||||||
修订 1-4 | Mon Jun 20 2011 | Lana Brindley | |||||||
| |||||||||
修订 1-3 | Mon Jun 20 2011 | Lana Brindley | |||||||
| |||||||||
修订 1-2 | Wed Jun 15 2011 | Lana Brindley | |||||||
| |||||||||
修订 1-1 | Fri May 27 2011 | Lana Brindley | |||||||
| |||||||||
修订 1-0 | Fri May 6, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-15 | Thu May 5, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-14 | Mon May 2, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-13 | Fri Apr 29, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-12 | Mon Apr 18, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-11 | Mon Apr 18, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-10 | Mon Apr 18, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-9 | Thu Apr 14, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-8 | Wed Apr 13, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-7 | Wed Mar 23, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-6 | Mon Feb 19, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-5 | Fri Feb 18, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-4 | Mon Jan 10, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-3 | Fri Jan 7, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-2 | Wed Jan 5, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-1 | Tue Jan 4, 2011 | Lana Brindley | |||||||
| |||||||||
修订 0-0 | Tue Dec 21, 2010 | Lana Brindley | |||||||
|
索引
符号
- 停用
- 用户,添加、停用和删除用户帐户
- 克隆机器
- spacewalk-clone-by-date,克隆机器
- 删除
- 用户(只用于 RHN Satellite Server),添加、停用和删除用户帐户
- 前提条件
- OpenSCAP,前提条件
- 功能,OpenSCAP 功能
- 审核
- OpenSCAP,OpenSCAP
- 审核扫描,执行审核扫描
- OpenSCAP,执行审核扫描
- 密码
- 更改,用户管理
- 添加
- 用户,添加、停用和删除用户帐户
- 用户,用户管理
- 停用,添加、停用和删除用户帐户
- 删除(只用于 RHN Satellite Server),添加、停用和删除用户帐户
- 更改密码,用户管理
- 更改电子邮件地址,用户管理
- 添加,添加、停用和删除用户帐户
- 角色,用户管理
- 用户角色,用户管理
- 电子邮件地址
- 更改,用户管理
- 网页
- 用户,用户管理
A
- API
- 审核扫描,执行审核扫描
O
- OpenSCAP,OpenSCAP,OpenSCAP 功能,前提条件,执行审核扫描
P
- PAM 验证
- 实施,PAM 验证
W
- Web UI
- 审核扫描,执行审核扫描