管理 Red Hat Satellite
管理 Red Hat Satellite 的指南。
Red Hat Satellite Documentation Team
satellite-doc-list@redhat.com
摘要
对红帽文档提供反馈
我们感谢您对文档提供反馈信息。请让我们了解如何改进文档。
关于特定内容的简单评论:
确保您以 Multi-page HTML 格式查看文档。
另外,确定 Feedback 按钮出现在文档页的右上方。
- 用鼠标指针高亮显示您想评论的文本部分。
- 点在高亮文本上弹出的 Add Feedback。
- 按照显示的步骤操作。
要通过 Bugzilla 提交反馈,请创建一个新的 ticket:
- 进入 Bugzilla 网站。
- 在 Component 中选择 Documentation。
- 在 Description 中输入您要提供的信息。包括文档相关部分的链接。
- 点 Submit Bug。
第 1 章 访问 Red Hat Satellite
安装和配置 Red Hat Satellite 后,请使用 Satellite Web UI 界面登录 Satellite 以进行进一步配置。
1.1. 安装 Katello Root CA 证书
您第一次登录到 Satellite 时,您可能会看到一个警告,通知您使用默认的自签名证书,并且您可能无法在浏览器中安装 root CA 证书前将此浏览器连接到 Satellite。使用以下步骤在 Satellite 上找到 root CA 证书,并在浏览器中安装它。
先决条件
- 您的 Red Hat Satellite 已经安装并配置。
流程
识别 Satellite 服务器的完全限定域名:
# hostname -f
使用指向完全限定域名的 Web 浏览器访问 Satellite 服务器上的
pub
目录:https://satellite.example.com/pub
- 当您第一次访问 Satellite 时,网页浏览器中会显示一个不受信任的连接警告。接受自签名证书并添加 Satellite URL 作为安全例外,以覆盖设置。根据所使用的浏览器,这个过程可能会有所不同。在接受安全例外前,请确保 Satellite URL 有效。
-
选择
katello-server-ca.crt
。 - 将证书导入浏览器作为证书颁发机构,并信任它来识别网站。
手动导入 Katello Root CA 证书
在 Satellite CLI 中,将
katello-server-ca.crt
文件复制到您用于访问 Satellite Web UI 的机器:# scp /var/www/html/pub/katello-server-ca.crt username@hostname:remotefile
-
在浏览器中,将
katello-server-ca.crt
证书导入为证书颁发机构,并信任它来识别网站。
1.2. 登录到 Satellite
使用 Web 用户界面登录 Satellite 以进行进一步配置。
先决条件
- 确保浏览器中安装了 Katello root CA 证书。如需更多信息,请参阅 第 1.1 节 “安装 Katello Root CA 证书”。
流程
使用指向完全限定域名的 Web 浏览器访问 Satellite 服务器:
https://satellite.example.com/
- 输入配置过程中创建的用户名和密码。如果在配置过程中没有创建用户,则默认用户名为 admin。如果您在登录时遇到问题,可以重置密码。如需更多信息,请参阅 第 1.5 节 “重置管理用户密码”。
1.3. 在 Satellite Web UI 中导航 Tabs
使用导航选项卡浏览 Satellite Web UI。
导航 Tabs | 描述 |
---|---|
任何上下文 | 单击此选项卡可更改机构和位置。如果没有选择机构或位置,则默认机构为 Any Organization,默认位置为 Any Location。使用此选项卡更改为不同的值。 |
Monitor | 提供摘要仪表板和报告。 |
内容 | 提供内容管理工具。这包括内容视图、激活码和生命周期环境。 |
主机 | 提供主机清单和置备配置工具。 |
配置 | 提供常规配置工具和数据,包括主机组和 Puppet 数据。 |
基础架构 | 提供关于配置 Satellite 如何与环境交互的工具。 |
用户名 | 提供用户管理,用户可以在其中编辑其个人信息。 |
| 提供事件通知,以便管理员了解重要的环境更改。 |
管理 | 为用户和 RBAC 等设置提供高级配置,以及常规设置。 |
1.4. 更改密码
这些步骤演示了如何更改密码。
流程
- 单击右上角的用户名。
- 从菜单中选择 My Account。
- 在 Current Password 字段中,输入当前的密码。
- 在 Password 字段中,输入新密码。
- 在 Verify 字段中,再次输入新密码。
- 点 Submit 按钮保存新密码。
1.5. 重置管理用户密码
使用以下步骤将管理密码重置为随机生成的字符或设置新的管理密码。
重置管理用户密码
- 登录到安装了 Satellite 服务器的基本操作系统。
输入以下命令重置密码:
# foreman-rake permissions:reset Reset to user: admin, password: qwJxBptxb7Gfcjj5
- 使用此密码在 Satellite Web UI 中重置密码。
编辑 Satellite 服务器上的
~/.hammer/cli.modules.d/foreman.yml
文件以添加新密码:# vi ~/.hammer/cli.modules.d/foreman.yml
除非更新 ~/.hammer/cli.modules.d/foreman.yml
文件,否则您无法通过hammer CLI 使用新密码。
设置新的管理员密码
- 登录到安装了 Satellite 服务器的基本操作系统。
要设置密码,请输入以下命令:
# foreman-rake permissions:reset password=new_password
编辑 Satellite 服务器上的
~/.hammer/cli.modules.d/foreman.yml
文件以添加新密码:# vi ~/.hammer/cli.modules.d/foreman.yml
除非更新 ~/.hammer/cli.modules.d/foreman.yml
文件,否则您无法通过hammer CLI 使用新密码。
1.6. 在登录页面中设置自定义消息
流程
- 在 Satellite Web UI 中,导航到 Administer > Settings,然后点击 General 选项卡。
- 单击登录页面 文本旁边的编辑按钮,然后在登录页面中输入所需文本。例如,此文本可能是您所在公司所需的警告消息。
- 点击 Save。
- 从 Satellite Web UI 注销,并验证自定义文本现在显示在 Satellite 版本号下的登录页面中。
第 2 章 启动和停止 Red Hat Satellite
Satellite 提供 satellite-maintain service
命令,用于从命令行管理 Satellite 服务。这在创建 Satellite 备份时非常有用。有关创建备份的详情,请参考 第 9 章 备份 Satellite 服务器和 Capsule 服务器。
使用 satellite-installer
命令安装 Satellite 后,所有 Satellite 服务都会自动启动并启用。执行以下内容来查看这些服务列表:
# satellite-maintain service list
要查看正在运行的服务的状态,请执行:
# satellite-maintain service status
要停止 Satellite 服务,请执行:
# satellite-maintain service stop
要启动 Satellite 服务,请执行:
# satellite-maintain service start
要重启 Satellite 服务,请执行:
# satellite-maintain service restart
第 3 章 从内部 Satellite 数据库迁移到外部数据库
安装 Red Hat Satellite 时,satellite-installer 命令会在与 Satellite 相同的服务器上安装 PostgreSQL 数据库。如果您使用默认内部数据库,但希望开始使用外部数据库来帮助服务器负载,您可以将内部数据库迁移到外部数据库。
要确认 Satellite 服务器是否有内部数据库还是外部数据库,您可以查询数据库的状态:
对于 PostgreSQL,输入以下命令:
# satellite-maintain service status --only postgresql
红帽不提供对外部数据库维护的支持或工具。这包括备份、升级和数据库调整。您必须具有自己的数据库管理员才能支持和维护外部数据库。
要从默认内部数据库迁移到外部数据库,您必须完成以下步骤:
- 第 3.2 节 “为外部数据库准备主机”.准备 Red Hat Enterprise Linux 8 或 Red Hat Enterprise Linux 7 服务器来托管外部数据库。
- 第 3.3 节 “安装 PostgreSQL”.使用拥有 Satellite 的专用用户,为 Satellite、Pulp 和 Candlepin 准备 PostgreSQL。
-
第 3.4 节 “迁移到外部数据库”.编辑
satellite-installer
的参数以指向新数据库,并运行satellite-installer
。
3.1. PostgreSQL 作为外部数据库注意事项
Foreman、Katello 和 Candlepin 使用 PostgreSQL 数据库。如果要将 PostgreSQL 用作外部数据库,以下信息可帮助您决定此选项是否适合您的 Satellite 配置。Satellite 支持 PostgreSQL 版本 12。
外部 PostgreSQL 的优点:
- 在 Satellite 上增加可用内存和空闲 CPU
-
将 PostgreSQL 数据库上的
shared_buffers
设置为大量数量的灵活性,而无需干扰 Satellite 上的其他服务 - 在不影响 Satellite 操作的情况下调整 PostgreSQL 服务器系统的灵活性
外部 PostgreSQL 的缺点
- 增加了部署复杂性,以便更困难
- 外部 PostgreSQL 服务器是补丁和维护的额外系统
- 如果 Satellite 或 PostgreSQL 数据库服务器出现硬件或存储故障,Satellite 无法正常工作
- 如果 Satellite 服务器和数据库服务器之间存在延迟,则性能可能会遇到
如果您疑 Satellite 上的 PostgreSQL 数据库导致性能问题,请使用 Satellite 6 中的信息:如何启用 postgres 查询日志来检测运行缓慢的 查询来确定是否有较慢的查询。超过一秒的查询通常是由于大型安装的性能问题导致的,而迁移到外部数据库可能并无法帮助。如果您有较慢的查询,请联系红帽支持团队。
3.2. 为外部数据库准备主机
使用最新的 Red Hat Enterprise Linux 8 或 Red Hat Enterprise Linux 7 服务器安装一个新的置备系统来托管外部数据库。
Red Hat Software Collections 和 Red Hat Enterprise Linux 的订阅不提供将 Satellite 与外部数据库搭配使用的正确服务级别协议。您还必须将 Satellite 订阅附加到要用于外部数据库的基本操作系统。
先决条件
- 准备的主机必须满足 Satellite 的存储要求。
流程
- 使用附加 Satellite Infrastructure 订阅 中的说明将 Satellite 订阅附加到您的服务器。
禁用所有软件仓库,仅启用以下软件仓库:
Red Hat Enterprise Linux 7:
# subscription-manager repos --disable '*' # subscription-manager repos --enable=rhel-server-rhscl-7-rpms \ --enable=rhel-7-server-rpms --enable=rhel-7-server-satellite-6.11-rpms
Red Hat Enterprise Linux 8:
# subscription-manager repos --disable '*' # subscription-manager repos \ --enable=satellite-6.11-for-rhel-8-x86_64-rpms \ --enable=rhel-8-for-x86_64-baseos-rpms \ --enable=rhel-8-for-x86_64-appstream-rpms
在 Red Hat Enterprise Linux 8 中,启用以下模块:
# dnf module enable satellite:el8
注意启用模块
satellite:el8
会警告与postgresql:10
和ruby:2.5
冲突,因为这些模块被设置为 Red Hat Enterprise Linux 8 上的默认模块版本。模块satellite:el8
依赖于模块postgresql:12
和ruby:2.7
,该模块将使用satellite:el8
模块启用。这些警告不会导致安装过程失败,因此可以安全地忽略。有关 Red Hat Enterprise Linux 8 中的模块和生命周期流的更多信息,请参阅 Red Hat Enterprise Linux Application Streams 生命周期。
3.3. 安装 PostgreSQL
您只能安装在内部数据库安装过程中使用 satellite-installer
工具安装的同一版本的 PostgreSQL。您可以使用 Red Hat Enterprise Linux 8 或 Red Hat Enterprise Linux Server 7 软件仓库安装 PostgreSQL。Satellite 支持 PostgreSQL 版本 12。
3.3.1. 在 Red Hat Enterprise Linux 8 上安装 PostgreSQL
流程
要安装 PostgreSQL,请输入以下命令:
# dnf install postgresql-server postgresql-evr
要初始化 PostgreSQL,请输入以下命令:
# postgresql-setup initdb
编辑
/var/lib/pgsql/data/postgresql.conf
文件:# vi /var/lib/pgsql/data/postgresql.conf
删除
sVirt
并编辑以侦听入站连接:listen_addresses = '*'
编辑
/var/lib/pgsql/data/pg_hba.conf
文件:# vi /var/lib/pgsql/data/pg_hba.conf
在文件中添加以下行:
host all all Satellite_ip/24 md5
要启动并启用 PostgreSQL 服务,请输入以下命令:
# systemctl start postgresql # systemctl enable postgresql
在外部 PostgreSQL 服务器上打开 postgresql 端口:
# firewall-cmd --add-service=postgresql # firewall-cmd --runtime-to-permanent
切换到
postgres
用户并启动 PostgreSQL 客户端:$ su - postgres -c psql
创建三个数据库和专用角色:一个用于 Satellite,一个用于 Candlepin,另一个用于 Pulp:
CREATE USER "foreman" WITH PASSWORD 'Foreman_Password'; CREATE USER "candlepin" WITH PASSWORD 'Candlepin_Password'; CREATE USER "pulp" WITH PASSWORD 'Pulpcore_Password'; CREATE DATABASE foreman OWNER foreman; CREATE DATABASE candlepin OWNER candlepin; CREATE DATABASE pulpcore OWNER pulp;
退出
postgres
用户:# \q
在 Satellite 服务器中测试您可以访问数据库。如果连接成功,命令会返回
1
。# PGPASSWORD='Foreman_Password' psql -h postgres.example.com -p 5432 -U foreman -d foreman -c "SELECT 1 as ping" # PGPASSWORD='Candlepin_Password' psql -h postgres.example.com -p 5432 -U candlepin -d candlepin -c "SELECT 1 as ping" # PGPASSWORD='Pulpcore_Password' psql -h postgres.example.com -p 5432 -U pulp -d pulpcore -c "SELECT 1 as ping"
3.3.2. 在 Red Hat Enterprise Linux 7 上安装 PostgreSQL
流程
要安装 PostgreSQL,请输入以下命令:
# yum install rh-postgresql12-postgresql-server \ rh-postgresql12-syspaths \ rh-postgresql12-postgresql-evr
要初始化 PostgreSQL,请输入以下命令:
# postgresql-setup initdb
编辑
/var/opt/rh/rh-postgresql12/lib/pgsql/data/postgresql.conf
文件:# vi /var/opt/rh/rh-postgresql12/lib/pgsql/data/postgresql.conf
删除
sVirt
并编辑以侦听入站连接:listen_addresses = '*'
编辑
/var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf
文件:# vi /var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf
在文件中添加以下行:
host all all Satellite_ip/24 md5
要启动并启用 PostgreSQL 服务,请输入以下命令:
# systemctl start postgresql # systemctl enable postgresql
在外部 PostgreSQL 服务器上打开 postgresql 端口:
# firewall-cmd --add-service=postgresql # firewall-cmd --runtime-to-permanent
切换到
postgres
用户并启动 PostgreSQL 客户端:$ su - postgres -c psql
创建三个数据库和专用角色:一个用于 Satellite,一个用于 Candlepin,另一个用于 Pulp:
CREATE USER "foreman" WITH PASSWORD 'Foreman_Password'; CREATE USER "candlepin" WITH PASSWORD 'Candlepin_Password'; CREATE USER "pulp" WITH PASSWORD 'Pulpcore_Password'; CREATE DATABASE foreman OWNER foreman; CREATE DATABASE candlepin OWNER candlepin; CREATE DATABASE pulpcore OWNER pulp;
退出
postgres
用户:# \q
在 Satellite 服务器中测试您可以访问数据库。如果连接成功,命令会返回
1
。# PGPASSWORD='Foreman_Password' psql -h postgres.example.com -p 5432 -U foreman -d foreman -c "SELECT 1 as ping" # PGPASSWORD='Candlepin_Password' psql -h postgres.example.com -p 5432 -U candlepin -d candlepin -c "SELECT 1 as ping" # PGPASSWORD='Pulpcore_Password' psql -h postgres.example.com -p 5432 -U pulp -d pulpcore -c "SELECT 1 as ping"
3.4. 迁移到外部数据库
备份和传输现有数据,然后使用 satellite-installer
命令配置 Satellite 以连接到外部 PostgreSQL 数据库服务器。
先决条件
- 您已在 Red Hat Enterprise Linux 服务器上安装并配置了 PostgreSQL 服务器。
流程
在 Satellite 服务器上,停止 Satellite 服务:
# satellite-maintain service stop
启动 PostgreSQL 服务:
# systemctl start postgresql
备份内部数据库:
# satellite-maintain backup online --skip-pulp-content --preserve-directory -y /var/migration_backup
将数据传送到新的外部数据库:
PGPASSWORD='Foreman_Password' pg_restore -h postgres.example.com -U foreman -d foreman < /var/migration_backup/foreman.dump PGPASSWORD='Candlepin_Password' pg_restore -h postgres.example.com -U candlepin -d candlepin < /var/migration_backup/candlepin.dump PGPASSWORD='Pulpcore_Password' pg_restore -h postgres.example.com -U pulp -d pulpcore < /var/migration_backup/pulpcore.dump
使用
satellite-installer
命令更新 Satellite 以指向新数据库:satellite-installer --scenario satellite \ --foreman-db-host postgres.example.com \ --foreman-db-password Foreman_Password \ --foreman-db-database foreman \ --foreman-db-manage false \ --foreman-db-username foreman \ --katello-candlepin-db-host postgres.example.com \ --katello-candlepin-db-name candlepin \ --katello-candlepin-db-password Candlepin_Password \ --katello-candlepin-manage-db false \ --katello-candlepin-db-user candlepin \ --foreman-proxy-content-pulpcore-manage-postgresql false \ --foreman-proxy-content-pulpcore-postgresql-host postgres.example.com \ --foreman-proxy-content-pulpcore-postgresql-db-name pulpcore \ --foreman-proxy-content-pulpcore-postgresql-password Pulpcore_Password \ --foreman-proxy-content-pulpcore-postgresql-user pulp
第 4 章 使用 Ansible Collections 管理 Satellite
Satellite Ansible Collections 是一组与 Satellite API 交互的 Ansible 模块。您可以使用 Satellite Ansible Collections 管理和自动化 Satellite 的许多方面。
4.1. 安装 Satellite Ansible 模块
使用这个流程安装 Satellite Ansible 模块。
前提条件
确保启用了 Ansible 2.9 或更高版本的存储库,并且 ansible 软件包已更新:
# subscription-manager repos --enable rhel-7-server-ansible-2.9-rpms # satellite-maintain packages update ansible
流程
使用以下命令安装软件包:
# satellite-maintain packages install ansible-collection-redhat-satellite
4.2. 查看 Satellite Ansible 模块
您可以通过列出以下目录的内容来查看已安装的 Satellite Ansible 模块:
# ls /usr/share/ansible/collections/ansible_collections/redhat/satellite/plugins/modules/
在编写编写时,ansible-doc -l
命令还没有列出集合。
另外,您还可以查看 Satellite Ansible 模块的完整列表和其他相关信息,网址为https://console.redhat.com/ansible/automation-hub/redhat/satellite/docs。
所有模块都位于 redhat.satellite
命名空间中,可以以 redhat.satellite._module_name_
格式引用。例如,要显示有关 activation_key
模块的信息,请输入以下命令:
$ ansible-doc redhat.satellite.activation_key
第 5 章 管理用户和角色
用户为使用系统的个人定义了一组详细信息。用户可以与机构和环境关联,以便在创建新实体时,会自动使用默认设置。用户也可以附加 一个或多个角色,该角色授予查看和管理机构和环境的权限。有关使用用户的更多信息,请参阅 第 5.1 节 “用户管理”。
您可以通过将多个用户的权限整理到用户组中,来一次性管理多个用户的权限。可以进一步分组本身以创建权限的层次结构。有关创建用户组的详情,请参考 第 5.4 节 “创建和管理用户组”。
角色定义一组权限和访问级别。每个角色都包含多个 权限过滤器 中的一个,用于指定角色允许的操作。操作按照 资源类型 进行了分组。创建角色后,用户和用户组可以与该角色关联。这样,您可以为大型用户组分配相同的权限集。Satellite 提供了一组预定义的角色,同时还允许创建自定义角色和权限过滤器,如 第 5.5 节 “创建和管理角色” 所述。
5.1. 用户管理
作为管理员,您可以创建、修改和删除 Satellite 用户。您还可以通过为用户或一组用户分配不同的角色来配置访问权限 。
5.1.1. 创建用户
使用这个流程创建用户。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Administer > Users。
- 单击创建用户。
- 在 Login 字段中,为用户输入用户名。
- 在 Firstname 和 Lastname 字段中,输入用户的实际名字和姓氏。
- 在 Mail 字段中,输入用户的电子邮件地址。
- 在 Description 字段中,添加新用户的描述。
- 从 Language 列表中选择用户的特定语言。
从 Timezone 列表中选择用户的时区。
默认情况下,Satellite 服务器使用用户浏览器的语言和时区设置。
为该用户设置密码:
从 Authorized by 列表中,选择验证用户的源。
- INTERNAL :要在 Satellite 服务器中管理用户。
- EXTERNAL :配置外部身份验证,如 第 15 章 配置外部身份验证 所述。
- 在 Password 字段中输入用户的初始密码和 Verify 字段。
- 点 Submit 创建用户。
CLI 过程
运行以下命令来创建用户:
# hammer user create \ --auth-source-id My_Authentication_Source \ --login My_User_Name \ --mail My_User_Mail \ --organization-ids My_Organization_ID_1,My_Organization_ID_2 \ --password My_User_Password
--auth-source-id 1
设置表示用户在内部验证用户,您可以将外部身份验证源指定为替代方案。添加--admin
选项,以授予用户管理员特权。不需要指定机构 ID,之后您可以使用update
子命令修改用户详情。
有关与用户相关的子命令的更多信息,请输入 hammer user --help
。
5.1.2. 为用户分配角色
使用这个流程为用户分配角色。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Administer > Users。
单击要分配给一个或多个角色的用户的 username。
注意如果没有列出用户帐户,请检查您当前是否查看正确的机构。要列出 Satellite 中的所有用户,请单击 Default Organization,然后单击 Any Organization。
- 点 Locations 选项卡,并在没有分配时选择一个位置。
- 单击 Organizations 选项卡,并检查是否分配了组织。
- 单击 Roles 选项卡,以显示可用角色的列表。
从 Roles 列表中选择要分配的角色。
要授予所有可用权限,可选中 Admin 复选框。
- 点 Submit。
要查看分配给用户的角色,请单击 Roles 选项卡;分配的角色列在 Selected items 下。要删除分配的角色,请单击 Selected items 中的角色名称。
CLI 过程
要为用户分配角色,请输入以下命令:
# hammer user add-role --id user_id --role role_name
5.1.3. 模拟不同的用户帐户
管理员可以以不同的用户身份临时登录到 Satellite Web UI 来模拟其他经过身份验证的用户进行测试和故障排除。在模拟其他用户时,管理员具有访问模拟用户可在系统中访问的权限,包括相同的菜单。
创建审计,以记录管理员在模拟其他用户时执行的操作。但是,在模拟其他用户时管理员执行的所有操作都会像被模拟的用户执行一样记录。
先决条件
- 确保您以具有 Satellite 管理员特权的用户身份登录到 Satellite Web UI。
流程
- 在 Satellite Web UI 中,导航到 Administer > Users。
- 在您要模拟的用户右侧,从 Actions 列中的列表中选择 Impersonate。
当您想停止模拟会话时,点主菜单右上角的模拟图标。
5.1.4. 创建仅 API 用户
您可以创建只能与 Satellite API 交互的用户。
前提条件
- 您已创建了用户并为其分配的角色。请注意,此用户必须在内部授权。如需更多信息 ,请参阅 创建用户并将角色分配给用户。
流程
- 以 admin 用户身份登录您的 Satellite。
- 导航到 Administer > Users 并选择用户。
在 User 选项卡中,设置密码。不要保存或传达这个密码与其他密码。您可以在控制台中创建伪随机字符串:
# openssl rand -hex 32
- 为用户创建个人访问令牌。如需更多信息,请参阅 第 5.3.1 节 “创建个人访问令牌”。
5.2. SSH 密钥管理
向用户添加 SSH 密钥允许在调配期间部署 SSH 密钥。有关在置备过程中部署 SSH 密钥的详情,请参考 置备 指南中的 在置备过程中部署 SSH 密钥。
有关 SSH 密钥和 SSH 密钥创建的详情,请参考 Red Hat Enterprise Linux 7 系统管理员指南中的使用基于 SSH 的身份验证。
5.2.1. 管理用户的 SSH 密钥
使用此流程为用户添加或删除 SSH 密钥。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
先决条件
确保您以 Red Hat Satellite 的 Admin 用户身份或为添加 SSH 密钥启用了 create_ssh_key 权限,为删除密钥启用了 destroy_ssh_key 权限的用户身份登陆到 Satellite web UI,用于。
流程
- 在 Satellite Web UI 中,导航到 Administer > Users。
- 在 Username 列中点击所需用户的用户名。
点 SSH Keys 选项卡。
添加 SSH 密钥
- 在剪贴板中准备公共 SSH 密钥的内容。
- 单击 Add SSH Key。
- 在 Key 字段中,粘贴剪贴板中的公共 SSH 密钥内容。
- 在 Name 字段中输入 SSH 密钥的名称。
- 点 Submit。
删除 SSH 密钥
- 点要删除的 SSH 密钥行上的 Delete。
- 在确认提示符处,单击 OK。
CLI 过程
要为用户添加 SSH 密钥,您必须指定到公共 SSH 密钥文件的路径,或指定复制到剪贴板的公共 SSH 密钥的内容。
如果您有公共 SSH 密钥文件,请输入以下命令:
# hammer user ssh-keys add \ --user-id user_id \ --name key_name \ --key-file ~/.ssh/id_rsa.pub
如果您有公共 SSH 密钥的内容,请输入以下命令:
# hammer user ssh-keys add \ --user-id user_id \ --name key_name \ --key ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNtYAAABBBHHS2KmNyIYa27Qaa7EHp+2l99ucGStx4P77e03ZvE3yVRJEFikpoP3MJtYYfIe8k 1/46MTIZo9CPTX4CYUHeN8= host@user
要从用户中删除 SSH 密钥,请输入以下命令:
# hammer user ssh-keys delete --id key_id --user-id user_id
要查看附加到用户的 SSH 密钥,请输入以下命令:
# hammer user ssh-keys info --id key_id --user-id user_id
要列出附加到用户的 SSH 密钥,请输入以下命令:
# hammer user ssh-keys list --user-id user_id
5.3. 管理个人访问令牌
个人访问令牌允许您在不使用密码的情况下验证 API 请求。您可以为个人访问令牌设置过期日期,如果您决定应在过期日期前过期,可以撤销它。
5.3.1. 创建个人访问令牌
使用这个流程创建个人访问令牌。
流程
- 在 Satellite Web UI 中,导航到 Administer > Users。
- 选择您要为其创建个人访问令牌的用户。
- 在 个人访问令牌 选项卡中,单击 Add Personal Access Token。
- 输入个人访问令牌的名称。
- 可选: 选择 过期日期来设置过期日期。如果您没有设置过期日期,您的个人访问令牌将永远不会过期,除非撤销。
点 Submit。现在,您已在个人访问令牌 选项卡中有 个人访问令牌。
重要确保存储您的个人访问令牌,因为您将无法在页面离开或创建新的个人访问令牌后再次访问它。您可以点击 Copy to clipboard 复制个人访问令牌。
验证
向 Satellite 服务器发出 API 请求,并使用您的个人访问令牌进行身份验证:
# curl https://satellite.example.com/api/status --user My_Username:My_Personal_Access_Token
您应该收到状态为
200
的响应,例如:{"satellite_version":"6.11.0","result":"ok","status":200,"version":"3.5.1.10","api_version":2}
如果您返回 个人访问令牌 选项卡,您可以看到个人访问令牌旁的更新的 Last Used 时间。
5.3.2. 撤销个人访问令牌
使用这个流程在过期日期前撤销个人访问令牌。
流程
- 在 Satellite Web UI 中,导航到 Administer > Users。
- 选择您要撤销个人访问令牌的用户。
- 在 个人访问令牌 选项卡中,找到您要撤销的个人访问令牌。
- 在您要撤销的个人访问令牌旁边的 Actions 列中点 Revoke。
验证
向 Satellite 服务器发出 API 请求,并尝试使用撤销的个人访问令牌进行身份验证:
# curl https://satellite.example.com/api/status --user My_Username:My_Personal_Access_Token
您会收到以下出错信息:
{ "error": {"message":"Unable to authenticate user My_Username"} }
5.4. 创建和管理用户组
5.4.1. 用户组
使用 Satellite 时,您可以为用户组分配权限。您还可以将用户组创建为其他用户组的集合。如果使用外部身份验证源,您可以将 Satellite 用户组映射到外部用户组,如 第 15.4 节 “配置外部用户组” 所述。
用户组在组织上下文中定义,这意味着您必须在访问用户组前选择机构。
5.4.2. 创建用户组
使用这个流程创建用户组。
流程
- 在 Satellite Web UI 中,导航到 Administer > User Groups。
- 单击 Create User group。
在 User Group 选项卡中,指定新用户组的名称并选择组成员:
- 从 User Groups 列表中选择之前创建的用户组。
- 从 Users 列表中选择用户。
- 在 Roles 选项卡上,选择您要分配给用户组的角色。或者,选择 Admin 复选框来分配所有可用的权限。
- 点 Submit。
CLI 过程
运行以下命令来创建用户组:
# hammer user-group create \ --name My_User_Group_Name \ --role-ids My_Role_ID_1,My_Role_ID_2 \ --user-ids My_User_ID_1,My_User_ID_2
5.4.3. 删除用户组
使用 Satellite Web UI 删除用户组。
流程
- 在 Satellite Web UI 中,导航到 Administer > User Groups。
- 点您要删除的用户组右侧的 Delete。
- 在出现的警报框中,单击 OK 以删除用户组。
5.5. 创建和管理角色
Satellite 提供了一组对标准任务具有足够权限的预定义角色,如 第 5.6 节 “Satellite 中可用的预定义角色” 中列出的。也可以配置自定义角色,并为它们分配一个或多个权限过滤器。权限过滤器定义特定资源类型允许的操作。某些 Satellite 插件自动创建角色。
5.5.1. 创建角色
使用这个流程创建角色。
流程
- 在 Satellite Web UI 中,导航到 Administer > Roles。
- 点 Create Role。
- 为角色提供 Name。
- 点 Submit 保存您的新角色。
CLI 过程
运行以下命令来创建角色:
# hammer role create --name My_Role_Name
为满足其目的,角色必须包含权限。创建角色后,继续 第 5.5.3 节 “在角色中添加权限”。
5.5.2. 克隆角色
使用 Satellite Web UI 克隆角色。
流程
- 在 Satellite Web UI 中,导航到 Administer > Roles,然后从所需角色右侧的下拉菜单中选择 Clone。
- 为角色提供 Name。
- 点 Submit 以克隆角色。
- 单击克隆的角色的名称,再导航到 Filters。
- 根据需要编辑权限。
- 点 Submit 保存您的新角色。
5.5.3. 在角色中添加权限
使用这个流程为角色添加权限。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Administer > Roles。
- 从所需角色右侧的下拉列表中选择 Add Filter。
- 从下拉列表中选择 资源类型。(Miscellaneous) 组收集与任何资源组关联的权限。
- 点您要从 Permission 列表中选择的权限。
- 根据所选的 资源类型,您可以选择或取消选择 附件 和 Override 复选框。默认情况下,会选中 kiosk 复选框,这意味着权限将应用到所选类型的所有资源。当您禁用 kiosk 复选框时,Search 字段会激活。在此字段中,您可以使用 Satellite 搜索语法指定进一步过滤。更多信息请参阅 第 5.7 节 “粒度权限过滤”。启用 Override 复选框时,您可以添加额外的位置和机构来允许角色访问额外位置和机构中的资源类型;您还可以从资源类型中删除已关联的位置和机构来限制访问。
- 点击 Next。
- 点 Submit 保存更改。
CLI 过程
列出所有可用权限:
# hammer filter available-permissions
为角色添加权限:
# hammer filter create \ --permission-ids My_Permission_ID_1,My_Permission_ID_2 \ --role My_Role_Name
如需有关角色和权限参数的更多信息,请输入 hammer role --help
和 hammer filter --help
命令。
5.5.4. 查看角色的权限
使用 Satellite Web UI 查看角色的权限。
流程
- 在 Satellite Web UI 中,导航到 Administer > Roles。
- 单击所需角色右侧的 Filters,以进入 Filters 页面。
Filters 页面包含分配给根据资源类型分组的角色的权限表。也可以生成您可以在 Satellite 系统上使用的权限和操作的完整表。更多信息请参阅 第 5.5.5 节 “创建完整的权限表”。
5.5.5. 创建完整的权限表
使用 Satellite CLI 创建权限表。
流程
确保安装了所需的软件包。在 Satellite 服务器上执行以下命令:
# satellite-maintain packages install foreman-console
使用以下命令启动 Satellite 控制台:
# foreman-rake console
将以下代码插入到控制台中:
f = File.open('/tmp/table.html', 'w') result = Foreman::AccessControl.permissions {|a,b| a.security_block <=> b.security_block}.collect do |p| actions = p.actions.collect { |a| "<li>#{a}</li>" } "<tr><td>#{p.name}</td><td><ul>#{actions.join('')}</ul></td><td>#{p.resource_type}</td></tr>" end.join("\n") f.write(result)
以上语法创建了权限表,并将其保存到
/tmp/table.html
文件中。按
Ctrl
+D
退出 Satellite 控制台。在/tmp/table.html
的第一行中插入以下文本:<table border="1"><tr><td>Permission name</td><td>Actions</td><td>Resource type</td></tr>
在
/tmp/table.html
末尾附加以下文本:</table>
-
在 Web 浏览器中打开
/tmp/table.html
来查看表。
5.5.6. 删除角色
使用 Satellite Web UI 删除角色。
流程
- 在 Satellite Web UI 中,导航到 Administer > Roles。
- 从要删除的角色右侧的下拉列表中,选择 Delete。
- 在出现的警报框中,单击 OK 以删除该角色。
5.6. Satellite 中可用的预定义角色
下表提供了 Satellite 中预定义角色授予用户的权限概述。
要查看预定义角色授予的确切权限集,请以特权用户身份在 Satellite Web UI 中显示角色。如需更多信息,请参阅 第 5.5.4 节 “查看角色的权限”。
表 5.1. 角色提供的权限
角色 | 角色提供的权限 |
---|---|
访问 Insights 管理员 | 添加并编辑 Insights 规则。 |
访问 Insights Viewer | 查看过期报告。 |
Ansible Roles Manager | 在主机和主机组上扮演角色。查看、销毁和导入 Ansible 角色。查看、编辑、创建、销毁和导入 Ansible 变量。 |
Ansible Tower 清单读取器 | 查看事实、主机和主机组。 |
书签管理器 | 创建、编辑和删除书签。 |
引导磁盘访问 | 下载引导磁盘。 |
合规性管理器 | 查看、创建、编辑和销毁 SCAP 内容文件、合规性策略和定制文件。查看合规性报告。 |
Compliance viewer | 查看合规性报告。 |
创建 ARF 报告 | 创建合规性报告。 |
默认角色 | 每个用户被授予的权限集,而不考虑任何其他角色。 |
发现管理器 | 查看、置备、编辑和销毁发现的主机并管理发现规则。 |
Discovery Reader | 查看主机和发现规则。 |
编辑主机 | 查看、创建、编辑、销毁和构建主机。 |
编辑分区表 | 查看、创建、编辑和销毁分区表。 |
Manager(管理者) | 查看并编辑全局设置。 |
机构管理员 | 除管理机构的权限外的所有权限。 每个组织定义的管理员角色。该角色对其他机构中的资源不可见。 通过克隆此角色并分配机构,您可以将该机构的管理委托给用户。 |
Red Hat Access Logs | 查看日志查看器和日志。 |
远程执行管理器 | 控制哪些角色有运行基础架构作业的权限。 |
远程执行用户 | 针对主机运行远程执行作业。 |
站点管理器 | Manager 角色的其余版本。 |
系统管理员 |
具有此角色的用户可以创建用户,并为他们分配所有角色。因此,请确保仅为受信任的用户提供此角色。 |
任务管理器 | 查看并编辑 Satellite 任务。 |
任务读取器 | 只能查看 Satellite 任务的角色。 |
Viewer | 被动角色,能够查看 Satellite 结构、日志、报告和统计信息的每个元素的配置。 |
查看主机 | 只能查看主机的角色。 |
virt-who Manager | 具有完整 virt-who 权限的角色。 |
virt-who Reporter | 将 virt-who 生成的报告上传到 Satellite。如果您手动配置 virt-who,且需要具有有限 virt-who 权限的用户角色,可以使用它。 |
virt-who Viewer | 查看 virt-who 配置。具有此角色的用户可以使用现有 virt-who 配置部署 virt-who 实例。 |
5.7. 粒度权限过滤
5.7.1. 粒度权限过滤器
如 第 5.5.3 节 “在角色中添加权限” 所述,Red Hat Satellite 提供了将配置的用户权限限制为资源类型的所选实例。这些粒度过滤器是对 Satellite 数据库的查询,并由大多数资源类型支持。
5.7.2. 创建 Granular 权限过滤器
使用这个流程创建粒度过滤器。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
Satellite 不应用搜索条件来创建操作。例如,在搜索字段中限制 name = "Default Location" 表达式的 create_locations 操作不会阻止用户为新创建的位置分配自定义名称。
流程
在 Edit Filter 页面的 Search 字段中指定查询。取消选择该字段的附件复选框,以激活。查询具有以下格式:
field_name operator value
- field_name 标记要查询的字段。可用字段名称的范围取决于资源类型。例如,分区表 资源类型提供 系列、布局和 名称作为 查询参数。
- Operator 指定 field_name 和 值 之间的比较类型。如需了解适用的操作符的概述信息,请参阅 第 5.7.4 节 “支持的 Granular Search 的 Operator”。
- value 是用于过滤的值。例如,这可以是机构的名称。支持两种类型的通配符字符:下划线(_)提供单一字符替换,而百分比符号(%)则替换零或更多字符。
对于大多数资源类型,Search 字段提供了一个下拉列表,建议可用参数。在将光标放在搜索字段中后会出现此列表。对于很多资源类型,您可以使用逻辑运算符(如 and ,not 和has)来组合查询。
CLI 过程
要创建粒度过滤器,请输入带有
--search
选项的hammer filter create
命令来限制权限过滤器,例如:# hammer filter create \ --permission-ids 91 \ --search "name ~ ccv*" \ --role qa-user
此命令向 qa-user 角色添加权限来查看、创建、编辑和销毁内容视图,该角色只适用于以 ccv
开头的名称。
5.7.3. 使用 Granular 权限过滤器的示例
作为管理员,您可以允许所选用户在环境路径的某些部分进行更改。以下过滤器允许您在应用程序生命周期的开发阶段使用内容,但内容在推送到生产后将无法访问。
5.7.3.1. 为主机资源类型应用权限
以下查询将为 Host 资源类型指定的任何权限应用到名为 host-editors 的组中的主机。
hostgroup = host-editors
以下查询返回与 XXXX、Yyyy 或 zzzz 示例字符串匹配的记录:
name ^ (XXXX, Yyyy, zzzz)
您还可以将权限限制为所选环境。要做到这一点,在 Search 字段中指定环境名称,例如:
Dev
您可以使用 Search 字段中的粒度权限过滤器将用户权限限制到特定机构或位置。但是,有些资源类型提供了 GUI 替代方案,一个提供了 Locations 和 Organizations 选项卡的 Override 复选框。在这些选项卡上,您可以从可用机构和位置列表中选择。更多信息请参阅 第 5.7.3.2 节 “创建特定于机构管理器角色”。
5.7.3.2. 创建特定于机构管理器角色
使用 Satellite Web UI 创建仅限于一个名为 org-1 的单个机构的管理角色。
流程
- 在 Satellite Web UI 中,导航到 Administer > Roles。
- 克隆现有的 机构管理员 角色。从 过滤器 按钮旁边的下拉列表中,选择 Clone。然后,系统会提示您插入克隆的角色的名称,如 org-1 admin。
- 单击所需位置和组织,将它们与角色关联。
- 点 Submit 创建角色。
- 单击 org-1 admin,然后单击 Filters 以查看所有相关过滤器。默认过滤器适用于大多数用例。但是,您可以选择性地点击 Edit 来更改每个过滤器的属性。对于某些过滤器,如果您希望角色能够访问其他位置和机构中的资源,您可以启用 Override 选项。例如,通过选择 Domain 资源类型、覆盖 选项,然后使用位置和机构选项卡选择其他位置和 机构,您可以允许此角色访问与此角色关联的额外位置和机构中的域。您还可以点 New filter 将新过滤器与此角色关联。
5.7.4. 支持的 Granular Search 的 Operator
表 5.2. 逻辑 Operator
Operator | 描述 |
和 | 组合了搜索条件。 |
not | 对表达式进行贡献。 |
has | 对象必须具有指定的属性。 |
表 5.3. 符号链接 Operator
Operator | 描述 |
= | 等于。文本字段不区分大小写的相等性比较。 |
!= | 不等于。= operator 的 inversion。 |
~ | 类似于。对文本字段的搜索不区分大小写。 |
!~ | 不像。~ 运算符的 inversion。 |
^ | 在 中。对文本字段的区分大小写的比较。这会生成不同的 SQL 查询,与比较 相等,并且对多个值比较效率更高。 |
!^ | 不在 中。^ 运算符的 inversion。 |
>, >= | 大于或等于,大于或等于。仅支持数字字段。 |
<, ⇐ | 小于或等于 。仅支持数字字段。 |
第 6 章 电子邮件通知
Satellite 服务器定期或完成某些事件后创建电子邮件通知。定期通知可以每天、每周或每月发送。
触发通知的事件如下:
- 主机构建
- 内容视图提升
- 主机报告的错误
- 仓库同步
用户默认不收到任何电子邮件通知。管理员可以配置用户,以根据通知类型等标准接收通知,以及频率。
如果您希望发送到组电子邮件地址的电子邮件通知,而不是单独的电子邮件地址,创建一个带有组电子邮件地址和最小 Satellite 权限的用户帐户,然后将用户帐户订阅到所需的通知类型。
默认情况下,Satellite 服务器不启用传出电子邮件,因此您必须检查您的电子邮件配置。如需更多信息,请参阅 从连接的网络安装 Satellite 服务器 中的 为传出电子邮件配置 Satellite 服务器。
6.1. 配置电子邮件通知
您可以将 Satellite 配置为向 Satellite 注册的单个用户发送电子邮件消息。Satellite 将电子邮件发送到添加到帐户的电子邮件地址(如果存在)。用户可以通过单击 Satellite Web UI 右上角的其名称并选择 My account 来编辑电子邮件地址。
从 Satellite Web UI 为用户配置电子邮件通知。
流程
- 在 Satellite Web UI 中,导航到 Administer > Users。
- 点您要编辑的用户的 Username。
- 在 User 选项卡中,验证 mail 字段的值。电子邮件通知将发送到此字段中的地址。
- 在 Email Preferences 选项卡中,选择 Mail Enabled。
使用通知类型旁的下拉菜单,选择您希望用户接收的通知。
注意通过在 mail Query 文本框中输入所需的查询来过滤审计概述 通知。
点 Submit。
用户将开始收到通知电子邮件。
6.2. 测试电子邮件交付
要验证电子邮件的发送,请向用户发送测试电子邮件。如果发送电子邮件,则设置正确。
流程
- 在 Satellite Web UI 中,导航到 Administer > Users。
- 点用户名。
在 Email Preferences 选项卡上,单击 Test email。
测试电子邮件消息会立即发送到用户的电子邮件地址。
如果发送电子邮件,则验证已完成。否则,您必须执行以下诊断步骤:
- 验证用户的电子邮件地址。
- 验证 Satellite 服务器的电子邮件配置。
- 检查防火墙和邮件服务器日志。
6.3. 测试电子邮件通知
要验证用户是否已正确订阅通知,请手动触发通知。
流程
要触发通知,请执行以下命令:
# foreman-rake reports:_My_Frequency_
将 My_Frequency 替换为以下之一:
- daily
- weekly
- monthly
这会为所有订阅的用户触发调度指定频率的所有通知。如果每个订阅的用户收到通知,验证可以成功。
目前不支持向单个用户发送手动触发的通知。
6.4. 通知类型
以下是 Satellite 创建的通知:
- 审计摘要 : Satellite 服务器审计的所有活动摘要。
- 主机构建 :构建主机时发送的通知。
- 主机勘误公告 :为用户管理的主机提供适用和可安装的勘误概述。
- OpenSCAP 策略摘要 :OpenSCAP 策略报告的摘要及其结果。
- 提升勘误 :仅在内容视图提升后发送的通知。它包含适用于注册到提升的内容视图的主机适用的勘误摘要。这允许用户监控将哪些更新应用到哪些主机。
- Puppet 错误状态 :在主机报告与 Puppet 相关的错误后发送的通知。
- Puppet 摘要 : Puppet 报告摘要。
- 同步勘误 :仅在同步存储库后发送的通知。它包含同步引入的新勘误摘要。
6.5. 更改主机的电子邮件通知设置
Satellite 可将主机的事件通知发送到主机的注册所有者。您可以将 Satellite 配置为向单个用户或用户组发送电子邮件通知。当设置为用户组时,所有订阅了电子邮件类型的组成员都会收到一条消息。
要查看主机的通知状态,请导航到 Hosts > All Hosts,然后点击您要查看的主机。在主机详情页面中,点 Additional Information 选项卡,您可以查看电子邮件通知状态。
为主机接收电子邮件通知非常有用,但如果您期望经常收到频繁错误,例如,由于已知问题或错误,也会有好处。要更改主机的电子邮件通知设置,请完成以下步骤。
流程
- 在 Satellite Web UI 中,导航到 Hosts > All Hosts,然后选择带有您要更改的通知设置的主机。
- 选择主机的复选框,从 Select Action 列表中选择 Enable Notifications 或 Disable Notifications,具体取决于您想要的内容。
第 7 章 管理安全合规
安全合规性管理是定义安全策略的持续流程,审核是否符合这些策略,并解决不合规的实例。任何非合规性均根据机构的配置管理策略进行管理。安全策略范围范围从特定于主机范围到行业范围内,因此需要其定义的灵活性。
7.1. 安全内容自动化协议
Satellite 使用安全内容自动化协议(SCAP)来定义安全策略。例如,对于运行 Red Hat Enterprise Linux 的主机,安全策略可能会指定,root
帐户不允许通过 SSH 登录。通过 Satellite,您可以调度合规性审核并对所有受管主机报告。有关 SCAP 的详情,请查看 Red Hat Enterprise Linux 7 安全指南。
7.1.1. SCAP 内容
SCAP 内容是一个数据流格式,其中包含检查主机的配置和安全基准。清单在可扩展清单配置描述格式(XCCDF)中描述,以及开放漏洞和评估语言(OVAL)的漏洞。清单项目,也称为规则来表达系统项目所需的配置。例如,您可以指定没有人都可以使用 root
用户帐户通过 SSH 登录主机。规则可以分组到一个或多个配置集中,允许多个配置集共享规则。SCAP 内容由规则和配置集组成。
您可以创建 SCAP 内容或从供应商获取它。Red Hat Enterprise Linux 支持的配置集在 scap-security-guide 软件包中提供。创建 SCAP 内容超出了本指南的范围,但请参阅 Red Hat Enterprise Linux 7 安全指南 来了解如何下载、部署、修改和创建自己的内容。
Satellite 的 OpenSCAP 组件提供的默认 SCAP 内容取决于 Red Hat Enterprise Linux 的版本。在 Red Hat Enterprise Linux 7 中,安装了 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 的内容。
7.1.2. XCCDF Profile
XCCDF 配置集是评估主机或主机组的清单。创建配置文件以验证符合行业标准或自定义标准。
Satellite 提供的配置文件是从 OpenSCAP 项目 获取的。
7.1.2.1. 列出可用的 XCCDF 配置文件
在 Satellite Web UI 中,列出可用的 XCCD 配置集。
流程
- 在 Satellite Web UI 中,导航到 Hosts > SCAP content。
7.2. 安装 OpenSCAP 插件
您可以安装并启用 OpenSCAP 插件来生成 OpenSCAP 合规性报告。OpenSCAP 插件由主 OpenSCAP 插件本身、OpenSCAP 智能代理插件和 OpenSCAPhammer CLI 插件组成。
流程
在 Satellite 服务器上安装 OpenSCAP 插件:
# satellite-installer --enable-foreman-plugin-openscap --enable-foreman-proxy-plugin-openscap
在任何 Capsule 服务器上安装 OpenSCAP 插件:
# satellite-installer --enable-foreman-proxy-plugin-openscap
安装 OpenSCAP 插件 Puppet 模块:
# yum install puppet-foreman_scap_client
- 在 Satellite Web UI 中,导航到 Configure > Puppet Classes。
点 satellite.example.com 中的 Import environments。
您可以使用 Puppet 在 Satellite 服务器和 Capsule 上安装和配置 OpenSCAP 插件。
7.3. 配置 SCAP 内容
7.3.1. 导入 OpenSCAP Puppet 模块
如果不使用 Puppet 在主机上配置 OpenSCAP 审计,您可以跳过这个过程。
要使用 OpenSCAP 审计主机,您必须首先导入 Puppet 环境。Puppet 环境包含您必须分配给每个主机的 Puppet 类,才能部署 OpenSCAP 配置。
您必须将要审计的每个主机与 Satellite Web UI 中的 Puppet 环境关联。
流程
- 在 Satellite Web UI 中,导航到 Configure > Environments。
- 点 satellite.example.com中的 Import environments。
选中与您要审计的主机关联的 Puppet 环境复选框。
如果没有 Puppet 环境,请选中 production environment 复选框。默认情况下,OpenSCAP 所需的 Puppet 类位于生产环境中。
- 点 Update。
7.3.2. 加载默认 OpenSCAP 内容
在 CLI 中,使用以下方法之一加载默认的 OpenSCAP 内容。
流程
使用hammer 命令:
# hammer scap-content bulk-upload --type default
(已弃用)使用
foreman-rake
命令:# foreman-rake foreman_openscap:bulk_upload:default
7.3.3. 额外的 SCAP 内容
您可以将额外的 SCAP 内容上传到 Satellite 服务器中,可以是自己创建的内容还是在其他位置获取的内容。在将 SCAP 内容应用到策略中之前,必须将 SCAP 内容导入到 Satellite 服务器中。
例如,Red Hat Enterprise Linux 软件仓库中提供的 scap-security-guide
RPM 软件包包括支付卡行业数据安全标准(PCI-DSS)版本 3 的配置集。您可以将此内容上传到 Satellite 服务器中,即使它没有运行 Red Hat Enterprise Linux,因为内容不特定于操作系统版本。
7.3.3.1. 上传额外的 SCAP 内容
在 Satellite Web UI 中,上传额外的 SCAP 内容。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 流程。
流程
- 在 Satellite Web UI 中,导航到 Hosts > SCAP content,然后点 New SCAP Content。
在标题文本框中输入 标题。
示例:
RHEL 7.2 SCAP 内容
。- 单击 Choose file,导航到包含 SCAP 内容文件的位置,然后选择 Open。
- 点 Submit。
如果成功载入 SCAP 内容文件,会显示类似于 Successfully created RHEL 7.2 SCAP Contents
的消息,SCAP Contents 的列表包括新标题。
CLI 过程
要将 SCAP 内容上传到 Satellite 服务器中,请输入以下命令:
# hammer scap-content bulk-upload \ --directory /usr/share/xml/scap/ssg/content/ \ --location "_My_Location_" \ --organization "_My_Organization_" \ --type directory
/usr/share/xml/scap/ssg/content/
中的 SCAP 内容是scap-security-guide
软件包的一部分。
7.4. 管理合规策略
7.4.1. 合规策略
调度的审计(也称为 合规策略 )是一个调度的任务,用于检查指定的主机是否合规。扫描的调度由 Satellite 服务器指定,扫描是在主机上执行的。扫描完成后,以 XML 格式生成资产 报告文件(ARF),并上传到 Satellite 服务器。您可以在合规策略仪表板中看到扫描的结果。合规策略不会对扫描的主机进行任何更改。SCAP 内容包含多个相关规则的配置文件,但默认不包含策略。
7.4.2. 创建合规策略
借助 Satellite,您可以创建一个合规策略来扫描您的内容主机,以确保主机保持符合您的安全要求。
您可以使用 Puppet 或 Ansible 将合规策略部署到主机上。请注意,Puppet 默认每 30 分钟运行一次。如果您分配了新策略,下一个 Puppet 运行会将策略同步到主机。但是 Ansible 不执行调度的运行。若要添加新策略,您必须手动运行 Ansible 角色或使用远程执行。有关远程执行的更多信息 ,请参阅 管理主机 指南中的配置和设置远程作业。
先决条件
在开始之前,您必须决定是否使用 Puppet 或 Ansible 部署。
- 对于 Puppet 部署,请确保您要审计的每个主机都与 Puppet 环境关联。更多信息请参阅 第 7.3.1 节 “导入 OpenSCAP Puppet 模块”。
-
对于 Ansible 部署,请确保导入
foreman.foreman_scap_client
Ansible 角色。有关导入 Ansible 角色的更多信息,请参阅 将 Satellite 配置为使用 Ansible 中的 Satellite 中的 Ansible 入门。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Policies,然后选择您要手动、Ansible 或 Puppet 部署。
- 输入此策略的名称,描述(可选),然后单击 Next。
选择要应用的 SCAP 内容和 XCCDF 配置文件,然后单击 Next。
请注意,openSCAP 插件不会检测 SCAP 内容角色是否有内容,这意味着
Default XCCDF Profile
可能会返回空报告。指定应用策略时的调度时间,然后单击 Next。
从 Period 列表中选择 Weekly、Monthly 或 Custom。
- 如果您选择 Weekly,还要从 Weekday 列表中选择星期所需的天数。
- 如果您选择了 Monthly,还在 Day of month 字段中指定了日期。
如果您选择 Custom,请在 Cron line 字段中输入有效的 Cron 表达式。
与 Weekly 或 Monthly 选项相比,Custom 选项在策略调度中允许更大的灵活性。
- 选择要应用策略的位置,然后单击 Next。
- 选择要应用策略的组织,然后单击 Next。
- 选择要应用策略的主机组,然后单击 Submit。
当 Puppet 代理在属于所选主机组的主机上运行时,或者应用该策略的主机上时,将安装 OpenSCAP 客户端,并使用策略指定调度添加 Cron 作业。SCAP Content
选项卡提供 SCAP 内容文件的名称,该文件将分发到所有目标主机上的 /var/lib/openscap/content/
目录。
7.4.3. 查看合规策略
您可以预览规则,该规则将由特定的 OpenSCAP 内容和配置集组合应用。这在规划策略时非常有用。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Policies。
- 在所需策略的 Actions 列中,点 Show Guide 或从列表中选择它。
7.4.4. 编辑合规策略
在 Satellite Web UI 中,您可以编辑合规策略。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Policies。
- 从策略名称右侧的下拉列表中,选择 Edit。
- 编辑必要的属性。
- 点 Submit。
当其 Puppet 代理下次与 Satellite 服务器检查进行更新时,编辑的策略将应用到主机。默认情况下,这每 30 分钟发生一次。
7.4.5. 删除合规策略
在 Satellite Web UI 中,您可以删除现有的合规策略。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Policies。
- 从策略名称右侧的下拉列表中,选择 Delete。
- 在确认消息中点 OK。
7.5. 定制文件
定制文件允许自定义现有的 OpenSCAP 策略,而无需分叉或重写策略。您可在创建或更新策略时为策略分配一个 Tailoring 文件。
您可以使用 SCAP Workbench 创建 Tailoring 文件。有关使用 SCAP Workbench 工具的更多信息,请参阅自定义您的用例的 SCAP 安全指南。
7.5.1. 上传 Tailoring 文件
在 Satellite Web UI 中,您可以上传 Tailoring 文件。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Compliance - Tailoring Files,再点 New Tailoring File。
- 在 Name 文本框中输入名称。
- 单击 Choose File,导航到包含 SCAP DataStream Tailoring File 的位置,然后选择 Open。
- 点 Submit 上传所选的 Tailoring 文件。
7.5.2. 将 Tailoring 文件分配给策略
在 Satellite Web UI 中,为策略分配一个 Tailoring 文件。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Compliance - Policies。
- 现有合规政策,请单击 New Policy 或 New Compliance Policy。
- 在 Name 文本框中输入名称,然后单击 Next。
- 从下拉菜单中选择 Scap 内容。
- 从下拉菜单中选择 XCCDF Profile。
- 从下拉菜单中选择 Tailoring 文件。
从下拉菜单中选择 XCCDF 配置文件。
选择 XCCDF 配置文件非常重要,因为 Tailoring File 能够包含多个 XCCDF 配置文件。
- 点击 Next。
- 从下拉菜单中选择 Period。
- 从下拉菜单中选择 Weekday,然后单击 Next。
- 选择一个 Location 将其移到 Selected items 窗口,然后单击 Next。
- 选择一个 Organization 以将其移到 Selected items 窗口,然后单击 Next。
- 选择 Hostgroup 以将其移到 Selected items 窗口,然后单击 Submit。
7.6. 为 OpenSCAP 配置主机组
使用这个流程为主机组配置所有 OpenSCAP 要求。
先决条件
- 在 Capsule 上启用 OpenSCAP。如需更多信息,请参阅安装 Capsule 服务器 指南中的在外部 Capsule 上启用 OpenSCAP。
- 分配 OpenSCAP 胶囊。
- 分配包含 Puppet 类的 Puppet 环境,以部署 OpenSCAP 策略。
-
分配
foreman_scap_client
和foreman_scap_client::params
Puppet 类。 - 分配要添加的任何合规策略。
有关创建和管理主机的详情,请参考 管理主机指南。
流程
- 在 Satellite Web UI 中,导航到 Configure > Host Groups,再创建一个主机组,或者点您要为 OpenSCAP 报告配置主机组。
-
从 Puppet Environment 列表中,选择包含
foreman_scap_client
和foreman_scap_client::params
Puppet 类的 Puppet 环境。 - 从 OpenSCAP Capsule 列表中,选择您要使用的 OpenSCAP 的 Capsule。
-
单击 Puppet Classes 选项卡,再添加
foreman_scap_client
和foreman_scap_client::params
Puppet 类。 - 点 Submit 保存您的更改。
- 在 Satellite Web UI 中,导航到 Hosts > Policies。
- 选择您要分配给主机组的策略。
- 点 Host Groups 选项卡。
- 从 Host Groups 列表中,选择您要分配给此策略的主机组数量。
- 点 Submit 保存您的更改。
第 8 章 运行 OpenSCAP 扫描
流程
- 在 Satellite Web UI 中,导航到 Hosts > All Hosts。
- 选择一个或多个主机。
单击 Run OpenSCAP scan。
或者 ,调度远程作业 来扫描一个或多个主机。
8.1. 为 OpenSCAP 配置主机
使用这个流程配置主机的所有 OpenSCAP 要求。
先决条件
- 在 Capsule 上启用 OpenSCAP。如需更多信息,请参阅安装 Capsule 服务器 指南中的在外部 Capsule 上启用 OpenSCAP。
- 分配 OpenSCAP 胶囊。
- 分配包含 Puppet 类的 Puppet 环境,以部署 OpenSCAP 策略。
-
分配
foreman_scap_client
和foreman_scap_client::params
Puppet 类。 - 分配要添加的任何合规策略。
有关创建和管理主机的详情,请参考 管理主机指南。
流程
- 在 Satellite Web UI 中,导航到 Hosts > All Hosts,然后在您要为 OpenSCAP 报告配置的主机上选择 Edit。
-
从 Puppet Environment 列表中,选择包含
foreman_scap_client
和foreman_scap_client::params
Puppet 类的 Puppet 环境。 - 从 OpenSCAP Capsule 列表中,选择您要使用的 OpenSCAP 的 Capsule。
-
单击 Puppet Classes 选项卡,再添加
foreman_scap_client
和foreman_scap_client::params
Puppet 类。 - 要添加合规策略,请导航到以下位置之一:
- 在 Satellite Web UI 中,导航到 Hosts > All Hosts。
- 选择您要向其添加该策略的主机或主机。
- 单击 Select Action。
- 从列表中选择 Assign Compliance Policy。
- 在 Policy 窗口中,从可用策略列表中选择您想要的策略,然后点 Submit。
8.2. 监控合规性
Satellite 启用集中式合规性监控和管理。合规仪表板概述了主机的合规性,以及查看该策略范围内每个主机的详细信息。合规性报告提供了每个主机符合适用策略的详细分析。借助这些信息,您可以评估每个主机显示的风险,并管理使主机置于合规所需的资源。
使用 SCAP 监控合规时的常见目标包括:
- 验证策略合规性。
- 检测合规性的更改。
8.2.1. 合规策略仪表板
合规策略控制面板提供了主机合规性的统计信息,以及查看该策略范围内每个主机的详细信息。对于被评估为不合规的所有主机,Failed
统计为优先考虑合规性工作提供了有用的指标。检测到为 Never 审计
的主机也应该是优先级,因为它们的状态为 unknown。

8.2.2. 查看合规策略仪表板
使用 Satellite Web UI 验证策略是否合规。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Policies。
点所需的策略名称。仪表板提供以下信息:
- 演示主机与策略合规的高级视图的环图。
- 统计将主机的合规性与策略划分,格式为 tabular。
- 到每个主机的最新策略报告的链接。
8.2.3. 合规性电子邮件通知
Satellite 服务器向订阅 Openscap 策略概述电子邮件通知的所有用户发送 OpenSCAP Summary 电子邮件。有关订阅电子邮件通知的详情请参考 第 6.1 节 “配置电子邮件通知”。每次运行策略时,Satellite 会针对上一运行检查结果,请注意它们之间的任何更改。该电子邮件会根据每个订阅者请求的频率发送,提供每个策略摘要及其最新结果。
OpenSCAP Summary 电子邮件消息包含以下信息:
- 它涵盖的时间详情。
- 根据状态,所有主机的总和:改变、合规和不合规。
- 每个主机的 tabular 分类及其最新的策略的结果,包括传递、失败、更改或结果未知的规则总数。
8.2.4. 合规性报告
合规性报告是针对主机运行的策略的输出。每个报告包括每个策略通过或失败的规则总数。默认情况下,报告以降序列出。
在 Satellite Web UI 中,导航到 Hosts > Reports 以列出所有合规性报告。
合规性报告由以下区域组成:
- 简介
- 评估 Characteristics
- 合规性和评分
- 规则概述
评估 Characteristics
评估 Characteristics 区域提供有关特定配置集评估的详细信息,包括正在评估的主机、评估中使用的配置集以及评估开始和完成后。为便于参考,还会列出主机的 IPv4、IPv6 和 MAC 地址。
Name | 描述 | 示例 |
---|---|---|
目标机器 | 评估主机的完全限定域名(FQDN)。 |
|
基准 URL | 主机要评估的 SCAP 内容的 URL。 |
|
基准 ID | 主机要评估的基准的标识符。基准是一组配置集 |
|
配置文件 ID | 主机要针对的配置集的标识符。 |
|
开始于 | 评估开始的日期和时间,采用 ISO 8601 格式。 |
|
完成于 | 评估完成的日期和时间,采用 ISO 8601 格式。 |
|
执行者 | 在主机上执行评估的本地帐户名称。 |
|
合规性和评分
Compliance 和 Scoring 区域概述了主机是否符合配置文件规则,按严重性分类合规性故障,以及总体合规性分数作为百分比。如果没有检查规则,这会在 Rule results 字段中归类为 其他规则。
规则概述
Rule Overview 区域提供有关每个规则和合规性结果的详细信息,以及分级布局中显示的规则。
选择或清除复选框,以缩小合规性报告中包含的规则列表。例如,如果审查的重点是任何非合规,请清除 通过 和信息复选框。
要搜索所有规则,请在 Search 字段中输入条件。搜索在您输入时动态应用。Search 字段只接受单个纯文本搜索词,它作为区分大小写的搜索来应用。当您执行搜索时,仅列出描述与搜索条件匹配的规则。要删除搜索过滤器,请删除搜索条件。
如需了解每个结果的说明,请将光标悬停在 Result 列中显示的状态上。
8.2.5. 检查主机的合规性失败
使用 Satellite Web UI 确定主机对规则失败的原因。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Reports 以列出所有合规性报告。
- 点特定主机行中的 View Report 查看单个报告的详情。
点击规则的标题查看更多详情:
- 规则的描述,其中包含将主机置于合规的说明(如果可用)。
- 规则的比率。
- 在某些情况下,补救脚本。
在非生产环境中先测试任何推荐的补救操作或脚本,请勿实施它们。
8.2.6. 搜索合规性报告
使用 Compliance Reports 搜索字段过滤任何给定主机子集的可用报告列表。
流程
- 要应用过滤器,请在 Search 字段中输入搜索查询,然后点击 Search。搜索查询不区分大小写。
搜索用例
以下搜索查询会查找 5 条以上规则失败的所有合规性报告:
failed > 5
以下搜索查询查找包含
prod-
组字符的主机 YYYY 年 1 月 1 日之后创建的所有合规性报告:host ~ prod- AND date > "Jan 1, YYYY"
以下搜索查询从小时前查找
rhel7_audit
合规策略生成的所有报告:"1 hour ago" AND compliance_policy = date = "1 hour ago" AND compliance_policy = rhel7_audit
以下搜索查询会找到通过 XCCDF 规则的报告:
xccdf_rule_passed = xccdf_org.ssgproject.content_rule_firefox_preferences-auto-download_actions
以下搜索查询发现一个 XCCDF 规则失败的报告:
xccdf_rule_failed = xccdf_org.ssgproject.content_rule_firefox_preferences-auto-download_actions
以下搜索查询发现结果不是 fail 或 pass 的 XCCDF 规则:
xccdf_rule_othered = xccdf_org.ssgproject.content_rule_firefox_preferences-auto-download_actions
其它信息
- 要查看可用搜索参数列表,请点击空的 Search 字段。
-
您可以针对以下逻辑运算符创建复杂的查询:
and
,not
和has
。有关逻辑运算符的详情,请参考 第 5.7.4 节 “支持的 Granular Search 的 Operator”。 - 您不能在搜索查询中使用正则表达式。但是,您可以在单个搜索表达式中使用多个字段。有关所有可用搜索 operator 的更多信息,请参阅 第 5.7.4 节 “支持的 Granular Search 的 Operator”。
- 您可以对搜索添加书签来重复使用相同的搜索查询。更多信息请参阅 第 18.3.1 节 “创建书签”。
8.2.7. 删除合规性报告
您可以删除 Satellite 上的合规性报告。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Reports。
- 在 Compliance Reports 窗口中,确定您要删除的策略,并在策略名称右侧选择 Delete。
- 点击 确定。
8.2.8. 删除多个合规性报告
您可以同时删除多个合规策略。但是,在 Satellite Web UI 中,策略会被分页,因此您必须一次删除一个报告页面。如果要删除所有 OpenSCAP 报告,请使用 API 指南的 Deleting OpenSCAP Reports 部分中的脚本。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Reports。
- 在 Compliance Reports 窗口中,选择您要删除的合规性报告。
- 在列表右上角,选择 Delete report。
- 对您要删除的页面多次重复这些步骤。
8.3. OpenSCAP 支持的规格
OpenSCAP 支持以下规格:
标题 | 描述 | 版本 |
---|---|---|
XCCDF | 可扩展配置清单描述格式 | 1.2 |
OVAL | 开放漏洞和评估语言 | 5.11 |
- | 资产标识 | 1.1 |
ARF | 资产报告格式 | 1.1 |
CCE | 常见配置枚举 | 5.0 |
CPE | 常见平台枚举 | 2.3 |
CVE | 常见漏洞和暴露 | - |
CVSS | 常见漏洞评分系统 | 2.0 |
第 9 章 备份 Satellite 服务器和 Capsule 服务器
您可以备份 Satellite 部署,以确保在出现灾难时,Red Hat Satellite 部署的连续部署和相关数据。如果您的部署使用自定义配置,则必须考虑在规划备份和恢复策略时如何处理这些自定义配置。
+
使用备份工具创建的实例不应在生产环境中并行运行。恢复备份后,您必须停用任何旧实例。
要创建 Satellite 服务器或 Capsule 服务器的备份以及所有相关数据,请使用 satellite-maintain backup
命令。强烈建议您备份到独立系统上的独立存储设备。
在备份过程中,Satellite 服务不可用。因此,您必须确保其他任务不会被其他管理员调度。您可以使用 cron
调度备份。如需更多信息,请参阅 第 9.5 节 “Daily Incremental Backups Folly Full Backups 的示例”。
在离线或快照备份过程中,服务不活跃,Satellite 处于维护模式。防火墙拒绝来自端口 443 的外部流量,以确保没有触发任何修改。
备份包含 /root/ssl-build
目录中的敏感信息。例如,它可以包含主机名、ssh 密钥、请求文件和 SSL 证书。您必须加密或将备份移到安全位置,以便最大程度降低损坏或未授权访问主机的风险。
传统备份方法
您还可以使用传统的备份方法。如需更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南中的系统 备份和恢复。
如果您计划使用 satellite-maintain backup
命令创建备份,请不要停止 Satellite 服务。
在创建快照或常规备份时,您必须按如下方式停止所有服务:
# satellite-maintain service stop
在创建快照或传统备份后启动该服务:
# satellite-maintain service start
9.1. 估算备份的大小
完整备份创建 PostgreSQL 和 Pulp 数据库文件,以及 Satellite 配置文件的未压缩存档。创建存档后进行压缩,以减少 Satellite 服务不可用时的时间。
完全备份需要空间来存储以下数据:
- 解压缩的 Satellite 数据库和配置文件
- 压缩的 Satellite 数据库和配置文件
- 额外 20% 的估计空间,以确保可靠备份
流程
输入
du
命令,以估算包含 Satellite 数据库和配置文件的未压缩目录的大小:Red Hat Enterprise Linux 8:
# du -sh /var/lib/pgsql/data /var/lib/pulp 100G /var/lib/pgsql/data 100G /var/lib/pulp # du -csh /var/lib/qpidd /var/lib/tftpboot /etc /root/ssl-build \ /var/www/html/pub /opt/puppetlabs 886M /var/lib/qpidd 16M /var/lib/tftpboot 37M /etc 900K /root/ssl-build 100K /var/www/html/pub 2M /opt/puppetlabs 942M total
Red Hat Enterprise Linux 7:
# du -sh /var/opt/rh/rh-postgresql12/lib/pgsql/data /var/lib/pulp 100G /var/opt/rh/rh-postgresql12/lib/pgsql/data 100G /var/lib/pulp # du -csh /var/lib/qpidd /var/lib/tftpboot /etc /root/ssl-build \ /var/www/html/pub /opt/puppetlabs 886M /var/lib/qpidd 16M /var/lib/tftpboot 37M /etc 900K /root/ssl-build 100K /var/www/html/pub 2M /opt/puppetlabs 942M total
计算存储压缩数据所需的空间。
下表描述了备份中包含的所有数据项目的压缩率:
表 9.1. Red Hat Enterprise Linux 8 的备份数据压缩率
数据类型 目录 ratio 结果示例 PostgreSQL 数据库文件
/var/lib/pgsql/data
80 – 85%
100 GB → 20 GB
Pulp RPM 文件
/var/lib/pulp
(未压缩)
100 GB
配置文件
/var/lib/qpidd
/var/lib/tftpboot
/etc
/root/ssl-build
/var/www/html/pub
/opt/puppetlabs
85%
942 MB → 141 MB
表 9.2. Red Hat Enterprise Linux 7 的备份数据压缩率
数据类型 目录 ratio 结果示例 PostgreSQL 数据库文件
/var/opt/rh/rh-postgresql12/lib/pgsql/data
80 - 85%
100 GB → 20 GB
Pulp RPM 文件
/var/lib/pulp
(未压缩)
100 GB
配置文件
/var/lib/qpidd
/var/lib/tftpboot
/etc
/root/ssl-build
/var/www/html/pub
/opt/puppetlabs
85%
942 MB → 141 MB
在本例中,压缩的备份数据总为 120 GB。
要计算存储备份所需的可用空间量,计算压缩和未压缩备份数据估计值的总和,并添加额外的 20% 以确保可靠的备份。
这个示例需要 201 GB 加上 120 GB 压缩的备份数据,总计为 321 GB。使用 64 GB 的额外空间时,必须为备份位置分配 385 GB。
9.2. 对 Satellite 服务器或 Capsule 服务器执行完全备份
Red Hat Satellite 使用 satellite-maintain backup
命令进行备份。
备份 Satellite 服务器主要有两种方法:
- 离线备份
- 在线备份
快照备份
有关这些方法的更多信息,您可以查看每种备份方法的使用声明。
离线备份
# satellite-maintain backup offline --help
在线备份
# satellite-maintain backup online --help
快照备份
# satellite-maintain backup snapshot --help
创建目录
satellite-maintain backup
命令在您指定的备份目录中创建时间戳的子目录。satellite-maintain backup
命令不会覆盖备份,因此您必须在从备份或增量备份中恢复时选择正确的目录或子目录。satellite-maintain backup
命令根据需要停止并重启服务。
当您运行 satellite-maintain backup offline
命令时,会创建以下默认备份目录:
-
Satellite 上的
satellite-backup
-
foreman-proxy-backup
on Capsule
如果要设置自定义目录名称,请添加 --preserve-directory
选项并添加目录名称。然后,备份会保存在您在命令行中提供的目录中。如果使用 --preserve-directory
选项,如果备份失败,则不会删除数据。
请注意,如果您使用本地 PostgreSQL 数据库,则 postgres
用户需要对备份目录的写入权限。
远程数据库
您可以使用 satellite-maintain backup
命令备份远程数据库。
您可以使用在线和离线方法备份远程数据库,但是如果您使用离线方法(如快照),satellite-maintain backup
命令会执行数据库转储。
先决条件
- 确保您的备份位置有足够的可用磁盘空间来存储备份。更多信息请参阅 第 9.1 节 “估算备份的大小”。
请求其他 Satellite 服务器或 Capsule 服务器的用户保存更改,并警告他们在备份期间无法使用 Satellite 服务。确保没有与备份同时调度其他任务。
流程
在 Satellite 服务器中输入以下命令:
# satellite-maintain backup offline /var/satellite-backup
在 Capsule 服务器上输入以下命令:
# satellite-maintain backup offline /var/foreman-proxy-backup
9.3. 执行没有 Pulp 内容的备份
您可以执行离线备份,该备份不包括 Pulp 目录的内容。没有 Pulp 内容的备份可用于调试目的,仅用于在没有备份 Pulp 数据库的情况下提供对配置文件的访问。您无法从不包含 Pulp 内容的目录中恢复。
请求其他 Satellite 服务器或 Capsule 服务器的用户保存更改,并警告他们在备份期间无法使用 Satellite 服务。确保没有与备份同时调度其他任务。
先决条件
- 确保您的备份位置有足够的可用磁盘空间来存储备份。更多信息请参阅 第 9.1 节 “估算备份的大小”。
流程
要在没有 Pulp 内容的情况下执行离线备份,请输入以下命令:
# satellite-maintain backup offline --skip-pulp-content /var/backup_directory
9.4. 执行增量备份
使用这个流程对之前的备份执行任何更改的离线备份。
要执行增量备份,您必须执行完整备份作为参考来创建序列的第一个增量备份。保留最新的完整备份以及要从中恢复的完整增量备份序列。
请求其他 Satellite 服务器或 Capsule 服务器的用户保存更改,并警告他们在备份期间无法使用 Satellite 服务。确保没有与备份同时调度其他任务。
先决条件
- 确保您的备份位置有足够的可用磁盘空间来存储备份。更多信息请参阅 第 9.1 节 “估算备份的大小”。
流程
要执行完整的离线备份,请输入以下命令:
# satellite-maintain backup offline /var/backup_directory
要在备份目录中创建目录来存储第一个增量备份,请使用
--incremental
选项输入satellite-maintain backup
命令:# satellite-maintain backup offline --incremental /var/backup_directory/full_backup /var/backup_directory
要创建第二个增量备份,请使用
--incremental
选项输入satellite-maintain backup
命令,并包含到第一个增量备份的路径,以指示下一个递增的起点。这会在备份目录中为第二个增量备份创建一个目录:# satellite-maintain backup offline --incremental /var/backup_directory/first_incremental_backup /var/backup_directory
可选: 如果要指向不同版本的备份,并做一系列与备份版本作为起点的递增,您可以随时执行此操作。例如,如果要从全备份而不是第一个或第二个增量备份进行新的增量备份,则指向完整备份目录:
# satellite-maintain backup offline --incremental /var/backup_directory/full_backup /var/backup_directory
9.5. Daily Incremental Backups Folly Full Backups 的示例
以下脚本对星期日执行完整备份,后跟以下每个天数的增量备份。为执行增量备份的每天创建一个新的子目录。该脚本需要每日 cron 任务。
#!/bin/bash -e PATH=/sbin:/bin:/usr/sbin:/usr/bin DESTINATION=/var/backup_directory if [[ $(date +%w) == 0 ]]; then satellite-maintain backup offline --assumeyes $DESTINATION else LAST=$(ls -td -- $DESTINATION/*/ | head -n 1) satellite-maintain backup offline --assumeyes --incremental "$LAST" $DESTINATION fi exit 0
请注意,satellite-maintain backup
命令需要 /sbin
和 /usr/sbin
目录位于 PATH
中,并使用 --assumeyes
选项来跳过确认提示。
9.6. 执行在线备份
仅针对调试执行在线备份。
与在线备份相关的风险
在执行在线备份时,如果存在影响 Pulp 数据库的流程,备份过程的 Pulp 部分会重复,直到它不再被改变。由于 Pulp 数据库的备份是备份 Satellite 的最耗时的一部分,因此如果您进行一个更改 Pulp 数据库的更改,则备份过程将保持重启。
对于生产环境,请使用快照方法。更多信息请参阅 第 9.7 节 “执行快照备份”。如果要在生产环境中使用在线备份方法,请小心操作并确保备份过程中不会发生任何修改。
请求其他 Satellite 服务器或 Capsule 服务器的用户保存更改,并警告他们在备份期间无法使用 Satellite 服务。确保没有与备份同时调度其他任务。
先决条件
- 确保您的备份位置有足够的可用磁盘空间来存储备份。更多信息请参阅 第 9.1 节 “估算备份的大小”。
流程
要执行在线备份,请输入以下命令:
# satellite-maintain backup online /var/backup_directory
9.7. 执行快照备份
您可以对 Pulp 和 PostgreSQL 目录执行使用逻辑卷管理器(LVM)快照的快照备份。从 LVM 快照创建备份可降低备份不一致的风险。
快照备份方法比全离线备份更快,从而减少了 Satellite 停机时间。
要查看 usage 语句,请输入以下命令:
satellite-maintain backup snapshot -h
请求其他 Satellite 服务器或 Capsule 服务器用户保存更改,并警告他们在备份期间无法使用 Satellite 服务。确保没有与备份同时调度其他任务。
先决条件
-
系统将 LVM 用于您快照的目录:
/var/lib/pulp/
, 和/var/opt/rh/rh-postgresql12/lib/pgsql
。 - 相关卷组中的可用磁盘空间(VG)是快照大小的三倍。更精确地说,VG 必须有足够的空间供成员逻辑卷(LV)保留,以适应新快照。另外,其中一个 LV 必须有足够的可用空间用于备份目录。
- 目标备份目录位于与您快照的目录不同的 LV 中。
流程
要执行快照备份,请输入
satellite-maintain backup snapshot
命令:# satellite-maintain backup snapshot /var/backup_directory
satellite-maintain backup snapshot
命令在服务处于活跃状态时创建快照,并停止影响备份的所有服务。这使得维护窗口更短。成功快照后,所有服务都会被重启,并删除 LVM 快照。
9.8. 执行备份时的白名单和跳过步骤
使用 satellite-maintain backup
命令的备份会按一系列步骤进行。要跳过备份的一部分,请在命令中添加 --whitelist
选项,并添加您要省略的步骤标签。
流程
要显示可用步骤标签列表,请输入以下命令:
# satellite-maintain advanced procedure run -h
要跳过备份的步骤,请使用
--whitelist
选项输入satellite-maintain backup
命令。例如:# satellite-maintain backup online --whitelist backup-metadata -y /var/backup_directory
第 10 章 从备份中恢复 Satellite 服务器或 Capsule 服务器
您可以从作为 第 9 章 备份 Satellite 服务器和 Capsule 服务器 一部分创建的备份数据恢复 Satellite 服务器或 Capsule 服务器。这个过程概述了如何在生成备份的同一服务器上恢复备份,备份涵盖的所有数据都会在目标系统上删除。如果原始系统不可用,请置备具有相同配置设置和主机名的系统。
10.1. 从全备份中恢复
使用这个流程从全备份中恢复 Red Hat Satellite 或 Capsule 服务器。恢复过程完成后,所有进程都是在线的,所有数据库和系统配置在备份时恢复到状态。
先决条件
- 确保您要恢复到正确的实例。Red Hat Satellite 实例必须具有与原始系统相同的主机名、配置和相同次要版本(X.Y)。
- 确保有一个现有的目标目录。目标目录从存档中包含的配置文件读取。
确保有足够的空间将此数据存储在 Satellite 服务器或 Capsule 服务器的基本系统上,并在恢复包含备份中包含的
/etc/
和/var/
目录中所有数据后有足够的空间。要检查目录使用的空间,请输入以下命令:
# du -sh /var/backup_directory
要检查可用空间,请输入以下命令:
# df -h /var/backup_directory
添加
--total
选项,以从多个目录中获取结果总数。确定所有 SELinux 上下文都正确。输入以下命令恢复正确的 SELinux 上下文:
# restorecon -Rnv /
流程
选择安装 Satellite 或 Capsule 的适当方法:
- 要从连接的网络安装 Satellite 服务器,请遵循 在连接的网络环境中安装 Satellite 服务器。
- 要从断开连接的网络安装 Satellite 服务器,请遵循 在断开连接的网络环境中安装 Satellite 服务器。
- 要安装 Capsule 服务器,请按照 安装 Capsule 服务器 中的步骤操作。
-
将备份数据复制到 Satellite服务器的本地文件系统。使用
/var/
或/var/tmp/
。 运行恢复脚本。
# satellite-maintain restore /var/backup_directory
其中 backup_directory 是包含备份数据的时间戳的目录或子目录。
恢复过程可能需要很长时间才能完成,因为要复制的数据量。
其它资源
-
若要进行故障排除,您可以检查
/var/log/foreman/production.log
和/var/log/messages
。
10.2. 从增量备份中恢复
使用这个流程从增量备份中恢复 Satellite 或 Capsule 服务器。如果您有多个增量备份分支,请按按时间顺序选择您要恢复的 分支 的完整备份和每个增量备份。
恢复过程完成后,所有进程都是在线的,所有数据库和系统配置在备份时恢复到状态。
流程
- 使用 第 10.1 节 “从全备份中恢复” 中的说明恢复最后的完整备份。
-
从 Satellite 服务器的本地文件系统中删除完整备份数据,例如
/var/
或/var/tmp/
。 -
将增量备份数据复制到 Satellite服务器的本地文件系统,例如
/var/
或/var/tmp/
。 按照进行的顺序恢复增量备份:
# satellite-maintain restore /var/backup_directory/FIRST_INCREMENTAL # satellite-maintain restore /var/backup_directory/SECOND_INCREMENTAL
其它资源
-
若要进行故障排除,您可以检查
/var/log/foreman/production.log
和/var/log/messages
。
10.3. 使用虚拟机快照备份和恢复 Capsule 服务器
如果您的 Capsule 服务器是虚拟机,您可以从快照中恢复它。建议创建每周快照以便从中恢复。如果出现故障,您可以安装或配置新的 Capsule 服务器,然后从 Satellite 服务器同步数据库内容。
如果需要,部署新的 Capsule 服务器,确保主机名与之前相同,然后安装 Capsule 证书。您可能仍然在 Satellite 服务器上拥有它们,软件包名称以 -certs.tar 结尾,也可以选择创建新名称。按照在 Satellite Web UI 中安装 Capsule 服务器 中的步骤进行操作,该 Capsule 服务器已连接到 Satellite 服务器。然后使用流程 第 10.3.1 节 “同步外部 Capsule” 从 Satellite 同步。
10.3.1. 同步外部 Capsule
将外部 Capsule 与 Satellite 同步。
流程
- 要同步外部 Capsule,请在 Satellite Web UI 中选择相关的机构和位置,或者选择 任何机构 和 任何位置。
- 在 Satellite Web UI 中,导航到 Infrastructure > Capsules,再点击要同步的 Capsule 的名称。
- 在 Overview 选项卡中,选择 defer 。
第 11 章 重命名 Satellite 服务器或 Capsule 服务器
要重命名 Satellite 服务器或 Capsule 服务器,您必须使用 satellite-change-hostname
脚本。
如果重命名 Satellite 服务器,您必须重新注册所有 Satellite 客户端,并将每个 Capsule 服务器配置为指向新的 Satellite 主机名。如果使用自定义 SSL 证书,则必须使用新主机名重新生成它们。如果使用 virt-who,则必须使用新主机名更新 virt-who 配置文件。
如果重命名 Capsule 服务器,您必须重新注册所有 Capsule 客户端,并在 Satellite Web UI 中更新 Capsule 主机名。如果使用自定义 SSL 证书,则必须使用新主机名重新生成它们。
重命名过程会关闭被重命名的主机上的所有 Satellite 服务器服务。重命名完成后,所有服务都会重启。
11.1. 重命名 Satellite 服务器
Satellite 服务器的主机名供 Satellite 服务器组件、所有 Capsule 服务器和注册到它的主机用于通信。此流程可确保您更新对新主机名的所有引用。
如果使用外部身份验证,您必须在运行 satellite-change-hostname
脚本后重新配置 Satellite 服务器以进行外部身份验证。satellite-change-hostname
脚本会破坏 Satellite 服务器的外部身份验证。有关配置外部身份验证的详情请参考 第 15 章 配置外部身份验证。
如果使用 virt-who,您必须在运行 satellite-change-hostname
脚本后使用新主机名更新 virt-who 配置文件。如需更多信息,请参阅 在 Red Hat Satellite 中配置虚拟机订阅 中的 修改 virt-who 配置 。
先决条件
-
hostname
和hostname -f
命令都必须返回 Satellite 服务器的 FQDN,或者satellite-change-hostname
脚本将无法完成。如果hostname
命令返回 Satellite 服务器的短名称而不是 FQDN,请使用hostnamectl set-hostname old_fqdn
在尝试使用satellite-change-hostname
脚本前正确设置旧 FQDN。 - 在更改主机名前对 Satellite 服务器执行备份。如果重命名过程不成功,则必须从备份中恢复它。如需更多信息,请参阅 第 9 章 备份 Satellite 服务器和 Capsule 服务器。
- 可选:如果 Satellite 服务器安装了自定义 SSL 证书,则必须为主机的新名称获取新证书。如需更多信息,请参阅从 连接的网络 安装 Satellite 服务器 中的 使用自定义 SSL 证书配置 Satellite 服务器。
流程
在 Satellite 服务器上,选择运行
satellite-change-hostname
脚本的适当方法,提供新的主机名和 Satellite 凭证:如果您的 Satellite 服务器安装了默认自签名 SSL 证书,请输入以下命令:
# satellite-change-hostname new-satellite \ --username admin \ --password password
如果您的 Satellite 服务器安装了自定义 SSL 证书:
# satellite-change-hostname new-satellite \ --username admin \ --password password \ --custom-cert "/root/ownca/test.com/test.com.crt" \ --custom-key "/root/ownca/test.com/test.com.key"
- 可选:如果您已为新的 Satellite 服务器主机名创建了自定义 SSL 证书,请运行 Satellite 安装脚本来安装证书。有关安装自定义 SSL 证书的更多信息,请参阅 从 连接的网络安装 Satellite 服务器 中的 将自定义 SSL 证书部署到 Satellite 服务器。
- 重新注册所有 Satellite 主机。如需更多信息,请参阅 管理主机 中的 注册主机。
在所有 Capsule 服务器上,运行 Satellite 安装脚本以更新对新主机名的引用:
# satellite-installer \ --foreman-proxy-foreman-base-url https://new-satellite.example.com \ --foreman-proxy-trusted-hosts new-satellite.example.com \ --puppet-server-foreman-url https://new-satellite.example.com
在 Satellite 服务器上,列出所有 Capsule 服务器:
# hammer capsule list
在 Satellite 服务器上,同步每个 Capsule 服务器的内容:
# hammer capsule content synchronize \ --id capsule_id_number
11.2. 重命名 Capsule 服务器
Capsule 服务器的主机名被 Satellite 服务器组件引用,并且所有主机都注册到 Capsule 服务器。此流程可确保您更新对新主机名的所有引用。
-
hostname
和hostname -f
命令都必须返回 Capsule 服务器的 FQDN,或者satellite-change-hostname
脚本将无法完成。 -
如果
hostname
命令返回 Capsule 服务器的短名称而不是 FQDN,请使用hostnamectl set-hostname old_fqdn
在尝试使用satellite-change-hostname
脚本前正确设置旧的 FQDN。
先决条件
备份 Capsule 服务器。
satellite-change-hostname
脚本对 Capsule 服务器进行不可逆的更改。如果重命名过程不成功,则必须从备份中恢复它。在更改主机名前执行备份。如需更多信息,请参阅 第 9 章 备份 Satellite 服务器和 Capsule 服务器。
流程
在 Satellite 服务器上,为 Capsule 服务器生成一个新的证书存档文件。
如果您使用默认 SSL 证书,请输入以下命令:
# capsule-certs-generate \ --foreman-proxy-fqdn new-capsule.example.com \ --certs-tar /root/new-capsule.example.com-certs.tar
确保输入到
.tar
文件的完整路径。- 如果您使用自定义 SSL 证书,请为 Capsule 服务器创建新的 SSL 证书。如需更多信息,请参阅 安装 Capsule 服务器 中的 使用自定义 SSL 证书配置 Capsule 服务器。
在 Satellite 服务器上,将证书存档文件复制到 Capsule 服务器,并在提示时提供
root
用户的密码。在本例中,存档文件被复制到root
用户的主目录,但您可能希望在其他位置复制它。# scp /root/new-capsule.example.com-certs.tar root@capsule.example.com:
在 Capsule 服务器上,运行
satellite-change-hostname
脚本,并提供主机的新名称、Satellite 凭据和证书存档文件名。# satellite-change-hostname new-capsule.example.com --username admin \ --password password \ --certs-tar /root/new-capsule.example.com-certs.tar
确保输入到
.tar
文件的完整路径。-
可选:如果您在 Capsule 服务器上为 Capsule 服务器创建了自定义证书,以部署证书,请输入
capsule-certs-generate
命令返回的satellite-installer
命令。如需更多信息,请参阅 安装 Capsule 服务器 中的 向 Capsule 服务器部署自定义 SSL 证书。 在所有 Capsule 客户端中,输入以下命令来重新安装 bootstrap RPM,重新注册客户端并刷新其订阅。
您可以使用远程执行功能来执行此步骤。如需更多信息,请参阅 管理主机指南中的 配置和设置远程作业。
# yum remove -y katello-ca-consumer* # rpm -Uvh http://new-capsule.example.com/pub/katello-ca-consumer-latest.noarch.rpm # subscription-manager register --org="Default_Organization" \ --environment="Library" \ --force # subscription-manager refresh
- 在 Satellite Web UI 中,导航到 Infrastructure > Capsules。
- 在列表中找到 Capsule Server,然后单击它右侧的 Edit。
- 编辑 Name 和 URL 字段,以匹配 Capsule 服务器的新主机名,然后单击 Submit。
- 在您的 DNS 服务器上,为 Capsule 服务器的新主机名添加记录,并删除之前主机名的记录。
第 12 章 维护 Satellite 服务器
本章介绍了如何维护 Satellite 服务器,包括有关如何使用审计记录的信息、如何清理未使用的任务以及如何从完整磁盘恢复 Pulp。
12.1. 删除审计记录
审计记录在 Satellite 中自动创建。您可以使用 foreman-rake audits:expire
命令随时删除审计。您还可以使用 cron 作业在您想要的设置间隔调度审计记录删除。
默认情况下,使用 foreman-rake audits:expire
命令删除早于 90 天的审计记录。您可以通过添加 days 选项并添加天数来指定保留审计记录的天数。
例如,如果要删除 7 天旧的审计记录,请输入以下命令:
# foreman-rake audits:expire days=7
12.2. 公告审计记录
您可以使用 foreman-rake audits:anonymize
命令删除任何用户帐户或 IP 信息,同时在数据库中维护审计记录。您还可以使用 cron 作业以您想要的设置间隔调度审计记录。
默认情况下,使用 foreman-rake audits:anonymize
命令匿名审计记录,这些记录超过 90 天。您可以通过添加 days 选项并添加天数来指定保留审计记录的天数。
例如,如果要匿名化 7 天旧的审计记录,请输入以下命令:
# foreman-rake audits:anonymize days=7
12.3. 删除报告记录
报告记录在 Satellite 中自动创建。您可以使用 foreman-rake report:expire
命令随时删除报告。您还可以使用 cron 作业在您想要的设置间隔调度报告记录删除。
默认情况下,使用 foreman-rake report:expire
命令删除存在时间超过 90 天的报告记录。您可以通过添加 days 选项并添加天数来指定保留报告记录的天数。
例如,如果要删除 7 天旧的报告记录,请输入以下命令:
# foreman-rake reports:expire days=7
12.4. 配置清理未使用的任务功能
Satellite 执行常规清理,以减少数据库中的磁盘空间,并限制磁盘增长率。因此,Satellite 备份可以更快地完成,整体性能更高。
默认情况下,Satellite 执行 cron 任务,每天在 19:45 处清理任务。Satellite 在清理过程中删除以下任务:
- 成功运行且超过 30 天的任务
- 所有超过一年的任务
您可以使用以下选项配置清理未使用的任务功能:
要配置 Satellite 运行 cron 作业的时间,请将
--foreman-plugin-tasks-cron-line
参数设置为您希望采用 cron 格式的时间。例如,要调度 cron 任务以每天 15:00 运行,请输入以下命令:# satellite-installer --foreman-plugin-tasks-cron-line "00 15 * * *"
-
要配置 Satellite 删除任务的时间,请编辑
/etc/foreman/plugins/foreman-tasks.yaml
文件中的:rules:
部分。 要在 Satellite 上禁用常规任务清理,请输入以下命令:
# satellite-installer --foreman-plugin-tasks-automatic-cleanup false
要在 Satellite 上重新启用常规任务清理,请输入以下命令:
# satellite-installer --foreman-plugin-tasks-automatic-cleanup true
12.5. 删除任务记录
任务记录在 Satellite 中自动创建。您可以使用 foreman-rake foreman_tasks:cleanup
命令随时删除任务。您还可以使用 cron 作业来调度任务记录删除,以您想要的设定间隔删除。
例如,如果要从成功存储库同步中删除任务记录,请输入以下命令:
# foreman-rake foreman_tasks:cleanup TASK_SEARCH='label = Actions::Katello::Repository::Sync' STATES='stopped'
12.6. 按 ID 删除任务
您可以按 ID 删除任务,例如,如果您错误地提交机密数据。
流程
使用 SSH 连接到您的 Satellite 服务器:
# ssh root@satellite.example.com
可选:查看任务:
# hammer task info --id My_Task_ID
删除任务:
# foreman-rake foreman_tasks:cleanup TASK_SEARCH="id=My_Task_ID"
可选:确保已从 Satellite 服务器中删除了任务:
# hammer task info --id My_Task_ID
请注意,由于任务已被删除,这个命令会返回一个非零退出代码。
12.7. 从完整磁盘中恢复
以下流程描述了如何解决逻辑卷(LV),当逻辑卷(LV)没有可用空间时。
流程
- 让运行 Pulp 任务完成,但不会触发任何新的任务,因为它们可能会因为完整磁盘而失败。
确保具有
/var/lib/pulp
目录的 LV 有足够的可用空间。以下是实现这一目的的一些方法:删除孤立的内容:
# foreman-rake katello:delete_orphaned_content RAILS_ENV=production
这是每周运行的,因此不会释放大量空间。
- 将下载策略从 Immediate 更改为 On Demand,以便尽可能多的软件仓库,并删除已下载的软件包。具体步骤请查看红帽知识库解决方案 如何将 Satellite 上的存储库同步策略从"Immediate"改为红帽客户门户网站上的"On-Demand "。
使用
/var/lib/pulp
目录在 LV 上增大文件系统。如需更多信息,请参阅 Red Hat Enterprise Linux 7 逻辑卷管理器管理 指南中的在 逻辑卷上获取文件系统。注意如果您使用一个未编译的文件系统(如 ext3、ext4 或 xfs),您可能需要卸载文件系统使其不使用。在这种情况下,请完成以下步骤:
停止 Satellite 服务:
# satellite-maintain service stop
- 在 LV 上增大文件系统。
启动 Satellite 服务:
# satellite-maintain service start
- 如果某些 Pulp 任务因为完整磁盘而失败,请再次运行它们。
12.8. 在 Satellite 服务器或 Capsule 服务器的基本操作系统中管理软件包
要在 Satellite 服务器或 Capsule 服务器基础操作系统上安装和更新软件包,您必须输入 satellite-maintain packages
命令。Satellite 可防止用户使用 yum
安装和更新软件包,因为 yum
也可能会更新与 Satellite 服务器或 Capsule 服务器相关的软件包,并导致系统不一致。
satellite-maintain packages
命令会在运行它的操作系统中重启一些服务,因为它在安装软件包后运行 satellite-installer
命令。
流程
要在 Satellite 服务器或 Capsule 服务器上安装软件包,请输入以下命令:
# satellite-maintain packages install package_1 package_2
要更新 Satellite 服务器或 Capsule 服务器上的特定软件包,请输入以下命令:
# satellite-maintain packages update package_1 package_2
要更新 Satellite 服务器或 Capsule 服务器上的所有软件包,请输入以下命令:
# satellite-maintain packages update
使用 yum 检查软件包更新
如果要使用 yum
检查更新,请输入命令来手动安装和更新软件包,您可以使用 yum
检查更新:
# satellite-maintain packages unlock # yum check update # satellite-maintain packages lock
单独更新软件包可能会导致 Satellite 服务器或 Capsule 服务器中的软件包不一致。有关在 Satellite 服务器中更新软件包的更多信息,请参阅更新 Satellite 服务器。
为 Satellite 服务器或 Capsule 服务器软件包管理启用 yum
如果要直接使用 yum
安装和更新软件包,并自行控制系统的稳定性,请输入以下命令:
# satellite-maintain packages unlock
将软件包管理恢复到默认设置
如果要恢复默认设置并启用 Satellite 服务器或 Capsule 服务器,以防止用户使用 yum
安装和更新软件包并确保系统的稳定性,请输入以下命令:
# satellite-maintain packages lock
12.9. 重新声明 PostgreSQL 空间
PostgreSQL 数据库可以使用大量磁盘空间,特别是在大量负载的部署中。使用这个流程在 Satellite 上回收此磁盘空间。
流程
停止除
postgresql
服务外的所有服务:# satellite-maintain service stop --exclude postgresql
切换到
postgres
用户并回收数据库中的空间:# su - postgres -c 'vacuumdb --full --all'
vacuum 完成后启动其他服务:
# satellite-maintain service start
12.10. 从 Demand 仓库回收空间
如果您根据需要 将下载策略设置为 按需,则 Satellite 仅在客户端请求它们时下载软件包。您可以清理这些软件包以回收空间。
对于单个软件仓库
- 在 Satellite Web UI 中,导航到 Content > Products。
- 选择一个产品。
- 在 Repositories 选项卡上,点存储库名称。
- 从 Select Actions 列表中,选择 Reclaim Space。
对于多个软件仓库
- 在 Satellite Web UI 中,导航到 Content > Products。
- 选择产品名称。
- 在 Repositories 选项卡中,选中存储库的复选框。
- 点右上角的 Reclaim Space。
对于 Capsule
- 在 Satellite Web UI 中,导航到 Infrastructure > Capsules。
- 选择 Capsule 服务器。
- 点 Reclaim space。
第 13 章 续订自定义 SSL 证书
本章介绍了如何在 Satellite 服务器和 Capsule 服务器上更新自定义 SSL 证书。
13.1. 在 Satellite 服务器上续订自定义 SSL 证书
使用这个流程为 Satellite 服务器更新自定义 SSL 证书。
前提条件
-
您必须创建新的证书签名请求(CSR),并将其发送到证书颁发机构以签署证书。创建新 CSR 前 ,请参阅 配置 Satellite 服务器 指南,因为服务器证书必须具有 X.509 v3
密钥使用
和扩展密钥用法
扩展。在返回中,您将收到 Satellite 服务器证书和 CA 捆绑包。
流程
在 Satellite 服务器上部署续订的自定义证书前,请验证自定义 SSL 输入文件。请注意,对于
katello-certs-check
命令正常工作,证书中的通用名称(CN)必须与 Satellite 服务器的 FQDN 匹配:# katello-certs-check -t satellite \ -b /root/satellite_cert/ca_cert_bundle.pem \ -c /root/satellite_cert/satellite_cert.pem \ -k /root/satellite_cert/satellite_cert_key.pem
如果命令成功,它会返回以下
satellite-installer
命令。您可以使用此命令将更新的 CA 证书部署到 Satellite 服务器:# satellite-installer --scenario satellite \ --certs-server-cert "/root/satellite_cert/satellite_cert.pem" \ --certs-server-key "/root/satellite_cert/satellite_key.pem" \ --certs-server-ca-cert "/root/satellite_cert/ca_cert_bundle.pem" \ --certs-update-server \ --certs-update-server-ca
部署证书后不要删除证书文件。升级 Satellite 服务器时需要它们。
如果因为不同的证书签名请求授权机构生成了新的消费者软件包 katello-ca-consumer-latest.noarch.rpm
,则必须更新注册到 Satellite 服务器的所有客户端。
验证
- 从本地机器访问 Satellite Web UI。例如: https://satellite.example.com。
- 在您的浏览器中,查看证书详情以验证部署的证书。
13.2. 在 Capsule 服务器上续订自定义 SSL 证书
使用这个流程为 Capsule 服务器更新自定义 SSL 证书。satellite-installer
命令返回 Capsule -certs-generate
命令对于每个胶囊服务器都是唯一的。您不能在多个胶囊服务器上使用相同的命令。
前提条件
-
您必须创建新的证书签名请求,并将其发送到证书颁发机构以签署证书。创建新 CSR 前 ,请参阅 配置 Satellite 服务器 指南,因为 Satellite 服务器证书必须具有带有所需值的 X.509 v3
密钥使用
和扩展密钥使用扩展。在返回中,您将收到 Capsule 服务器证书和 CA 捆绑包。
流程
在 Satellite 服务器上,验证自定义 SSL 证书输入文件:
# katello-certs-check -t capsule \ -b /root/capsule_cert/ca_cert_bundle.pem \ -c /root/capsule_cert/capsule_cert.pem \ -k /root/capsule_cert/capsule_cert_key.pem
在 Satellite 服务器上,为您的 Capsule 服务器生成证书存档文件:
capsule-certs-generate --foreman-proxy-fqdn "capsule.example.com" \ --certs-tar "/root/My_Certificates/capsule.example.com-certs.tar" \ --server-cert "/root/My_Certificates/capsule_cert.pem" \ --server-key "/root/My_Certificates/capsule_cert_key.pem" \ --server-ca-cert "/root/My_Certificates/ca_cert_bundle.pem" \ --certs-update-server
在 Satellite 服务器上,将证书归档文件复制到您的 Capsule 服务器中:
# scp /root/My_Certificates/capsule.example.com-certs.tar user@capsule.example.com:
如果需要,您可以将复制的文件移到适用路径中。
-
保留 Capsule-
certs-generate 命令返回的
命令的副本,以将证书部署到您的胶囊服务器。satellite-
installer 使用 Capsule-
certs-generate 命令返回的
Capsule 服务器上:satellite-installer
命令将证书部署到# satellite-installer --scenario capsule \ --foreman-proxy-register-in-foreman "true" \ --foreman-proxy-foreman-base-url "https://satellite.example.com" \ --certs-tar-file "/root/My_Certificates/capsule.example.com-certs.tar" \ --certs-update-server
部署证书后,不要删除 Capsule 服务器上的证书存档文件。升级 Capsule 服务器时需要它们。
如果因为不同的证书签名请求授权而生成了新的消费者软件包 katello-ca-consumer-latest.noarch.rpm
,则必须更新注册到 Capsule 服务器的所有客户端。
第 14 章 日志记录和报告问题
本章介绍了如何在 Satellite 中记录和报告问题,包括相关日志文件的信息、如何启用调试日志、创建支持问题单并附加相关的日志 tar 文件,以及如何在 Satellite Web UI 中访问支持问题单。
您可以使用本章中描述的日志文件和其他信息进行自己的故障排除,或者您可以捕获这些文件以及诊断和配置信息,以便在需要进一步的帮助时向红帽支持发送。
有关 Satellite 日志记录设置的更多信息,请使用 satellite-installer
和 --full-help
选项:
# satellite-installer --full-help | grep logging
14.1. 启用调试日志
调试日志记录提供更详细的日志信息,并有助于对 Satellite 及其组件可能出现的问题进行故障排除。在 Satellite CLI 中,启用调试日志来记录 Satellite 的详细信息。
流程
要启用调试日志,请输入以下命令:
# satellite-installer --foreman-logging-level debug
完成调试后,将日志级别重置为默认值:
# satellite-installer --reset-foreman-logging-level
14.2. 通过调试将日志记录级别增加到帮助
默认情况下,Satellite 附带 :INFO
级别日志记录。您可以增加或减少 Satellite 上的日志级别。
在所有组件中启用 debug 级别日志记录
# hammer admin logging --all --level-debug # satellite-maintain service restart
为特定组件启用 debug 级别日志记录
# hammer admin logging --components "Component" --level-debug
将 debug 级别日志记录恢复到 INFO
# hammer admin logging --all --level-production # satellite-maintain service restart
列出所有组件和更改的配置文件
# hammer admin logging --list -----------|-------------------------------------|------------------------------------- COMPONENT | AUTO-DETECTED BY EXISTENCE OF | DESTINATIONS -----------|-------------------------------------|------------------------------------- dhcpd | /etc/dhcp/dhcpd.conf | syslog /var/log/dhcpd-debug.log postgresql | /var/lib/pgsql/data/postgresql.conf | syslog /var/lib/pgsql/data/pg_log/ proxy | /etc/foreman-proxy/settings.yml | /var/log/foreman-proxy/proxy.log qpidd | /etc/qpid/qpidd.conf | syslog rails | /etc/foreman/settings.yaml | /var/log/foreman/production.log tomcat | /etc/candlepin/candlepin.conf | /var/log/candlepin/ /var/log/tomcat/ virt-who | /etc/sysconfig/virt-who | syslog -----------|-------------------------------------|-------------------------------------
14.2.1. 为hammer 增加日志记录级别
您可以在 ~/.hammer/log/hammer.log
中找到hammer 的日志。编辑 /etc/hammer/cli_config.yml
并设置 :log_level:
:
:log_level: 'debug'
14.2.2. 在 Capsule 上增加日志记录级别
您可以在 /var/log/foreman-proxy/proxy.log
中找到 Capsule 的日志。取消注释 /etc/foreman-proxy/settings.yml
中的 DEBUG
行:
:log_level: DEBUG
确保稍后重启 foreman-proxy
服务:
# systemctl restart foreman-proxy
运行安装程序将恢复此更改。
14.2.3. 为 Candlepin 增加日志记录级别
您可以在 /var/log/candlepin/candlepin.log
中找到 Candlepin 的日志。错误也会记录到单独的文件中,以便更轻松地调试 /var/log/candlepin/error.log
。
扩展 /etc/candlepin/candlepin.conf
:
log4j.logger.org.candlepin=DEBUG
确保稍后重启 tomcat
服务:
# systemctl restart tomcat
如果 candlepin 日志文件太详细,您可以降低默认的 debug 级别:
log4j.logger.org.candlepin.resource.ConsumerResource=WARN log4j.logger.org.candlepin.resource.HypervisorResource=WARN
14.2.4. 在 Satellite 上增加日志记录级别
您可以在 /var/log/foreman/production.log
中找到 Satellite 的日志。
Satellite 将 Apache 的日志存储在:
-
/var/log/httpd/foreman_error.log
-
/var/log/httpd/foreman_access.log
-
/var/log/httpd/foreman_ssl_error.log
-
/var/log/httpd/foreman_ssl_access.log
流程
在
/etc/foreman/settings.yaml
中设置日志级别::logging: :production: :type: file :layout: pattern :level: debug
在
/etc/foreman/settings.yaml
中启用所选日志记录器::loggers: :ldap: :enabled: true :permissions: :enabled: true :sql: :enabled: true
请注意,若要查看某些区域中的日志记录,必须设置调试日志。
重启 Satellite 服务:
# satellite-maintain service restart
您可以在 Foreman::Logging.add_loggers
命令中的 /usr/share/foreman/config/application.rb
中找到其默认值的日志记录器的完整列表。
14.2.5. 为qpid 分配路由器增加日志记录级别
qpid 日志到 syslog,可以在 /var/log/messages
或 journalctl
中查看。在 /etc/qpid-dispatch/qdrouterd.conf
中启用调试日志记录:
enable: debug+
确保稍后重启qpid 分配路由器:
# systemctl restart qdrouterd
运行安装程序将恢复此更改。
14.2.6. 为 Qpid Broker 提高日志记录级别
qpid 日志到 syslog,可以在 /var/log/messages
或 journalctl
中查看。在 /etc/qpid/qpidd.conf
中设置日志级别:
log-enable=debug+
确保稍后重启qpid Broker:
# systemctl restart qpidd
运行安装程序将恢复此更改。
14.2.7. 为 Redis 增加日志记录级别
您可以在 /var/log/redis/redis.log
中找到 Redis 的日志。在 /etc/opt/rh/rh-redis5/redis.conf
中设置日志级别:
loglevel debug
确保稍后重启 Redis 服务:
# systemctl restart rh-redis5-redis
14.2.8. 为 Postgres 增加日志记录级别
您可以在 /var/opt/rh/rh-postgresql12/lib/pgsql/data/log/
中找到 Postgres 的日志。取消注释 /var/opt/rh/rh-postgresql12/lib/pgsql/data/postgresql.conf
中的 log_statement
:
log_statement = 'all'
确保稍后重启 Satellite 服务:
# satellite-maintain service restart
根据 Satellite 安装的大小,这可能导致磁盘空间非常快速地填满。仅在需要时才打开。
有关更多调试日志设置,请参阅 Postgresql 文档。
14.2.9. 为 Satellite 安装程序增加日志记录级别
您可以在 /var/log/foreman-installer/
中找到日志文件。在安装过程中增加 Satellite 安装程序的日志级别:
# satellite-installer --verbose-log-level debug
14.2.10. 为 Pulp 增加日志记录级别
默认情况下,PulpS 日志到 syslog,并可以在 /var/log/messages
或 journalctl
中查看。将以下配置添加到 /etc/pulp/settings.py
文件中:
LOGGING = {"dynaconf_merge": True, "loggers": {'': {'handlers': ['console'], 'level': 'DEBUG'}}}
确保稍后重启 Pulp 服务:
# systemctl restart \ pulpcore-api \ pulpcore-content \ pulpcore-resource-manager \ pulpcore-worker@1 \ pulpcore-worker@2 \ rh-redis5-redis
14.2.11. 为 Puppet 代理增加日志记录级别
您可以在 Satellite 服务器上提高 Puppet 代理的日志级别。
流程
在
/etc/puppetlabs/puppet/puppet.conf
文件中的[agent]
块中添加以下行:[agent] log_level = debug
您可以在 /var/log/puppetlabs/puppet/
中找到日志
14.2.12. 为 Puppet 服务器增加日志记录级别
您可以提高 Satellite 服务器上 Puppet 服务器的日志记录级别。
前提条件
- Puppet 必须在您的 Satellite 中启用。如需更多信息,请参阅在 Red Hat Satellite 中使用 Puppet 集成管理配置中的启用 Puppet 与 Satellite 集成。
流程
在
/etc/puppetlabs/puppet/puppet.conf
文件中的[master]
块中添加以下行:[master] log_level = debug
重启 Puppet 服务器:
# satellite-maintain service restart --only puppetserver
您可以在 /var/log/puppetlabs/puppetserver/
中找到日志。
14.3. 检索服务的状态
流程
- 在 Satellite Web UI 中,导航到 Administer > About。
- 在 Smart Proxies 选项卡上,您可以查看所有 Capsule 的状态。
- 在 Compute Resources 选项卡上,您可以查看附加的计算资源提供程序的状态。
- 在 Backend System Status 表中,您可以查看所有后端服务的状态。
CLI 过程
运行
hammer ping
从数据库和 Satellite 服务中获取信息:# hammer ping
使用
satellite-maintain
检查 systemd 中运行的服务的状态:# satellite-maintain service status
使用
satellite-maintain
执行健康检查:$ satellite-maintain health check
14.4. 重启服务
Satellite 使用一组后端服务来执行任务。您遇到了 Satellite 的问题,检查 Satellite 服务的状态。
流程
使用
satellite-maintain
重启 Satellite 服务:# satellite-maintain service restart
运行 foreman-maintain --help
以了解更多信息。
14.5. 启用单个日志ger
您可以为选择的日志启用单个日志记录器。Satellite 使用以下日志记录器:
app
- 记录 Web 请求以及所有常规应用消息。默认值: true。
audit
- 记录其他事实统计、添加、更新和删除事实数。默认值: true。
background
- 从后台处理组件记录信息。
blob
用于审计目的的渲染模板的日志内容。
重要blob
日志记录器可能包含敏感数据。dynflow
- 从 Dynflow 进程记录信息。
ldap
- 记录高级别 LDAP 查询和 LDAP 操作。默认值:false。
notifications
- 从通知组件记录信息。
权限
- 加载页面时,将查询记录到用户角色、过滤器和权限。默认值:false。
sql
- 通过 Rails ActiveRecord 记录 SQL 查询。默认值:false。
Telemetry
- 记录来自遥测的调试信息。
templates
- 记录模板呈现器组件的信息。
流程
启用您想要的独立日志记录器。例如,要启用
sql
和ldap
日志记录器,请输入以下命令:# satellite-installer \ --foreman-loggers ldap:true \ --foreman-loggers sql:true
可选: 要将日志记录器重置为默认值,请输入以下命令:
# satellite-installer --reset-foreman-loggers
14.6. 配置日志记录到日志或基于文件的日志记录
Satellite 默认使用基于文件的日志记录。您可以使用 satellite-installer
命令来重新配置日志记录。
使用日志配置日志的步骤
输入以下
satellite-installer
命令,将日志记录配置为journald
服务:# satellite-installer \ --foreman-logging-layout pattern \ --foreman-logging-type journald \ --foreman-proxy-log JOURNAL
可选: 要检查日志消息,请使用
journalctl
实用程序。例如:-
journalctl --unit foreman
和journalctl --unit foreman-proxy
显示foreman
和foreman-proxy
单元的消息 -
journalctl REQUEST=request_ID
显示指定请求的消息
-
配置基于文件的日志记录的步骤
输入以下
satellite-installer
命令来配置基于文件的日志记录:# satellite-installer \ --reset-foreman-logging-layout \ --reset-foreman-logging-type \ --reset-foreman-proxy-log
可选: 要检查日志消息,请查看这些文件:
-
/var/log/foreman/production.log
-
/var/log/foreman-proxy.log
-
其他资源
有关 Journal 的更多信息,请参阅 Red Hat Enterprise Linux 8 配置基本系统设置指南中的 使用命令行查看日志。
14.7. Satellite 提供的日志文件目录
Red Hat Satellite 以通知和日志文件的形式提供系统信息。
表 14.1. 用于报告和故障排除的日志文件目录
日志文件目录 | 日志文件内容的描述 |
---|---|
| 订阅管理 |
| 安装程序 |
| Foreman 维护 |
| Foreman 代理 |
| foreman |
| Apache HTTP 服务器 |
| 各种其他日志消息 |
| 配置管理 |
| 订阅管理 |
| Candlepin webservice 日志 |
您还可以使用 foreman-tail
命令遵循与 Satellite 相关的许多日志文件。您可以运行 foreman-tail -l
来列出它遵循的进程和服务。
14.8. 收集日志信息的工具
您可以从日志文件收集信息,以对 Satellite 进行故障排除。
- sosreport
-
sosreport
命令从 Linux 系统收集配置和诊断信息,如运行内核版本、载入的模块、运行服务以及系统和服务配置文件。此输出存储在位于/var/tmp/sosreport-XXX-20171002230919.tar.xz的 tar
文件中。如需更多信息,请运行sosreport --help
或查看 sosreport 是什么以及如何创建?
集合过程会在收集信息时删除安全信息,如密码、令牌和密钥。但是,tar 文件仍然可以包含有关 Satellite 服务器的敏感信息。红帽建议您将此信息直接发送到预期的接收者,而不是向公共目标发送。
14.9. 系统日志元数据
下表列出了 journald
服务在 Satellite 中使用的元数据。您可以使用此元数据来过滤查询。
表 14.2. 系统日志元数据
Name | 描述 |
---|---|
AUDIT_ACTION | 执行的审计操作 示例:创建、更新或删除 |
AUDIT_TYPE | Audit 资源类型 示例:Host、Subnet 或 ContentView |
AUDIT_ID | 审计资源数据库 ID 作为数字 |
AUDIT_ATTRIBUTE | audit 资源字段或更新的数据库列 |
AUDIT_FIELD_OLD | 更新操作的旧审计值 |
AUDIT_FIELD_NEW | 更新操作的新审计值 |
AUDIT_ID | 记录审计主题的数据库 ID |
AUDIT_ATTRIBUTE | 执行操作的属性名称或列 示例:描述或描述 |
EXCEPTION_MESSAGE | 错误信息被记录时的异常 |
EXCEPTION_CLASS | 记录错误时的 Ruby 类 |
EXCEPTION_BACKTRACE | 当记录错误时,后端作为多行字符串异常 |
LOC_ID | 位置数据库 ID |
LOC_NAME | 位置名称 |
LOC_LABEL | 位置标签 |
LOGGER | 日志记录器名称 要查看默认启用的日志记录器的当前列表,请输入以下命令: # awk '/add_loggers/,/^$/' /usr/share/foreman/config/application.rb |
ORG_ID | 机构数据库 ID |
ORG_NAME | 机构名称 |
ORG_LABEL | 机构标签 |
REMOTE_IP | 客户端的远程 IP 地址 |
REQUEST (请求) | 由 Action Dispatch 模块生成的请求 ID |
会话 | 为每个会话生成的随机 ID 或无会话请求请求 |
TEMPLATE_NAME | 模板名称 |
TEMPLATE_DIGEST | 渲染模板内容的摘要(SHA256) |
TEMPLATE_HOST_NAME | 渲染模板的主机名(如果存在) |
TEMPLATE_HOST_ID | 存在时呈现模板的主机数据库 ID |
USER_LOGIN | 用户登录名称 |
第 15 章 配置外部身份验证
通过使用外部身份验证,您可以从外部身份提供程序中的用户组成员资格生成用户和用户组权限。使用外部身份验证时,您不必创建这些用户并在 Satellite 服务器上手动维护其组成员资格。如果外部源不提供电子邮件,它将在第一次通过 Satellite Web UI 登录期间请求。
重要用户和组帐户信息
所有用户和组群帐户都必须是本地帐户。这是为了确保 Satellite 服务器中的本地帐户和 Active Directory 域中的帐户之间没有身份验证冲突。
如果您的用户和组帐户存在于 /etc/passwd
和 /etc/group
文件中,则您的系统不受此冲突的影响。例如,要检查 /etc/passwd
和 /etc/group
文件中是否存在 puppet
、apache
、apache 和
组的条目,请输入以下命令:
foreman
-proxy
# cat /etc/passwd | grep 'puppet\|apache\|foreman\|foreman-proxy' # cat /etc/group | grep 'puppet\|apache\|foreman\|foreman-proxy'
配置外部身份验证的情况
Red Hat Satellite 支持以下常规场景来配置外部身份验证:
- 使用轻量级目录访问协议( LDAP)服务器作为外部身份提供程序。LDAP 是一组开放协议,用于通过网络访问集中存储的信息。借助 Satellite,您可以通过 Satellite Web UI 完全管理 LDAP。如需更多信息,请参阅 第 15.1 节 “使用 LDAP”。虽然您可以使用 LDAP 连接到红帽身份管理或 AD 服务器,但设置不支持在 Satellite Web UI 中使用 Kerberos 进行服务器发现、跨林信任或单点登录。
- 使用红帽身份管理服务器作为外部身份提供程序。红帽身份管理涉及管理各个身份、网络环境中使用的凭证和特权。使用 Red Hat Identity Management 的配置只能使用 Satellite Web UI 完成,且需要与 CLI 进行一些交互。如需更多信息,请参阅 第 15.2 节 “使用红帽身份管理”。
- 通过跨林信任 Kerberos 信任作为外部身份提供程序,将与 Red Hat Identity Management 集成的 Active Directory (AD)集成。如需更多信息,请参阅 第 15.3.5 节 “带有跨信任的活动目录”。
- 使用红帽单点登录作为对 Satellite 外部身份验证的 OpenID 供应商。更多信息请参阅 第 15.8 节 “使用红帽单点登录身份验证配置 Satellite”。
- 使用红帽单点登录作为 OpenID 供应商,用于使用 TOTP 对 Satellite 进行外部身份验证。更多信息请参阅 第 15.9 节 “使用 TOTP 配置红帽单点登录身份验证”。
除了提供对 Satellite 服务器的访问外,通过 Satellite 置备的主机也可以与红帽身份管理域集成。Red Hat Satellite 有一个域功能,它会自动管理注册到域或域提供程序的任何系统的生命周期。如需更多信息,请参阅 第 15.7 节 “置备主机的外部身份验证”。
表 15.1. 身份验证概述
类型 | 身份验证 | 用户组 |
---|---|---|
Red Hat Identity Management | Kerberos 或 LDAP | 是 |
Active Directory | Kerberos 或 LDAP | 是 |
POSIX | LDAP | 是 |
15.1. 使用 LDAP
Satellite 支持使用一个或多个 LDAP 目录的 LDAP 身份验证。
如果您需要 Red Hat Satellite 使用 TLS
建立安全 LDAP 连接(LDAPS),首先获取您要连接的 LDAP 服务器使用的证书,并将它们标记为 Satellite 服务器的基本操作系统上的信任,如下所述。如果您的 LDAP 服务器使用带有中间证书颁发机构的证书链,则链中的所有 root 和中间证书都必须被信任,因此请确保获取所有证书。如果您目前不需要安全的 LDAP,请继续 第 15.1.2 节 “将 Red Hat Satellite 配置为使用 LDAP”。
使用 SSSD 配置
虽然本节介绍了直接 LDAP 集成,但红帽建议您使用 SSSD 并根据 Red Hat Identity Management、AD 或 LDAP 服务器配置它。SSSD 提高身份验证过程的一致性。有关首选配置的详情,请参考 第 15.3 节 “使用 Active Directory”。您还可以缓存 SSSD 凭证,并将它们用于 LDAP 身份验证。如需有关 SSSD 的更多信息,请参阅 Red Hat Enterprise Linux 7 系统级身份验证指南中的配置 SSSD。
用户不能同时使用 Red Hat Identity Management 和 LDAP 作为身份验证方法。用户使用某种方法进行身份验证后,他们无法使用其他方法。
要更改用户的身份验证方法,您必须从 Satellite 中删除自动创建的用户。
有关使用 Red Hat Identity Management 作为验证方法的详情,请参考 第 15.2 节 “使用红帽身份管理”。
15.1.1. 为安全 LDAP 配置 TLS
使用 Satellite CLI 为安全 LDAP (LDAPS)配置 TLS。
流程
从 LDAP 服务器获取证书。
-
如果您使用 Active Directory 证书服务,请使用 Base-64 编码的 X.509 格式导出 Enterprise PKI CA 证书。有关从 Active Directory 服务器创建和导出 CA 证书的信息,请参阅如何在 Satellite 上使用
TLS
配置 Active Directory 身份验证。 将 LDAP 服务器证书下载到 Satellite 服务器上的临时位置,并在完成后将其删除。
例如:
/tmp/example.crt
。文件名扩展.cer
和.crt
只是惯例,可以参考 DER 二进制文件或 PEM ASCII 格式证书。
-
如果您使用 Active Directory 证书服务,请使用 Base-64 编码的 X.509 格式导出 Enterprise PKI CA 证书。有关从 Active Directory 服务器创建和导出 CA 证书的信息,请参阅如何在 Satellite 上使用
信任 LDAP 服务器的证书。
Satellite 服务器要求 LDAP 身份验证的 CA 证书是
/etc/pki/tls/certs/
目录中的单个文件。使用
install
命令将导入的证书安装到具有正确权限的/etc/pki/tls/certs/
目录中:# install /tmp/example.crt /etc/pki/tls/certs/
以
root
用户身份输入以下命令,信任从 LDAP 服务器获取的 example.crt 证书:# ln -s example.crt /etc/pki/tls/certs/$(openssl \ x509 -noout -hash -in \ /etc/pki/tls/certs/example.crt).0
重启
httpd
服务:# systemctl restart httpd
15.1.2. 将 Red Hat Satellite 配置为使用 LDAP
在 Satellite Web UI 中,将 Satellite 配置为使用 LDAP。
请注意,如果您需要在 Satellite Web UI 上使用 Kerberos 进行单点登录功能,您应该改用 Red Hat Identity Management 和 AD 外部身份验证。如需更多信息,请参阅:
流程
将网络信息系统(NIS)服务布尔值设置为 true,以防止 SELinux 停止传出的 LDAP 连接:
# setsebool -P nis_enabled on
- 在 Satellite Web UI 中,导航到 Administer > Authentication Sources。
- 单击 Create LDAP Authentication Source。
-
在 LDAP server 选项卡中,输入 LDAP 服务器的名称、主机名、端口和服务器类型。默认端口为 389,默认服务器类型是 POSIX (您可以根据身份验证服务器的类型选择 FreeIPA 或 Active Directory)。对于
TLS
加密连接,请选择 LDAPS 复选框以启用加密。端口应更改为 636,这是 LDAPS 的默认端口。 - 在 Account 选项卡中,输入帐户信息和域名详情。有关描述和示例,请参阅 第 15.1.3 节 “LDAP 设置的描述”。
- 在 属性映射选项卡上,将 LDAP 属性映射到 Satellite 属性。您可以映射登录名称、名字、姓氏、电子邮件地址和取消部署属性。例如,请参阅 第 15.1.4 节 “LDAP 连接设置示例”。
- 在 位置 选项卡上,从左表中选择位置。所选位置分配给从 LDAP 身份验证源创建的用户,并在首次登录时可用。
- 在 Organizations 选项卡上,从左侧表中选择机构。所选组织分配给从 LDAP 身份验证源创建的用户,并在首次登录时可用。
- 点 Submit。
为 LDAP 用户配置新帐户:
- 如果您没有选择 Automatically Create Accounts In Satellite 复选框,请参阅 第 5.1.1 节 “创建用户” 以手动创建用户帐户。
- 如果您选择了 Automatically Create Accounts In Satellite 复选框,则 LDAP 用户现在可以使用其 LDAP 帐户和密码登录 Satellite。首次登录后,Satellite 管理员必须手动为他们分配角色。请参阅 第 5.1.2 节 “为用户分配角色” 在 Satellite 中分配用户帐户适当的角色。
15.1.3. LDAP 设置的描述
下表提供了 Account 选项卡中每个设置的描述。
表 15.2. Account Tab 设置
设置 | 描述 |
---|---|
帐户 | 对 LDAP 服务器的读取访问权限的 LDAP 帐户的用户名。如果服务器允许匿名读取,则不需要用户名,否则使用用户对象的完整路径。例如: uid=$login,cn=users,cn=accounts,dc=example,dc=com
该变量无法从 LDAP 源与外部用户组一起使用,因为 Satellite 需要在没有用户登录的情况下检索组列表。使用匿名或专用服务用户。 |
帐户密码 |
帐户用户名 字段中定义的用户的 LDAP 密码。如果 帐户用户名 使用 |
基本 DN | LDAP 目录的顶级域名。 |
组基本 DN | 包含组的 LDAP 目录树的顶级域名。 |
LDAP 过滤器 | 用于限制 LDAP 查询的过滤器。 |
在 Satellite 中自动创建帐户 | 如果选中此复选框,Satellite 会在首次登录 Satellite 时为 LDAP 用户创建用户帐户。首次登录后,Satellite 管理员必须手动为他们分配角色。请参阅 第 5.1.2 节 “为用户分配角色” 在 Satellite 中分配用户帐户适当的角色。 |
usergroup Sync | 如果选择了这个选项,用户组成员资格会在用户登录时自动同步,这样可确保成员资格始终保持最新状态。如果此选项被清除,Satellite 依赖于 cron 作业来定期同步组成员资格(默认为 30 分钟)。如需更多信息,请参阅 第 15.4 节 “配置外部用户组”。 |
15.1.4. LDAP 连接设置示例
下表显示了不同类型的 LDAP 连接设置示例。以下示例使用一个名为 redhat 的专用服务帐户,它对用户和组群条目具有 bind、read 和 search 权限。请注意,LDAP 属性名称区分大小写。
表 15.3. Active Directory、free IPA 或 Red Hat Identity Management 和 POSIX LDAP 连接的设置示例
设置 | Active Directory | FreeIPA 或 Red Hat Identity Management | POSIX (OpenLDAP) |
---|---|---|---|
帐户 | DOMAIN\redhat | uid=redhat,cn=users, cn=accounts,dc=example, dc=com | uid=redhat,ou=users, dc=example,dc=com |
帐户密码 | P@ssword | - | - |
基本 DN | DC=example,DC=COM | dc=example,dc=com | dc=example,dc=com |
组基本 DN | CN=Users,DC=example,DC=com | cn=groups,cn=accounts, dc=example,dc=com | cn=employee,ou=userclass, dc=example,dc=com |
登录名称属性 | userPrincipalName | uid | uid |
名字属性 | givenName | givenName | givenName |
姓氏属性 | sn | sn | sn |
电子邮件地址属性 | | | |
Photos 属性 | thumbnailPhoto | - | - |
userPrincipalName
允许在用户名中使用空格。登录名称属性 sAMAccountName
(没有在上表中列出)提供与传统 Microsoft 系统向后兼容性。sAMAccountName
不允许在用户名中使用空格。
15.1.5. LDAP 过滤器示例
作为管理员,您可以创建 LDAP 过滤器来限制特定用户对 Satellite 的访问。
表 15.4. 允许特定用户登录的过滤器示例
用户 | Filter |
---|---|
User1 | (distinguishedName=cn=User1,cn=Users,dc=domain,dc=example) |
User1, User3 | (memberOf=cn=Group1,cn=Users,dc=domain,dc=example) |
User2、User3 | (memberOf=cn=Group2,cn=Users,dc=domain,dc=example) |
User1, User2, User3 | (|(memberOf=cn=Group1,cn=Users,dc=domain,dc=example) (memberOf=cn=Group2,cn=Users,dc=domain,dc=example)) |
User1, User2, User3 | (memberOf:1.2.840.113556.1.4.1941:=cn=Users,dc=domain,dc=example) |
组 Users
是包含组 Group1
和 Group2
的嵌套组。如果要过滤嵌套组中的所有用户,您必须在嵌套组名称前添加 memberOf:1.2.840.113556.1.4.1941:=
。请参阅上表中的最后一个示例。
LDAP 目录结构
示例中的过滤器使用的 LDAP 目录结构:
DC=Domain,DC=Example | |----- CN=Users | |----- CN=Group1 |----- CN=Group2 |----- CN=User1 |----- CN=User2 |----- CN=User3
LDAP 组成员身份
示例中的过滤器使用的组成员资格:
组 | 成员 |
---|---|
Group1 | User1, User3 |
group2 | User2、User3 |
15.2. 使用红帽身份管理
本节介绍如何将 Satellite 服务器与红帽身份管理服务器集成以及如何启用基于主机的访问控制。
您可以将 Red Hat Identity Management 附加到没有单点登录支持的外部身份验证源。如需更多信息,请参阅 第 15.1 节 “使用 LDAP”。
用户不能同时使用 Red Hat Identity Management 和 LDAP 作为身份验证方法。用户使用某种方法进行身份验证后,他们无法使用其他方法。
要更改用户的身份验证方法,您必须从 Satellite 中删除自动创建的用户。
前提条件
- Satellite 服务器的基本操作系统必须由您的组织的红帽身份管理管理员在 Red Hat Identity Management 域中注册。
本章中的示例假定 Red Hat Identity Management 和 Satellite 配置之间的隔离。但是,如果您对两个服务器具有管理员特权,您可以配置 Red Hat Identity Management,如 Red Hat Enterprise Linux 7 Linux 域身份、身份验证和策略指南 中所述。
15.2.1. 在 Satellite 服务器上配置红帽身份管理身份验证
在 Satellite CLI 中,首先在红帽身份管理服务器上创建主机条目来配置红帽身份管理身份验证。
流程
在 Red Hat Identity Management 服务器上,要进行身份验证,请输入以下命令并在提示时输入您的密码:
# kinit admin
要验证您是否经过身份验证,请输入以下命令:
# klist
在 Red Hat Identity Management 服务器上,为 Satellite 服务器创建一个主机条目并生成一次性密码,例如:
# ipa host-add --random hostname
注意生成的一次性密码必须在客户端上使用,以完成 Red Hat Identity Management-enrollment。
有关主机配置属性的更多信息,请参阅 Red Hat Enterprise Linux 7 Linux 域身份、身份验证和策略指南中的 关于 主机条目配置属性。
为 Satellite 服务器创建 HTTP 服务,例如:
# ipa service-add HTTP/hostname
有关管理服务的更多信息,请参阅 Red Hat Enterprise Linux 7 Linux 域身份、身份验证和策略指南中的管理服务。https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/linux_domain_identity_authentication_and_policy_guide/services
在 Satellite 服务器中,安装 IPA 客户端:
警告此命令可能会在安装软件包的过程中重新启动 Satellite 服务。有关在 Satellite 上安装和更新软件包的详情请参考 第 12.8 节 “在 Satellite 服务器或 Capsule 服务器的基本操作系统中管理软件包”。
# satellite-maintain packages install ipa-client
在 Satellite 服务器上,以 root 用户身份输入以下命令来配置 Red Hat Identity Management-enrollment:
# ipa-client-install --password OTP
将 OTP 替换为 Red Hat Identity Management 管理员提供的一次性密码。
如果 Satellite 服务器在 Red Hat Enterprise Linux 7 上运行,请执行以下命令:
# subscription-manager repos --enable rhel-7-server-optional-rpms
安装程序依赖于 Red Hat Enterprise Linux 7 上的软件包,它们位于可选存储库
rhel-7-server-optional-rpms
中。使用以下命令将
foreman-ipa-authentication
设置为 true:# satellite-installer --foreman-ipa-authentication=true
重启 Satellite 服务:
# satellite-maintain service restart
外部用户现在可以使用其红帽身份管理凭据登录 Satellite。现在,他们可以选择直接使用其用户名和密码直接登录 Satellite 服务器,或者利用配置的 Kerberos 单点登录,并在客户端机器上获取票据并自动登录。也支持使用一次性密码(2FA OTP)进行双因素身份验证。如果 Red Hat Identity Management 中的用户被配置为 2FA,并且 Satellite 服务器在 Red Hat Enterprise Linux 7 上运行,则此用户也可以使用 OTP 向 Satellite 进行身份验证。
15.2.2. 配置基于主机的身份验证控制
HBAC 规则定义红帽身份管理用户允许访问的机器。您可以在 Red Hat Identity Management 服务器上配置 HBAC,以防止所选用户访问 Satellite 服务器。通过这种方法,您可以防止 Satellite 为不允许登录的用户创建数据库条目。有关 HBAC 的更多信息,请参阅 Red Hat Enterprise Linux 7 Linux 域身份、身份验证和策略指南中的 配置基于主机的访问控制。
在 Red Hat Identity Management 服务器上,配置基于主机的身份验证控制(HBAC)。
流程
在 Red Hat Identity Management 服务器上,要进行身份验证,请输入以下命令并在提示时输入您的密码:
# kinit admin
要验证您是否经过身份验证,请输入以下命令:
# klist
在红帽身份管理服务器上创建 HBAC 服务和规则,并将它们链接在一起。以下示例使用 PAM 服务名称 satellite-prod。在 Red Hat Identity Management 服务器上执行以下命令:
# ipa hbacsvc-add satellite-prod # ipa hbacrule-add allow_satellite_prod # ipa hbacrule-add-service allow_satellite_prod --hbacsvcs=satellite-prod
添加需要访问服务 satellite-prod 的用户,以及 Satellite 服务器的主机名:
# ipa hbacrule-add-user allow_satellite_prod --user=username # ipa hbacrule-add-host allow_satellite_prod --hosts=satellite.example.com
或者,主机组和用户组可以添加到 allow_satellite_prod 规则中。
要检查规则的状态,请执行:
# ipa hbacrule-find satellite-prod # ipa hbactest --user=username --host=satellite.example.com --service=satellite-prod
- 确保 Red Hat Identity Management 服务器上禁用了 allow_all 规则。有关如何在不破坏其他服务的情况下执行此操作的说明,请参阅红帽客户门户网站中的 IdM 文章 如何在 IdM 中配置 HBAC 规则。
配置红帽身份管理与 Satellite 服务器集成,如 第 15.2.1 节 “在 Satellite 服务器上配置红帽身份管理身份验证” 所述。在 Satellite 服务器上,将 PAM 服务定义为 root :
# satellite-installer --foreman-pam-service=satellite-prod
15.3. 使用 Active Directory
本节介绍如何使用直接 Active Directory (AD)作为 Satellite 服务器的外部身份验证源。
您可以将 Active Directory 附加到没有单点登录支持的外部身份验证源。如需更多信息,请参阅 第 15.1 节 “使用 LDAP”。有关示例配置,请参阅如何在 Satellite 上使用 TLS 配置 Active Directory 身份验证。
直接 AD 集成意味着 Satellite 服务器直接加入到存储身份的 AD 域。推荐的设置由两个步骤组成:
- 将 Satellite 服务器注册到 Active Directory 服务器,如 第 15.3.2 节 “使用 AD 服务器注册 Satellite 服务器” 所述。
- 配置直接 Active Directory 与 GSS-proxy 集成,如 第 15.3.3 节 “使用 GSS-Proxy 配置直接 AD 集成” 所述。
15.3.1. GSS-Proxy
Apache 中 Kerberos 身份验证的传统流程需要 Apache 进程对 keytab 文件具有读取访问权限。GSS-Proxy 允许您通过删除对 keytab 文件的访问,同时保留 Kerberos 身份验证功能,为 Apache 服务器实施更严格的特权分离。当使用 AD 作为 Satellite 的外部身份验证源时,建议实施 GSS-proxy,因为 keytab 文件中的密钥与主机密钥相同。
在作为 Satellite 服务器的基础操作系统的 Red Hat Enterprise Linux 中执行以下步骤。对于本节中的示例,EXAMPLE.ORG 是 AD 域的 Kerberos 域。通过完成这个过程,属于 EXAMPLE.ORG 域的用户可以登录到 Satellite 服务器。
15.3.2. 使用 AD 服务器注册 Satellite 服务器
在 Satellite CLI 中,将 Satellite 服务器注册到 Active Directory 服务器。
前提条件
GSS-proxy 和 nfs-utils 已安装。
安装 GSS-proxy 和 nfs-utils:
# satellite-maintain packages install gssproxy nfs-utils
流程
安装所需的软件包:
# satellite-maintain packages install sssd adcli realmd ipa-python-compat krb5-workstation samba-common-tools
将 Satellite 服务器注册到 AD 服务器。您可能需要具有管理员权限才能执行以下命令:
# realm join -v EXAMPLE.ORG --membership-software=samba -U Administrator
15.3.3. 使用 GSS-Proxy 配置直接 AD 集成
在 Satellite CLI 中,配置直接 Active Directory 与 GSS-proxy 集成。
前提条件
- Satellite 注册到 Active Directory 服务器。如需更多信息,请参阅 第 15.3.2 节 “使用 AD 服务器注册 Satellite 服务器”。
流程
创建
/etc/ipa/
目录和default.conf
文件:# mkdir /etc/ipa # touch /etc/ipa/default.conf
在
default.conf
文件中添加以下内容:[global] server = unused realm = EXAMPLE.ORG
使用以下内容创建
/etc/net-keytab.conf
文件:[global] workgroup = EXAMPLE realm = EXAMPLE.ORG kerberos method = system keytab security = ads
确定 Apache 用户的有效用户 ID:
# id apache
Apache 用户不能能够访问 keytab 文件。
使用以下内容创建
/etc/gssproxy/00-http.conf
文件:[service/HTTP] mechs = krb5 cred_store = keytab:/etc/httpd/conf/http.keytab cred_store = ccache:/var/lib/gssproxy/clients/krb5cc_%U euid = ID_of_Apache_User
创建 keytab 条目:
警告在创建 keytab 条目前,主机不得注册到域中。
# KRB5_KTNAME=FILE:/etc/httpd/conf/http.keytab net ads keytab add HTTP -U administrator -d3 -s /etc/net-keytab.conf # chown root.apache /etc/httpd/conf/http.keytab # chmod 640 /etc/httpd/conf/http.keytab
在 Satellite 中启用 IPA 身份验证:
# satellite-installer --foreman-ipa-authentication=true
启动并启用
gssproxy
服务:# systemctl restart gssproxy.service # systemctl enable gssproxy.service
要将 Apache 服务器配置为使用
gssproxy
服务,请创建一个systemd
drop-in 文件并为其添加以下内容:# mkdir -p /etc/systemd/system/httpd.service.d/ # vi /etc/systemd/system/httpd.service.d/gssproxy.conf [Service] Environment=GSS_USE_PROXY=1
将更改应用到该服务:
# systemctl daemon-reload
启动并启用
httpd
服务:# systemctl restart httpd.service
通过直接 AD 集成,不提供通过红帽身份管理的 HBAC。另外,您可以使用组策略对象(GPO)来使管理员在 AD 环境中集中管理策略。要确保正确的 GPO 到 PAM 服务映射,请将以下 SSSD 配置添加到 /etc/sssd/sssd.conf
中:
access_provider = ad ad_gpo_access_control = enforcing ad_gpo_map_service = +foreman
此处,foreman 是 PAM 服务名称。如需有关 GPO 的更多信息,请参阅 将 RHEL 系统直接与 Windows 目录服务器集成 中的 SSSD 如何解释 GPO 访问控制规则。
验证
验证 SSO 是否按预期工作。
使用正在运行的 Apache 服务器时,如果客户端有有效的 Kerberos 票据,则对服务器发出 HTTP 请求的用户将进行身份验证。
使用以下命令检索 LDAP 用户的 Kerberos 票据:
# kinit ldapuser
使用以下命令查看 Kerberos ticket:
# klist
使用以下命令,查看基于 SSO 的身份验证的输出:
# curl -k -u : --negotiate https://satellite.example.com/users/extlogin
这会返回以下响应:
<html><body>You are being <a href="https://satellite.example.com/users/4-ldapuserexample-com/edit">redirected</a>.</body></html>
15.3.4. Web 浏览器中的 Kerberos 配置
有关配置 Firefox 浏览器的详情,请参考 Red Hat Enterprise Linux 系统级身份验证指南 中的将 Firefox 配置为为单点登录使用 Kerberos。
如果您使用 Internet Explorer 浏览器,请将 Satellite 服务器添加到本地 IDemo 或受信任的站点列表中,然后打开 Enable Integrated Windows Authentication 设置。详情请查看 Internet Explorer 文档。
15.3.5. 带有跨信任的活动目录
Kerberos 可以创建 跨林信任
,以定义两个独立域林之间的关系。域林是域的层次结构,即 AD 和 Red Hat Identity Management 都是林。在 AD 和 Red Hat Identity Management 之间启用了信任关系,AD 的用户可以使用一组凭证访问 Linux 主机和服务。有关跨林信任的更多信息,请参阅 Red Hat Enterprise Linux Windows 集成 指南中的使用 Active Directory 和 Identity Management 创建跨林信任。
从 Satellite 的角度来看,配置过程与在没有配置跨林信任的情况下与红帽身份管理服务器集成的过程相同。Satellite 服务器必须在 IdM 域中注册,并集成,如 第 15.2 节 “使用红帽身份管理” 所述。
15.3.6. 将 Red Hat Identity Management 服务器配置为使用 Cross-Forest Trust
在 Red Hat Identity Management 服务器上,将服务器配置为使用跨林信任
。
流程
启用 HBAC:
- 创建一个外部组,并将 AD 组添加到其中。
- 将新的外部组添加到 POSIX 组。
- 在 HBAC 规则中使用 POSIX 组。
配置 sssd 以传输 AD 用户的额外属性。
将 AD 用户属性添加到
/etc/sssd/sssd.conf
中的 nss 和 domain 部分。例如:[nss] user_attributes=+mail, +sn, +givenname [domain/EXAMPLE.com] ... krb5_store_password_if_offline = True ldap_user_extra_attrs=email:mail, lastname:sn, firstname:givenname [ifp] allowed_uids = ipaapi, root user_attributes=+email, +firstname, +lastname
验证 AD 属性值。
# dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserAttr string:ad-user@ad-domain array:string:email,firstname,lastname
15.4. 配置外部用户组
Satellite 不会自动将外部用户与其用户组关联。您必须在 Satellite 上的外部源中创建名称相同的用户组。然后,外部用户组的成员自动成为 Satellite 用户组的成员,并接收关联的权限。
外部用户组的配置取决于外部身份验证的类型。
要为外部用户分配额外权限,请将此用户添加到没有指定外部映射的内部用户组。然后,将所需的角色分配给此组。
先决条件
如果您使用 LDAP 服务器,请将 Satellite 配置为使用 LDAP 身份验证。如需更多信息,请参阅 第 15.1 节 “使用 LDAP”。
从 LDAP 源使用外部用户组时,您无法使用
$login
变量替换帐户用户名。您必须使用 anonymous 或 dedicated 服务用户。- 如果您使用 Red Hat Identity Management 或 AD 服务器,请将 Satellite 配置为使用 Red Hat Identity Management 或 AD 身份验证。如需更多信息,请参阅 第 15 章 配置外部身份验证。
- 确保至少有一个外部用户第一次进行身份验证。
保留您要使用的外部组名称的一份副本。要查找外部用户的组成员资格,请输入以下命令:
# id username
流程
- 在 Satellite Web UI 中,导航到 Administer > User Groups,然后点 Create User Group。
- 指定新用户组的名称。不要选择任何用户以避免在刷新外部用户组时自动添加用户。
- 点 Roles 选项卡,再选择您要分配给用户组的角色。或者,选择 Administrator 复选框来分配所有可用的权限。
单击 External groups 选项卡,然后单击 Add external user group,然后从 Auth source 下拉菜单中选择身份验证源。
在 Name 字段中指定外部组的确切名称。
- 点 Submit。
15.5. 为 LDAP 刷新外部用户组
要将 LDAP 源设置为在用户登录时自动同步用户组成员资格,请在 Auth Source 页面中选择 Usergroup Sync 选项。如果没有选择此选项,则默认每 30 分钟通过调度的 cron 作业自动刷新 LDAP 用户组。
如果 LDAP 身份验证源中的用户组在调度的任务之间有变化,则可以将用户分配给不正确的外部用户组。这在调度任务运行时自动修正。
使用这个流程手动刷新 LDAP 源。
流程
- 在 Satellite Web UI 中,导航到 Administer > Usergroups 并选择用户组。
- 在 External Groups 选项卡中,单击所需用户组右侧的 Refresh。
CLI 过程
使用以下命令:
# foreman-rake ldap:refresh_usergroups
15.6. 为 Red Hat Identity Management 或 AD 刷新外部用户组
仅当组成员登录到 Satellite 时,才会刷新基于 Red Hat Identity Management 或 AD 的外部用户组。在 Satellite Web UI 中无法更改外部用户组的用户成员资格,这些更改将在下一次组刷新时被覆盖。
15.7. 置备主机的外部身份验证
使用本节为 Red Hat Identity Management 域支持配置 Satellite 服务器或 Capsule 服务器,然后将主机添加到 Red Hat Identity Management realm 组中。
先决条件
- 注册到 Content Delivery Network 的 Satellite 服务器或注册到 Satellite 服务器的外部 Capsule 服务器。
- 一个部署的领域或域提供商,如红帽身份管理。
在 Satellite 服务器或 Capsule 服务器上安装和配置 Red Hat Identity Management 软件包:
要将 Red Hat Identity Management 用于置备的主机,请完成以下步骤,以便在 Satellite 服务器或 Capsule 服务器上安装和配置 Red Hat Identity Management 软件包:
在 Satellite 服务器或 Capsule 服务器上安装
ipa-client
软件包:# satellite-maintain packages install ipa-client
将服务器配置为 Red Hat Identity Management 客户端:
# ipa-client-install
在 Red Hat Identity Management 中创建域代理用户、
realm-capsule
以及相关角色:# foreman-prepare-realm admin realm-capsule
请注意,返回的主体名称和 Red Hat Identity Management 服务器配置详情,因为您需要它们。
为 Red Hat Identity Management Realm 支持配置 Satellite 服务器或 Capsule 服务器:
在 Satellite 上完成以下步骤以及您要使用的每个 Capsule:
将
/root/freeipa.keytab
文件复制到您要包含在同一主体和域中的任何 Capsule 服务器:# scp /root/freeipa.keytab root@capsule.example.com:/etc/foreman-proxy/freeipa.keytab
将
/root/freeipa.keytab
文件移到/etc/foreman-proxy
目录中,并将所有权设置设置为foreman-proxy
用户:# mv /root/freeipa.keytab /etc/foreman-proxy # chown foreman-proxy:foreman-proxy /etc/foreman-proxy/freeipa.keytab
在您要包含在域中的所有 Capsule 上输入以下命令。如果您在 Satellite 上使用集成的 Capsule,请在 Satellite 服务器上输入以下命令:
# satellite-installer --foreman-proxy-realm true \ --foreman-proxy-realm-keytab /etc/foreman-proxy/freeipa.keytab \ --foreman-proxy-realm-principal realm-capsule@EXAMPLE.COM \ --foreman-proxy-realm-provider freeipa
您也可以在首次配置 Satellite 服务器时使用这些选项。
确保安装了 ca-certificates 软件包的最更新版本,并信任 Red Hat Identity Management 证书颁发机构:
# cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt # update-ca-trust enable # update-ca-trust
可选:如果您在现有 Satellite 服务器或 Capsule 服务器上配置 Red Hat Identity Management,请完成以下步骤以确保配置更改:
重启 foreman-proxy 服务:
# systemctl restart foreman-proxy
- 在 Satellite Web UI 中,导航到 Infrastructure > Capsules。
- 找到您为红帽身份管理配置的 Capsule,并从 Actions 列中的列表,选择 Refresh。
为启用了 Red Hat Identity Management 的 Capsule 创建域
在使用红帽身份管理配置集成或外部 Capsule 后,您必须创建一个域,并将 Red Hat Identity Management 配置的 Capsule 添加到域中。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Realms,再点 Create Realm。
- 在 Name 字段中输入域的名称。
- 从 Realm Type 列表中,选择 realm 的类型。
- 从 Realm Capsule 列表中,选择您配置了 Red Hat Identity Management 的 Capsule 服务器。
- 单击位置选项卡,然后从 位置 列表中选择您要添加新域的位置。
- 点 Organizations 选项卡,从 Organizations 列表中选择您要添加新域的组织。
- 点 Submit。
使用 Realm 信息更新主机组
您必须更新要用于新域信息的任何主机组。
- 在 Satellite Web UI 中,导航到 Configure > Host Groups,选择您要更新的主机组,然后点击 Network 选项卡。
- 从 Realm 列表中,选择您创建的域,作为此流程的一部分,然后单击 Submit。
将主机添加到 Red Hat Identity Management 主机组
红帽身份管理支持根据系统的属性设置自动成员资格规则。Red Hat Satellite 的域功能可让管理员将 Red Hat Satellite 主机组映射到 Red Hat Identity Management 参数 userclass
,使管理员能够配置自动成员。
使用嵌套主机组时,它们会发送到 Red Hat Identity Management 服务器,因为它们显示在 Red Hat Satellite 用户界面中。例如,"Parent/Child/Child"。
Satellite 服务器或 Capsule 服务器会向红帽身份管理服务器发送更新,但自动成员规则仅在初始注册时应用。
将主机添加到 Red Hat Identity Management 主机组:
在 Red Hat Identity Management 服务器上,创建一个主机组:
# ipa hostgroup-add hostgroup_name --desc=hostgroup_description
创建自动成员规则
:# ipa automember-add --type=hostgroup hostgroup_name automember_rule
您可以使用以下选项:
-
automember-add
将组标记为自动成员组。 -
--type=hostgroup
标识目标组是主机组,而不是用户组。 -
automember_rule
添加您要用来识别自动成员规则的名称。
-
根据
userclass
属性定义自动成员条件:# ipa automember-add-condition --key=userclass --type=hostgroup --inclusive-regex=^webserver hostgroup_name ---------------------------------- Added condition(s) to "hostgroup_name" ---------------------------------- Automember Rule: automember_rule Inclusive Regex: userclass=^webserver ---------------------------- Number of conditions added 1 ----------------------------
您可以使用以下选项:
-
automember-add-condition
添加正则表达式条件来标识组成员。 -
--key=userclass
将 key 属性指定为userclass
。 -
--type=hostgroup
标识目标组是主机组,而不是用户组。 -
--inclusive-regex=
^webserver 使用正则表达式模式识别匹配值。 - hostgroup_name - 标识目标主机组的名称。
-
将系统添加到 Satellite 服务器的 hostgroup_name 主机组时,它将自动添加到 Red Hat Identity Management 服务器的 "hostgroup_name"主机组中。红帽身份管理主机组允许基于主机的访问控制(HBAC)、sudo 策略和其他红帽身份管理功能。
15.8. 使用红帽单点登录身份验证配置 Satellite
使用本节将 Satellite 配置为使用 Red Hat Single Sign-On 作为 OpenID 供应商进行外部身份验证。
15.8.1. 使用红帽单点登录身份验证配置 Satellite 的先决条件
在使用 Red Hat Single Sign-On 外部身份验证配置 Satellite 前,请确保满足以下要求:
- 使用 HTTPS 而不是 HTTP 的 Red Hat Single Sign-On 服务器的功能安装。
- 具有 admin 权限的 Red Hat Single Sign-On 帐户。
- 在红帽单点登录中创建的 Satellite 用户帐户的域。
- 如果证书或 CA 是自签名的,请确保将它们添加到最终用户证书信任存储中。
用户导入或添加到红帽单点登录。
如果您配置了现有用户数据库,如 LDAP 或 Kerberos,您可以通过配置用户联邦从其中导入用户。如需更多信息,请参阅红帽单点登录服务器 管理指南中的 用户存储联邦。
如果您没有配置现有用户数据库,您可以在 Red Hat Single Sign-On 中手动创建用户。如需更多信息 ,请参阅 红帽单点登录服务器管理指南中的创建新用户。
15.8.2. 将 Satellite 注册为 Red Hat Single Sign-On 客户端
使用这个流程将 Satellite 注册到 Red Hat Single Sign-On 作为客户端,并将 Satellite 配置为使用 Red Hat Single Sign-On 作为身份验证源。
您可以使用两种不同的身份验证方法配置 Satellite 和 Red Hat Single Sign-On:
- 用户使用 Satellite Web UI 向 Satellite 进行身份验证。
- 用户使用 Satellite CLI 向 Satellite 进行身份验证。
您必须预先决定用户如何进行身份验证,因为这两种方法都需要不同的 Satellite 客户端注册到 Red Hat Single Sign-On 和 configured。在红帽单点登录中注册和配置 Satellite 客户端的步骤在流程中区分。
如果要同时使用身份验证方法并相应地配置这两个客户端,您还可以在红帽单点登录中注册两个不同的 Satellite 客户端。
流程
在 Satellite 服务器上安装以下软件包:
# satellite-maintain packages install mod_auth_openidc keycloak-httpd-client-install
将 Satellite 注册到 Red Hat Single Sign-On 作为客户端。请注意,您使用 Web UI 和 CLI 登录的注册过程不同。您可以将两个客户端 Satellite 客户端注册到红帽单点登录,以便能够通过 Web UI 和 CLI 登录 Satellite。
如果您希望用户使用 Web UI 向 Satellite 进行身份验证,请按如下所示创建客户端:
# keycloak-httpd-client-install --app-name foreman-openidc \ --keycloak-server-url "https://RHSSO.example.com" \ --keycloak-admin-username "admin" \ --keycloak-realm "Satellite_Realm" \ --keycloak-admin-realm master \ --keycloak-auth-role root-admin \ -t openidc -l /users/extlogin --force
提示时输入管理帐户的密码。此命令在红帽单点登录中为 Satellite 创建客户端。
然后,将 Satellite 配置为使用 Red Hat Single Sign-On 作为身份验证源:
# satellite-installer --foreman-keycloak true \ --foreman-keycloak-app-name "foreman-openidc" \ --foreman-keycloak-realm "Satellite_Realm"
如果您希望用户使用 CLI 向 Satellite 进行身份验证,请创建客户端,如下所示:
# keycloak-httpd-client-install --app-name hammer-openidc \ --keycloak-server-url "https://RHSSO.example.com" \ --keycloak-admin-username "admin" \ --keycloak-realm "Satellite_Realm" \ --keycloak-admin-realm master \ --keycloak-auth-role root-admin \ -t openidc -l /users/extlogin --force
提示时输入管理帐户的密码。此命令在红帽单点登录中为 Satellite 创建客户端。
重启
httpd
服务:# systemctl restart httpd
15.8.3. 在红帽单点登录中配置 Satellite 客户端
使用这个流程在 Red Hat Single Sign-On Web UI 中配置 Satellite 客户端,并为 Satellite 客户端创建组和使用者映射程序。
流程
- 在 Red Hat Single Sign-On Web UI 中,导航到 Clients 并点 Satellite 客户端。
配置访问类型:
- 如果您希望用户使用 Satellite Web UI 验证 Satellite,请从 Access Type 列表中选择 机密。
- 如果您希望用户使用 CLI 向 Satellite 进行身份验证,请从 Access Type 列表中选择 public。
在 Valid redirect URI 字段中,添加有效的重定向 URI。
如果您希望用户使用 Satellite Web UI 验证 Satellite,位于现有 URI 下的空白字段中,以
https://satellite.example.com/users/extlogin
格式输入 URI。请注意,您必须在 Satellite FQDN 后添加字符串/users/extlogin
。完成此步骤后,使用 Satellite Web UI 登录的 Satellite 客户端必须具有以下 Valid Redirect URI :
https://satellite.example.com/users/extlogin/redirect_uri https://satellite.example.com/users/extlogin
如果您希望用户使用 CLI 向 Satellite 进行身份验证,在现有 URI 下的空白字段中,输入 urn:ietf:wg:oauth:2.0:oob。
完成此步骤后,使用 CLI 登录的 Satellite 客户端必须具有以下 Valid Redirect URI :
https://satellite.example.com/users/extlogin/redirect_uri urn:ietf:wg:oauth:2.0:oob
- 点击 Save。
- 点 Mappers 选项卡,点 Create 添加 audience mapper。
- 在 Name 字段中输入 audience mapper 的名称。
- 从 Mapper Type 列表中,选择 Audience。
- 从 Included Client Audience 列表中,选择 Satellite 客户端。
- 点击 Save。
- 点 Create 添加组映射程序,以便您可以根据组成员资格在 Satellite 中指定授权。
- 在 Name 字段中输入 group mapper 的名称。
- 从 Mapper Type 列表中,选择 Group Membership。
- 在 Token Claim Name 字段中输入 groups。
- 将 Full group path 设置为 OFF。
- 点击 Save。
15.8.4. 为红帽单点登录身份验证配置 Satellite 设置
使用本节通过 Satellite Web UI 或 CLI 为 Red Hat Single Sign-On 身份验证配置 Satellite。
15.8.4.1. 使用 Web UI 为红帽单点登录身份验证配置 Satellite 设置
使用这个流程,使用 Satellite Web UI 为红帽单点登录身份验证配置 Satellite 设置。
请注意,您可以导航到域中以下 URL,以获取用于配置 Satellite 设置的值 :https://RHSSO.example.com/auth/realms/Satellite_Realm/.well-known/openid-configuration
前提条件
- 确保 Red Hat Single Sign-On Web UI 中的 Satellite 客户端中的 Access Type 设置设为 confidential
流程
- 在 Satellite Web UI 中,导航到 Administer > Settings,然后点 Authentication 选项卡。
- 在 Value 列中找到 Authorize login delegation 行,将值设为 Yes。
- 在 Value 列中找到 Authorize login delegation auth source user autocreate 行,将值设为 External。
- 在 Value 列中找到 Login delegation logout URL 行,将值设为 https://satellite.example.com/users/extlogout。
- 在 Value 列中找到 OIDC Algorithm 行,将 Red Hat Single Sign-On 上的编码算法设置为 RS256。
- 找到 OIDC Audience 行,在 Value 列中,将值设置为 Red Hat Single Sign-On 的客户端 ID。
- 在 Value 列中找到 OIDC Issuer 行,将值设为 https://RHSSO.example.com/auth/realms/Satellite_Realm。
- 在 Value 列中找到 OIDC JWKs URL 行,将值设为 https://RHSSO.example.com/auth/realms/Satellite_Realm/protocol/openid-connect/certs。
- 在 Satellite Web UI 中,进入到 Administer > Authentication Sources,点 External 卡中的垂直 ellipsis,然后选择 Edit。
- 点 Locations 选项卡,并添加可以使用 Red Hat Single Sign-On 身份验证源的位置。
- 点 Organizations 选项卡,并添加可以使用 Red Hat Single Sign-On 身份验证源的组织。
- 点 Submit。
15.8.4.2. 使用 CLI 为红帽单点登录身份验证配置 Satellite 设置
使用这个流程使用 Satellite CLI 为 Red Hat Single Sign-On 身份验证配置 Satellite 设置。
请注意,您可以导航到域中以下 URL,以获取用于配置 Satellite 设置的值 :https://RHSSO.example.com/auth/realms/Satellite_Realm/.well-known/openid-configuration
前提条件
- 确保 Red Hat Single Sign-On Web UI 中的 Satellite 客户端中的 Access Type 设置被设置为 public
流程
在 Satellite 上,将登录委托设置为
true
,以便用户可以使用 Open Liberty 协议进行身份验证:# hammer settings set --name authorize_login_delegation --value true
设置登录委托注销 URL:
# hammer settings set --name login_delegation_logout_url \ --value https://satellite.example.com/users/extlogout
在 Red Hat Single Sign-On 上为编码设置算法,例如
RS256
:# hammer settings set --name oidc_algorithm --value 'RS256'
-
打开
RHSSO.example.com/auth/realms/RHSSO_REALM/.well-known/openid-configuration
URL,并记录这些值来填充以下步骤中的选项。 在 Openö 使用者中为hammer 客户端添加值:
# hammer settings set --name oidc_audience \ --value "['satellite.example.com-hammer-openidc']"
注意如果您在 Satellite 中注册了多个 Red Hat Single Sign-On 客户端,请确保附加阵列中的所有使用者。例如:
# hammer settings set --name oidc_audience \ --value "['satellite.example.com-foreman-openidc', 'satellite.example.com-hammer-openidc']"
为 Open114 签发者设置值:
# hammer settings set --name oidc_issuer \ --value "RHSSO.example.com/auth/realms/RHSSO_Realm"
设置 Open Liberty Java Web Token (JWT)的值:
# hammer settings set --name oidc_jwks_url \ --value "RHSSO.example.com/auth/realms/RHSSO_Realm/protocol/openid-connect/certs"
检索 Red Hat Single Sign-On 身份验证源的 ID:
# hammer auth-source external list
设置位置和机构:
# hammer auth-source external update --id Authentication Source ID \ --location-ids Location ID --organization-ids Organization ID
15.8.5. 使用红帽单点登录登录到 Satellite Web UI
使用 Red Hat Single Sign-On 登录 Satellite Web UI。
流程
- 在您的浏览器中,登录 Satellite 并输入您的凭据。
15.8.6. 使用红帽单点登录登录到 Satellite CLI
使用这个流程使用代码授权类型向 Satellite CLI 进行身份验证。
流程
要使用代码授权类型向 Satellite CLI 进行身份验证,请输入以下命令:
# hammer auth login oauth \ --two-factor \ --oidc-token-endpoint 'https://RHSSO.example.com/auth/realms/ssl-realm/protocol/openid-connect/token' \ --oidc-authorization-endpoint 'https://RHSSO.example.com/auth' \ --oidc-client-id 'satellite.example.com-foreman-openidc' \ --oidc-redirect-uri urn:ietf:wg:oauth:2.0:oob
该命令会提示您输入成功代码。
- 要检索成功代码,请导航到命令返回的 URL 并提供所需信息。
- 复制 Web UI 返回的成功代码。
-
在
hammer auth login oauth
命令提示符中,输入成功代码来向 Satellite CLI 进行身份验证。
15.8.7. 为红帽单点登录身份验证配置组映射
要实施基于角色的访问控制(RBAC),请在 Satellite 中创建组,为该组分配一个角色,然后将 Active Directory 组映射到 Satellite 组。因此,红帽单点登录中给定组中的任何人都在对应的 Satellite 组下登录。本例配置 Active Directory 中 Satellite-admin 用户组的用户,以对 Satellite 具有管理员特权的用户进行身份验证。
流程
- 在 Satellite Web UI 中,导航到 Administer > User Groups,然后点 Create User Group 按钮。
- 在 Name 字段中输入用户组的名称。名称不应与 Active Directory 中相同。
- 不要将用户和用户组添加到右侧列。点 Roles 选项卡。
- 选中 Administer 复选框。
- 点 External Groups 选项卡。
- 单击 Add external user group。
- 在 Name 字段中输入 Active Directory 组的名称。
- 从列表中选择 EXTERNAL。
15.9. 使用 TOTP 配置红帽单点登录身份验证
使用本节将 Satellite 配置为使用 Red Hat Single Sign-On 作为使用 TOTP 卡进行外部身份验证的 OpenID 供应商。
15.9.1. 使用红帽单点登录身份验证配置 Satellite 的先决条件
在使用 Red Hat Single Sign-On 外部身份验证配置 Satellite 前,请确保满足以下要求:
- 使用 HTTPS 而不是 HTTP 的 Red Hat Single Sign-On 服务器的功能安装。
- 具有 admin 权限的 Red Hat Single Sign-On 帐户。
- 在红帽单点登录中创建的 Satellite 用户帐户的域。
- 如果证书或 CA 是自签名的,请确保将它们添加到最终用户证书信任存储中。
用户导入或添加到红帽单点登录。
如果您配置了现有用户数据库,如 LDAP 或 Kerberos,您可以通过配置用户联邦从其中导入用户。如需更多信息,请参阅红帽单点登录服务器 管理指南中的 用户存储联邦。
如果您没有配置现有用户数据库,您可以在 Red Hat Single Sign-On 中手动创建用户。如需更多信息 ,请参阅 红帽单点登录服务器管理指南中的创建新用户。
15.9.2. 将 Satellite 注册为 Red Hat Single Sign-On 客户端
使用这个流程将 Satellite 注册到 Red Hat Single Sign-On 作为客户端,并将 Satellite 配置为使用 Red Hat Single Sign-On 作为身份验证源。
您可以使用两种不同的身份验证方法配置 Satellite 和 Red Hat Single Sign-On:
- 用户使用 Satellite Web UI 向 Satellite 进行身份验证。
- 用户使用 Satellite CLI 向 Satellite 进行身份验证。
您必须预先决定用户如何进行身份验证,因为这两种方法都需要不同的 Satellite 客户端注册到 Red Hat Single Sign-On 和 configured。在红帽单点登录中注册和配置 Satellite 客户端的步骤在流程中区分。
如果要同时使用身份验证方法并相应地配置这两个客户端,您还可以在红帽单点登录中注册两个不同的 Satellite 客户端。
流程
在 Satellite 服务器上安装以下软件包:
# satellite-maintain packages install mod_auth_openidc keycloak-httpd-client-install
将 Satellite 注册到 Red Hat Single Sign-On 作为客户端。请注意,您使用 Web UI 和 CLI 登录的注册过程不同。您可以将两个客户端 Satellite 客户端注册到红帽单点登录,以便能够通过 Web UI 和 CLI 登录 Satellite。
如果您希望用户使用 Web UI 向 Satellite 进行身份验证,请按如下所示创建客户端:
# keycloak-httpd-client-install --app-name foreman-openidc \ --keycloak-server-url "https://RHSSO.example.com" \ --keycloak-admin-username "admin" \ --keycloak-realm "Satellite_Realm" \ --keycloak-admin-realm master \ --keycloak-auth-role root-admin \ -t openidc -l /users/extlogin --force
提示时输入管理帐户的密码。此命令在红帽单点登录中为 Satellite 创建客户端。
然后,将 Satellite 配置为使用 Red Hat Single Sign-On 作为身份验证源:
# satellite-installer --foreman-keycloak true \ --foreman-keycloak-app-name "foreman-openidc" \ --foreman-keycloak-realm "Satellite_Realm"
如果您希望用户使用 CLI 向 Satellite 进行身份验证,请创建客户端,如下所示:
# keycloak-httpd-client-install --app-name hammer-openidc \ --keycloak-server-url "https://RHSSO.example.com" \ --keycloak-admin-username "admin" \ --keycloak-realm "Satellite_Realm" \ --keycloak-admin-realm master \ --keycloak-auth-role root-admin \ -t openidc -l /users/extlogin --force
提示时输入管理帐户的密码。此命令在红帽单点登录中为 Satellite 创建客户端。
重启
httpd
服务:# systemctl restart httpd
15.9.3. 在红帽单点登录中配置 Satellite 客户端
使用这个流程在 Red Hat Single Sign-On Web UI 中配置 Satellite 客户端,并为 Satellite 客户端创建组和使用者映射程序。
流程
- 在 Red Hat Single Sign-On Web UI 中,导航到 Clients 并点 Satellite 客户端。
配置访问类型:
- 如果您希望用户使用 Satellite Web UI 验证 Satellite,请从 Access Type 列表中选择 机密。
- 如果您希望用户使用 CLI 向 Satellite 进行身份验证,请从 Access Type 列表中选择 public。
在 Valid redirect URI 字段中,添加有效的重定向 URI。
如果您希望用户使用 Satellite Web UI 验证 Satellite,位于现有 URI 下的空白字段中,以
https://satellite.example.com/users/extlogin
格式输入 URI。请注意,您必须在 Satellite FQDN 后添加字符串/users/extlogin
。完成此步骤后,使用 Satellite Web UI 登录的 Satellite 客户端必须具有以下 Valid Redirect URI :
https://satellite.example.com/users/extlogin/redirect_uri https://satellite.example.com/users/extlogin
如果您希望用户使用 CLI 向 Satellite 进行身份验证,在现有 URI 下的空白字段中,输入 urn:ietf:wg:oauth:2.0:oob。
完成此步骤后,使用 CLI 登录的 Satellite 客户端必须具有以下 Valid Redirect URI :
https://satellite.example.com/users/extlogin/redirect_uri urn:ietf:wg:oauth:2.0:oob
- 点击 Save。
- 点 Mappers 选项卡,点 Create 添加 audience mapper。
- 在 Name 字段中输入 audience mapper 的名称。
- 从 Mapper Type 列表中,选择 Audience。
- 从 Included Client Audience 列表中,选择 Satellite 客户端。
- 点击 Save。
- 点 Create 添加组映射程序,以便您可以根据组成员资格在 Satellite 中指定授权。
- 在 Name 字段中输入 group mapper 的名称。
- 从 Mapper Type 列表中,选择 Group Membership。
- 在 Token Claim Name 字段中输入 groups。
- 将 Full group path 设置为 OFF。
- 点击 Save。
15.9.4. 为红帽单点登录身份验证配置 Satellite 设置
使用本节通过 Satellite Web UI 或 CLI 为 Red Hat Single Sign-On 身份验证配置 Satellite。
15.9.4.1. 使用 Web UI 为红帽单点登录身份验证配置 Satellite 设置
使用这个流程,使用 Satellite Web UI 为红帽单点登录身份验证配置 Satellite 设置。
请注意,您可以导航到域中以下 URL,以获取用于配置 Satellite 设置的值 :https://RHSSO.example.com/auth/realms/Satellite_Realm/.well-known/openid-configuration
前提条件
- 确保 Red Hat Single Sign-On Web UI 中的 Satellite 客户端中的 Access Type 设置设为 confidential
流程
- 在 Satellite Web UI 中,导航到 Administer > Settings,然后点 Authentication 选项卡。
- 在 Value 列中找到 Authorize login delegation 行,将值设为 Yes。
- 在 Value 列中找到 Authorize login delegation auth source user autocreate 行,将值设为 External。
- 在 Value 列中找到 Login delegation logout URL 行,将值设为 https://satellite.example.com/users/extlogout。
- 在 Value 列中找到 OIDC Algorithm 行,将 Red Hat Single Sign-On 上的编码算法设置为 RS256。
- 找到 OIDC Audience 行,在 Value 列中,将值设置为 Red Hat Single Sign-On 的客户端 ID。
- 在 Value 列中找到 OIDC Issuer 行,将值设为 https://RHSSO.example.com/auth/realms/Satellite_Realm。
- 在 Value 列中找到 OIDC JWKs URL 行,将值设为 https://RHSSO.example.com/auth/realms/Satellite_Realm/protocol/openid-connect/certs。
- 在 Satellite Web UI 中,进入到 Administer > Authentication Sources,点 External 卡中的垂直 ellipsis,然后选择 Edit。
- 点 Locations 选项卡,并添加可以使用 Red Hat Single Sign-On 身份验证源的位置。
- 点 Organizations 选项卡,并添加可以使用 Red Hat Single Sign-On 身份验证源的组织。
- 点 Submit。
15.9.4.2. 使用 CLI 为红帽单点登录身份验证配置 Satellite 设置
使用这个流程使用 Satellite CLI 为 Red Hat Single Sign-On 身份验证配置 Satellite 设置。
请注意,您可以导航到域中以下 URL,以获取用于配置 Satellite 设置的值 :https://RHSSO.example.com/auth/realms/Satellite_Realm/.well-known/openid-configuration
前提条件
- 确保 Red Hat Single Sign-On Web UI 中的 Satellite 客户端中的 Access Type 设置被设置为 public
流程
在 Satellite 上,将登录委托设置为
true
,以便用户可以使用 Open Liberty 协议进行身份验证:# hammer settings set --name authorize_login_delegation --value true
设置登录委托注销 URL:
# hammer settings set --name login_delegation_logout_url \ --value https://satellite.example.com/users/extlogout
在 Red Hat Single Sign-On 上为编码设置算法,例如
RS256
:# hammer settings set --name oidc_algorithm --value 'RS256'
-
打开
RHSSO.example.com/auth/realms/RHSSO_REALM/.well-known/openid-configuration
URL,并记录这些值来填充以下步骤中的选项。 在 Openö 使用者中为hammer 客户端添加值:
# hammer settings set --name oidc_audience \ --value "['satellite.example.com-hammer-openidc']"
注意如果您在 Satellite 中注册了多个 Red Hat Single Sign-On 客户端,请确保附加阵列中的所有使用者。例如:
# hammer settings set --name oidc_audience \ --value "['satellite.example.com-foreman-openidc', 'satellite.example.com-hammer-openidc']"
为 Open114 签发者设置值:
# hammer settings set --name oidc_issuer \ --value "RHSSO.example.com/auth/realms/RHSSO_Realm"
设置 Open Liberty Java Web Token (JWT)的值:
# hammer settings set --name oidc_jwks_url \ --value "RHSSO.example.com/auth/realms/RHSSO_Realm/protocol/openid-connect/certs"
检索 Red Hat Single Sign-On 身份验证源的 ID:
# hammer auth-source external list
设置位置和机构:
# hammer auth-source external update --id Authentication Source ID \ --location-ids Location ID --organization-ids Organization ID
15.9.5. 使用 Red Hat Single Sign-On 为 TOTP 身份验证配置 Satellite
使用这个流程将 Satellite 配置为使用 Red Hat Single Sign-On 作为 OpenID 供应商,通过基于时间的一次性密码(TOTP)进行外部身份验证。
流程
- 在 Red Hat Single Sign-On Web UI 中,导航到 Satellite 域。
- 导航到 Authentication,然后单击 OTP Policy 选项卡。
- 确保 支持的 Applications 字段包含 FreeOTP 或 Google Authenticator。
- 配置 OTP 设置以满足您的要求。
- 可选:如果要将 TOTP 身份验证用作所有用户的默认身份验证方法,请点 Flows 选项卡,并在 OTP Form 设置右侧选择 REQUIRED。
- 点 Required Actions 选项卡。
- 在 Configure OTP 行右侧,选中 Default Action 复选框。
15.9.6. 使用红帽单点登录 TOTP 身份验证登录到 Satellite Web UI
使用 Red Hat Single Sign-On TOTP 身份验证登录到 Satellite Web UI。
流程
- 登录到 Satellite,Satellite 会重定向到 Red Hat Single Sign-On 登录屏幕。
- 输入您的用户名和密码,然后单击 Log In。
- 第一次尝试登录,Red Hat Single Sign-On 请求通过扫描 barcode 并输入 pin 来配置客户端。
- 配置客户端并输入有效的 PIN 后,Red Hat Single Sign-On 会将您重定向到 Satellite 并登录。
15.9.7. 使用红帽单点登录登录到 Satellite CLI
使用这个流程使用代码授权类型向 Satellite CLI 进行身份验证。
流程
要使用代码授权类型向 Satellite CLI 进行身份验证,请输入以下命令:
# hammer auth login oauth \ --two-factor \ --oidc-token-endpoint 'https://RHSSO.example.com/auth/realms/ssl-realm/protocol/openid-connect/token' \ --oidc-authorization-endpoint 'https://RHSSO.example.com/auth' \ --oidc-client-id 'satellite.example.com-foreman-openidc' \ --oidc-redirect-uri urn:ietf:wg:oauth:2.0:oob
该命令会提示您输入成功代码。
- 要检索成功代码,请导航到命令返回的 URL 并提供所需信息。
- 复制 Web UI 返回的成功代码。
-
在
hammer auth login oauth
命令提示符中,输入成功代码来向 Satellite CLI 进行身份验证。
15.9.8. 为红帽单点登录身份验证配置组映射
要实施基于角色的访问控制(RBAC),请在 Satellite 中创建组,为该组分配一个角色,然后将 Active Directory 组映射到 Satellite 组。因此,红帽单点登录中给定组中的任何人都在对应的 Satellite 组下登录。本例配置 Active Directory 中 Satellite-admin 用户组的用户,以对 Satellite 具有管理员特权的用户进行身份验证。
流程
- 在 Satellite Web UI 中,导航到 Administer > User Groups,然后点 Create User Group 按钮。
- 在 Name 字段中输入用户组的名称。名称不应与 Active Directory 中相同。
- 不要将用户和用户组添加到右侧列。点 Roles 选项卡。
- 选中 Administer 复选框。
- 点 External Groups 选项卡。
- 单击 Add external user group。
- 在 Name 字段中输入 Active Directory 组的名称。
- 从列表中选择 EXTERNAL。
15.10. 禁用红帽单点登录身份验证
如果要在 Satellite 中禁用 Red Hat Single Sign-On 身份验证,请完成以下步骤。
流程
输入以下命令禁用 Red Hat Single Sign-On Authentication:
# satellite-installer --reset-foreman-keycloak
第 16 章 监控资源
以下章节详细介绍了如何为受管系统配置监控和报告。这包括主机配置、内容视图、合规性、订阅、注册的主机、提升和同步。
16.1. 使用 Red Hat Satellite 内容仪表板
Red Hat Satellite 内容控制面板包含各种小部件,它们概述了主机配置、内容视图、合规性报告、订阅和主机当前注册、提升和同步以及最新通知的列表。
在 Satellite Web UI 中,导航到 Monitor > Dashboard 以访问内容仪表板。可以通过单击小部件并将其拖动到不同的位置来重新安排仪表板。可用的小部件如下:
- 主机配置状态
配置状态以及最后一次报告间隔期间与其关联的主机数量概述。下表显示了可能的配置状态的描述。
表 16.1. 主机配置状态
图标 状态 描述 执行修改的主机没有错误
在最后一次报告间隔内成功执行修改的主机。
处于错误状态的主机
在最后报告间隔期间检测到错误的主机。
在最后的 35 分钟内报告良好主机
没有错误的主机不会在最后的 35 分钟内执行任何修改。
待处理的主机
应用某些资源的主机,但 Puppet 配置为在
noop
模式下运行。没有同步主机
未同步且报告的主机在最后报告间隔期间没有被收到。
没有报告的主机
在最后报告间隔期间没有收集到任何报告的主机。
禁用警报的主机
未监控的主机。
单击特定的配置状态,以查看与其关联的主机。
- 主机配置图表
- pie 图显示配置状态的比例以及与其关联的所有主机的百分比。
- 最新事件
主机生成的消息列表,包括管理信息、产品和订阅更改以及任何错误。
监控本节以了解发送到所有用户的全局通知,并检测任何不常见的活动或错误。
- 运行分发(最后 30 分钟)
- 图显示在最后的 puppet 间隔(默认为 30 分钟)期间运行的 Puppet 代理的分发。在这种情况下,每列代表在 3 分钟内从客户端接收的多个报告。
- 新主机
- 最近创建的主机列表。单击主机以获取更多详细信息。
- 任务状态
- 所有当前任务的摘要,按状态和结果分组。点数字查看对应的任务列表。
- 最新警告/错误任务
- 由于警告或错误而停止的最新任务列表。点任务查看更多详情。
- 发现的主机
- 通过 Discovery 插件在 provisioning 网络中检测到的所有裸机主机的列表。
- 最新勘误
- 用于注册到 Satellite 的主机的所有勘误的列表。
- 内容视图
- Satellite 中所有内容视图的列表及其发布状态。
- 同步概述
- Satellite 中启用的所有产品或存储库的概述及其同步状态。所有位于同步队列的产品都未同步,或之前已同步的所有产品均将在本节中列出。
- 主机订阅状态
当前由注册到 Satellite 的主机使用的订阅概述。订阅是一个购买的证书,用于解锁对主机的软件、升级和安全修复的访问。下表显示了订阅的可能状态。
表 16.2. 主机订阅状态
图标 状态 描述 无效
已安装产品但没有正确订阅的主机。这些主机需要立即关注。
部分
具有订阅和有效权利的主机,但不全部使用其全部权利。应监控这些主机以确保它们按预期配置。
valid
有有效权限且使用其全部权限的主机。
点订阅类型查看与所选类型订阅关联的主机。
- 订阅状态
- 当前订阅概述,其中显示了有效订阅的数量、下一个 120 天后过期的订阅数以及最近过期的订阅数。
- Host Collections
- Satellite 中的所有主机聚合的列表及其状态,包括每个主机集合中的内容主机数量。
- virt-who 配置状态
从环境中运行的
virt-who
守护进程接收的报告状态概述。下表显示了可能的状态。表 16.3. virt-who 配置状态
状态 描述 没有报告
没有收到报告,因为 virt-who 配置部署期间发生了错误,或者配置尚未部署,或者 virt-who 在调度的间隔期间无法连接到 Satellite。
没有更改
没有收到报告,因为虚拟机监控程序没有检测到虚拟机的任何更改,或者 virt-who 在调度间隔内无法上传报告。如果您添加了虚拟机,但配置处于 No Change 状态,请检查 virt-who 是否正在运行。
确定
在调度间隔期间收到无错误的报告。
总配置
virt-who 配置总数。
点配置状态来查看处于此状态的所有配置。
小部件还会在 Latest Configuration Without Change 下列出 No Change 状态的三个最新的配置。
- 最新合规性报告
- 最新合规性报告列表。每个合规性报告显示传递的多个规则(P)、失败(F)或其他合规性报告(O)。单击主机以了解详细合规性报告。点击该策略以了解更多有关该策略的详细信息。
- 合规性报告明细
- pie chart 根据其状态显示合规性报告的分发。
- Red Hat Insights 操作
- Red Hat Insights 是一个嵌入在 Satellite 中的工具,用于检查环境和推荐操作。该操作分为 4 个类别:可用性、稳定性、性能和安全性。
- Red Hat Insights 风险概述
表中根据风险级别显示操作的分布。风险级别代表了操作的关键程度,以及导致实际问题的可能性。可能的风险级别有: Low、Medium、High 和 Critical。
注意无法更改 Satellite Web UI 中显示的日期格式。
16.1.1. 管理任务
Red Hat Satellite 保留所有计划或执行的任务的完整日志,如存储库同步、应用的勘误和内容视图。要查看日志,请导航到 Monitor > Tasks。
在 Task 窗口中,您可以搜索特定的任务,查看其状态、详情和过期时间。您还可以取消和恢复一个或多个任务。
这些任务通过 Dynflow 引擎进行管理。远程任务具有可根据需要调整的超时。
要调整超时设置:
- 在 Satellite Web UI 中,导航到 Administer > Settings。
- 在搜索框中输入 %_timeout,然后点 搜索。搜索应返回四个设置,包括描述。
- 在 Value 列中,点数字旁边的图标编辑它。
- 输入所需值(以秒为单位),然后单击 Save。
在带宽较低时,调整 %_finish_timeout 值可能会帮助。在延迟高时,调整 %_accept_timeout 值可能会帮助。
初始化任务时,将检查任务中使用的任何后端服务,如 Candlepin 或 Pulp。如果检查失败,您会收到类似如下的错误:
There was an issue with the backend service candlepin: Connection refused – connect(2).
如果后端服务检查功能导致任何问题,则可以禁用它,如下所示。
禁用检查服务:
- 在 Satellite Web UI 中,导航到 Administer > Settings。
- 在搜索框中输入 check_services_before_actions,然后点 Search。
- 在 Value 列中,点图标编辑值。
- 从下拉菜单中选择 false。
- 点击 Save。
16.2. 配置 RSS 通知
要查看 Satellite 事件通知警报,请单击屏幕右上角的 Notifications 图标。
默认情况下,通知区域显示 Red Hat Satellite Blog 中发布的 RSS 源事件。
源每 12 小时刷新一次,每当有新事件可用时,通知区域都会被更新。
您可以通过更改 URL 源来配置 RSS 源通知。支持的源格式为 RSS 2.0 和 Atom。有关 RSS 2.0 源结构的示例,请参阅 Red Hat Satellite Blog 源。有关 Atom 源结构的示例,请参阅 Foreman 博客源。
配置 RSS 通知:
- 在 Satellite Web UI 中,导航到 Administer > Settings 并选择 Notifications 选项卡。
- 在 RSS URL 行中,点 Value 列中的 edit 图标并输入所需的 URL。
- 在 RSS enable 行中,点 Value 列中的编辑图标来启用或禁用此功能。
16.3. 监控 Satellite 服务器
在 Satellite Web UI 中的 About 页面中,您可以找到以下概述:
- 系统状态,包括 Capsules、可用提供程序、计算资源和插件
- 支持信息
- 系统信息
- 后端系统状态
- 安装的软件包
进入 About 页面:
- 在 Satellite Web UI 右上角,点 Administer > About。
Pulp 失败后,因为同步延迟,Pulp 的状态可能会显示 OK 而不是 Error 最多 10 分钟。
16.4. 监控 Capsule 服务器
以下部分演示了如何使用 Satellite Web UI 查找用于维护和故障排除的 Capsule 信息。
16.4.1. 查看常规 Capsule 信息
在 Satellite Web UI 中,导航到 Infrastructure > Capsules,以查看注册到 Satellite 服务器的 Capsule Servers 表。表中包含的信息回答以下问题:
- 胶囊式服务器是否正在运行?
-
这通过 Status 列中的绿色图标表示。红色图标表示一个不活跃的 Capsule,在 Capsule 服务器上使用
service foreman-proxy restart
命令来激活它。 - 在胶囊式服务器上启用了哪些服务?
- 在 Features 列中,您可以验证(例如,提供 DHCP 服务或作为 Pulp 镜像)的 Capsule。Capsule 功能可以在安装过程中启用,也可以配置。如需更多信息,请参阅安装 Capsule 服务器。
- 哪些机构和位置是分配给的 Capsule 服务器?
可将 Capsule 服务器分配到多个机构和位置,但仅显示属于当前所选组织的 Capsule。要列出所有 Capsules,请从左上角的上下文菜单中选择 Any Organization。
更改 Capsule 配置后,从 Actions 列中的下拉菜单中选择 Refresh,以确保 Capsule 表为最新版本。
单击 Capsule 名称以查看详细信息。在 Overview 选项卡中,您可以找到与 Capsule 表中相同的信息。另外,您可以回答以下问题:
- 哪些主机由 Capsule 服务器管理?
- 在 Hosts managed 标签旁边会显示关联的主机数量。单击该数字以查看关联的主机的详细信息。
- 胶囊服务器上有多少可用存储空间?
-
此时会显示由
/var/lib/pulp
中的 Pulp 内容所占用的存储空间量。另外,Capsule 上可用的剩余存储空间可以被确定。
16.4.2. 监控服务
在 Satellite Web UI 中,导航到 Infrastructure > Capsules,再点所选 Capsule 的名称。在 Services 选项卡中,您可以找到有关 Capsule 服务的基本信息,如 DNS 域列表或 Pulp worker 的数量。页面的外观取决于在胶囊式服务器上启用哪些服务。提供更详细的状态信息的服务可以在 Capsule 页面中具有专用选项卡。更多信息请参阅 第 16.4.3 节 “监控 Puppet”。
16.4.3. 监控 Puppet
在 Satellite Web UI 中,导航到 Infrastructure > Capsules,再点所选 Capsule 的名称。在 Puppet 选项卡中,您可以找到以下内容:
- Puppet 事件摘要、最新的 Puppet 运行概述以及 General 子选项卡上关联主机的同步状态。
- Environments 子选项卡的 Puppet 环境列表。
在 Puppet CA 选项卡中,您可以找到以下内容:
- 证书状态概述和 General 子选项卡中的 autosign 条目数。
- 与 Certificates 子选项卡的 Capsule 关联的 CA 证书表。您可以在此处检查证书到期数据,或者通过单击 Revoke 来取消证书。
- Autosign 条目子目录中的 autosign 条目列表。您可以在此处点 New 或删除条目来创建条目 。
只有在 Satellite 中启用了 Puppet 时,才会使用 Puppet 和 Puppet CA 选项卡。如需更多信息,请参阅在 Red Hat Satellite 中使用 Puppet 集成管理配置中的启用 Puppet 与 Satellite 集成。
第 17 章 使用 Webhook
Webhook 是网页或 Web 应用程序的方法,为其他应用程序实时提供信息。Webhook 仅在事件发生后触发。该请求通常包含事件的详细信息。事件会触发回调,如发送电子邮件确认主机已调配。Webhook 允许您使用 fire-and-forget 消息交换模式,根据 Satellite 内部事件定义对外部 API 的调用。发送请求的应用程序不会等待响应,或者忽略它。
Webhook 的有效负载是从 Webhook 模板创建的。Webhook 模板使用与 Provisioning 模板相同的 ERB 语法。可用变量:
-
@event_name
:事件的名称。 -
@webhook_id
:唯一事件 ID。 -
@payload
: Payload 数据,每种事件类型都有所不同。要访问各个字段,请使用@payload[:key_name]
Ruby hash 语法。 -
@payload[:object]
: 数据库操作触发的事件的数据库对象(create、update、delete)。不适用于自定义事件。 -
@payload[:context]
:其他信息,如请求和会话 UUID、远程 IP 地址、用户、机构和位置。
由于 Webhook 使用 HTTP,因此不需要将新的基础架构添加到现有 Web 服务中。
Satellite 中 Webhook 的典型用例是在创建或删除主机时调用监控系统。
Webhook 可用于通过 API 来实现外部系统中要执行的操作。如果需要运行其他命令或编辑文件,则 Capsule 的 shellhooks 插件可用。shellhooks 插件允许您在 Capsule 上定义一个可通过 API 执行的 shell 脚本。
您可以在不安装 shellhooks 插件的情况下成功使用 Webhook。
有关可用事件的列表,请参阅 可用的 Webhook 事件。
17.1. 迁移到 Webhook
传统的 foreman_hooks
插件提供对 webhook 插件不有意提供的模型对象的完整访问权限。
安全模式和所有对象和宏的限制范围取决于 API 稳定性承诺,并完全记录。
Webhook 触发的事件数量显著少于 foreman_hooks
。
Webhook 异步处理,从而对系统内部篡改的风险最小。在不为每个 Webhook 脚本创建有效负载的情况下,无法从 foreman_hooks
迁移。但是,webhook 插件附带了几个示例有效负载模板。您还可以使用带有 shellhooks 的示例有效负载来简化迁移。
必须自定义脚本和有效负载模板才能实现类似的结果。
17.2. 安装 Webhook
使用以下步骤安装 Webhook。安装 Webhook 后,您可以配置 Satellite 服务器来发送 Webhook 请求。
流程
使用以下命令安装 webhook:
# satellite-installer --enable-foreman-plugin-webhooks
可选:您可以使用以下命令安装 CLI 插件:
# satellite-installer --enable-foreman-cli-webhooks
17.3. 创建 Webhook 模板
Webhook 模板用于在触发 webhook 时将 HTTP 请求正文生成到配置的目标。使用以下步骤在 Satellite Web UI 中创建 webhook 模板。
流程
- 在 Satellite Web UI 中,导航到 Administer > Webhook Templates。
- 点 Clone an existing template 或 Create Template。
- 输入模板的名称。
使用编辑器更改模板有效负载。
必须使用 Satellite 模板语法创建 webhook HTTP 有效负载。Webhook 模板可以使用一个名为
@object
的特殊变量,它可表示事件的主对象。如果某些事件,可以缺少@object
。您可以确定哪些数据实际上可通过@payload
变量使用。如需更多信息,请参阅 管理主机 中的 编写 参考的模板和可用模板宏和方法,请访问 Satellite 服务器上的
/templates_doc
。- 可选:输入 description 和 audit 注释。
- 分配机构和位置。
- 点 Submit。
17.4. 创建 Webhook
您可以通过 Satellite Web UI 自定义事件、有效负载、HTTP 身份验证、内容类型和标头。
使用以下步骤在 Satellite Web UI 中创建 Webhook。
流程
- 在 Satellite Web UI 中,导航到 Administer > Webhooks。
- 点 Create new。
- 从 Subscribe to 列表中选择一个事件。
- 输入 webhook 的名称。
- 输入 目标 URL。Webhook 向预先配置的 URL 发出 HTTP 请求。目标 URL 可以是动态 URL。
- 单击 Template 以选择模板。Webhook 模板用于在触发 Webhook 时向 Satellite 服务器生成 HTTP 请求正文。
- 输入 HTTP 方法。
- 可选:如果您不希望在创建 Webhook 时激活 Webhook,请取消选择 Enabled 标志。
- 点 Credentials 选项卡。
- 可选:如果需要 HTTP 身份验证,请输入 User and Password。
- 可选: 如果您不想根据系统证书存储或 Satellite CA 验证服务器证书,请取消检查 验证 SSL。
-
在 Additional 选项卡中,输入 HTTP Content Type。例如,您定义的有效负载上的
application/json
、application/xml
或text/plain
。应用程序不会尝试转换内容以匹配指定的内容类型。 - 可选:提供 HTTP 标头作为 JSON。也允许 ERB。
当使用非标准 HTTP 或 HTTPS 端口的端点配置 webhook 时,必须分配 SELinux 端口,请参阅在 连接的网络环境中安装 Satellite 中的 在自定义端口上配置 SELinux 以保证对 Satellite 的访问。
17.5. 可用的 Webhook 事件
下表包含 Satellite Web UI 中可用的 webhook 事件列表。操作
事件仅在 成功
上触发 Webhook,因此当操作失败时,不会触发 Webhook。
如需有关有效负载的更多信息,请转至 Administer > About & gt; Support > Templates DSL。下表中提供了可用类型的列表。有些事件被标记为 自定义,在这种情况下,有效负载是一个对象对象,但 Ruby 哈希(键值数据结构)不同。
事件名称 | 描述 | payload |
---|---|---|
Actions Katello Content View Promote Succeeded | 内容视图已成功提升。 | Actions::Katello::ContentView::Promote |
Actions Katello Content View Publish Succeeded | 存储库已成功同步。 | Actions::Katello::ContentView::Publish |
操作远程执行运行主机任务 Succeeded | 主机成功有一个通用远程执行任务。完成后,所有远程执行作业都会发出此事件。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机作业 Katello 勘误安装 Succeeded | 使用 Katello 接口安装勘误。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机作业 Katello 组安装 Succeeded | 使用 Katello 接口安装软件包组。 | Actions::RemoteExecution::RunHostJob |
Actions Remote Execution Run Host job Katello Package Install Succeeded | 使用 Katello 接口安装软件包。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机作业 Katello 组删除 | 使用 Katello 接口删除软件包组。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机作业 Katello Package Remove Succeeded | 使用 Katello 接口删除软件包。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机作业 Katello 服务重启 Succeeded | 使用 Katello 接口重启服务。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机作业 Katello 组 Update Succeeded | 使用 Katello 接口更新软件包组。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机作业 Katello Package Update Succeeded | 使用 Katello 接口更新软件包。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机作业 Foreman OpenSCAP Run Scans Succeeded | 运行 OpenSCAP 扫描。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机任务 Ansible 运行主机 Succeeded | 运行一个 Ansible playbook,其中包含为主机定义的所有角色。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机任务 Ansible 运行 Capsule 升级成功 | 在给定的 Capsule 服务器主机上升级 Capsule。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机任务 Ansible 配置云连接器 Succeeded | 在给定主机上配置云连接器。 | Actions::RemoteExecution::RunHostJob |
Actions Remote Execution Run Host Job Ansible Run Insights Plan Succeeded | 从 Red Hat Access Insights 运行给定的维护计划,给出一个 ID。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机任务 Ansible 运行 Playbook Succeeded | 针对给定主机运行 Ansible playbook。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机任务 Ansible 启用 Web 控制台 Succeeded | 运行 Ansible playbook,以在给定主机上启用 Web 控制台。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机任务 Puppet 运行主机 Succeeded | 执行单个 Puppet 运行。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机作业 Katello 模块流 Action Succeeded | 使用 Katello 接口执行模块流操作。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机作业 Leapp 预升级成功 | RHEL 7 主机的可升级性检查。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机作业 Leapp 修复计划 Succeeded | 使用 Leapp 运行修复计划。 | Actions::RemoteExecution::RunHostJob |
操作远程执行运行主机作业 Leapp 升级成功 | 为 RHEL 7 主机运行 Leapp 升级作业。 | Actions::RemoteExecution::RunHostJob |
构建输入 | 进入构建模式的主机。 |
自定义事件:@ |
构建已同步 | 主机构建模式已被取消,可以成功置备,或者手动取消了构建的用户。 |
自定义事件:@ |
内容视图创建/更新 | 内容视图上的通用数据库操作. | Katello::ContentView |
Domain Created/Updated/Destroyed | 域的通用数据库操作。 | 域 |
主机 Created/Updated/Destroyed | 主机上的通用数据库操作。 | 主机 |
hostgroup Created/Updated/Destroyed | hostgroup 上的通用数据库操作。 | hostgroup |
Model Created/Updated/Destroyed | 对模型的通用数据库操作。 | model |
状态更改 | 主机的全局主机状态已更改。 |
自定义事件:@ |
子网 Created/Updated/Destroyed | 子网上的通用数据库操作。 | subnet |
模板 Render Executioned | 已呈现报告模板。 | 模板 |
用户 Created/Updated/Destroyed | 用户的通用数据库操作。 | User |
17.6. Shellhooks
使用 Webhook 时,您只能将一个 Satellite 事件映射到一个 API 调用。对于高级集成,其中单个 shell 脚本可以包含多个命令,您可以安装一个 Capsule shellhooks 插件,该插件使用 REST HTTP API 公开可执行文件。
然后,您可以将 webhook 配置为到达 Capsule API,以运行预定义的 shellhook。shellhook 是一个可执行脚本,只要它可以执行,就可以使用任何语言编写。例如,shellhook 可以包含命令或编辑文件。
您必须将可执行脚本放在 /var/lib/foreman-proxy/shellhooks
中,且只有字母数字字符和下划线的名称。
您可以通过 Webhook 有效负载将输入传递给 shellhook 脚本。此输入重定向到 shellhook 脚本的标准输入。您可以使用 HTTP 标头将参数传递给 shellhook 脚本,格式为 X-Shellhook-Arg-1
到 X-Shellhook-Arg-99
。有关将参数传递给 shellhook 脚本的更多信息,请参阅:
HTTP 方法必须是 POST。示例 URL 为: https://capsule.example.com:9090/shellhook/My_Script
。
与 shellhooks
目录不同,URL 必须包含 /shellhook/
(以 singular 为单位)。
您必须为每个连接到 shellhook 的 webhook 启用 Capsule 授权,使其能够授权调用。
标准输出和标准错误输出分别作为具有调试或警告级别的消息重定向到 Capsule 日志。
shellhook HTTPS 调用不会返回值。
有关创建 shellhook 脚本的示例,请参阅 第 17.10 节 “创建 Shellhook 以打印参数”。
17.7. 安装 Shellhooks 插件
另外,您可以使用以下命令在每个用于 shellhooks 的 Capsule 上安装并启用 shellhooks 插件:
# satellite-installer --enable-foreman-proxy-plugin-shellhooks
17.8. 使用 Webhook 将参数传递给 Shellhook 脚本
使用此流程使用 Webhook 将参数传递给 shellhook 脚本。
流程
在创建 Webhook 时,在 Additional 选项卡中,以以下格式创建 HTTP 标头:
{ "X-Shellhook-Arg-1": "VALUE", "X-Shellhook-Arg-2": "VALUE" }
确保标头具有有效的 JSON 或 ERB 格式。仅传递不包含新行或带引号字符的数据库 ID、名称或标签等安全字段。
如需更多信息,请参阅 第 17.4 节 “创建 Webhook”。
示例
{ "X-Shellhook-Arg-1": "<%= @object.content_view_version_id %>", "X-Shellhook-Arg-2": "<%= @object.content_view_name %>" }
17.9. 使用 Curl 将参数传递给 Shellhook 脚本
使用 curl 将参数传递给 shellhook 脚本。
流程
使用
curl
执行 shellhook 脚本时,以以下格式创建 HTTP 标头:"X-Shellhook-Arg-1: VALUE" "X-Shellhook-Arg-2: VALUE"
示例
# curl -sX POST -H 'Content-Type: text/plain' \ -H "X-Shellhook-Arg-1: Version 1.0" \ -H "X-Shellhook-Arg-2: My Content View" \ --data "" https://capsule.example.com:9090/shellhook/My_Script
17.10. 创建 Shellhook 以打印参数
创建一个简单的 shellhook 脚本,该脚本在运行远程执行作业时打印"Hello World!"。
前提条件
已安装
webhook
和shellhooks
插件。如需更多信息,请参阅:
流程
修改
/var/lib/foreman-proxy/shellhooks/print_args
脚本,以将参数打印到标准错误输出,以便您可以在 Capsule 日志中看到它们:#!/bin/sh # # Prints all arguments to stderr # echo "$@" >&2
- 在 Satellite Web UI 中,导航到 Administer > Webhooks。
- 点 Create new。
- 从 Subscribe to 列表中,选择 Actions Remote Execution Run Host Job Succeeded。
- 输入 webhook 的名称。
在 Target URL 字段中,输入您的 Capsule 服务器的 URL,后跟
:9090/shellhook/print_args
:https://capsule.example.com:9090/shellhook/print_args
请注意,URL 中的
shellhook
是单数的,这与shellhooks
目录不同。- 从 Template 列表中,选择 Empty Payload。
- 在 Credentials 选项卡上,选中 Capsule Authorization。
在 Additional 选项卡中,在 Optional HTTP headers 字段中输入以下文本:
{ "X-Shellhook-Arg-1": "Hello", "X-Shellhook-Arg-2": "World!" }
- 点 Submit。现在,您已成功创建了一个 shellhook,它会在每次远程执行作业都成功时将"Hello World!"打印到 Capsule 日志。
验证
-
在任何主机上运行远程执行作业。您可以使用
时间
作为命令。如需更多信息,请参阅 管理主机 中的 执行远程作业 。 验证 shellhook 脚本是否已触发,并将"Hello World!"输出到 Capsule 服务器日志:
# tail /var/log/foreman-proxy/proxy.log
您应该在日志末尾找到以下行:
[I] Started POST /shellhook/print_args [I] Finished POST /shellhook/print_args with 200 (0.33 ms) [I] [3520] Started task /var/lib/foreman-proxy/shellhooks/print_args\ Hello\ World\! [W] [3520] Hello World!
第 18 章 搜索和书签
Satellite 对 Satellite Web UI 的大多数页面上具有强大的搜索功能。它允许您搜索 Satellite 所管理的所有资源。搜索接受自由文本和基于语法的查询,可以使用大量输入预测构建。搜索查询可以保存为书签,以便以后重复使用。
18.1. 构建搜索查询
当您开始输入搜索查询时,会出现一个有效选项列表来完成查询的当前部分。您可以从列表中选择一个选项,并使用预测来继续构建查询,或者继续输入查询。要了解搜索引擎如何解释空闲文本,请参阅 第 18.2 节 “使用自由文本搜索”。
18.1.1. 查询语法
parameter operator value
可用的字段、要搜索的资源以及查询被解释方式取决于上下文,即您执行搜索的页面。例如,Host 页面中的字段"hostgroup"等同于 Host Groups 页面中的字段"name"。字段类型还决定可用的 operator 和可接受的值。
18.1.2. 查询 Operator
下表中列出了可在 parameter 和value 之间使用的所有运算符。其他可能出现在预测查询中的符号和特殊字符(如冒号)没有特殊含义,并被视为自由文本。
表 18.1. 搜索可接受的 Operator 的比较
Operator | 短名称 | 描述 | 示例 |
---|---|---|---|
= | 等于 | 接受数字、临时或文本值。对于文本,会返回准确的区分大小写匹配。 |
|
!= | 不相等 | ||
~ | 类似于 | 接受文本或临时值。返回不区分大小写的匹配项。接受以下通配符: _ 代表单个字符,%或使用任意字符(包括 0)的字符。如果没有指定通配符,则字符串将被视为通配符:%rhel7% |
|
!~ | 不像 | ||
> | 大于 | 接受数字或临时值。对于 temporal 值,operator > 被解释为 "later than",< 作为 "earlier"。这两个运算符都可与 EQUALS 结合使用: >= <= |
|
< | 小于 | ||
^ | IN | 将表达式与值列表进行比较,如 SQL 中。返回分别包含或不包含值的匹配项。 |
|
!^ | NOT IN | ||
HAS 或 set? |
| 返回分别存在或不存在的值。 |
在 Puppet 类页面上
|
HAS 或 null? |
|
遵循描述语法的简单查询可以使用逻辑运算符 AND, OR, 和 not 合并到更复杂的语法中。另外,还接受 Operator 的替代表示法:
表 18.2. 搜索接受的逻辑 Operator
Operator | 备选通知 | 示例 | ||
---|---|---|---|---|
和 | & | && | <whitespace> |
|
或 | | | || |
|
|
not | – | ! |
|
|
18.1.3. 查询值
- 文本值
包含空格的文本必须用引号括起来。否则,空格被解释为 AND 运算符。
示例:
hostgroup = "Web servers"
搜索将返回主机组,其名为"Web servers"。
hostgroup = Web 服务器
搜索将返回主机组 Web 中的主机,并带有与 %servers% 匹配的任何字段。
- 临时值
接受许多日期和时间格式,包括:
- "2017 年 1 月 10 日"
- "2017 年 1 月 10 日"
- 10-January-2017
- 10/January/2017
- "January 10, 2017"
- 现在,是的,是好的。
避免模糊日期格式,如 02/10/2017 或 10-02-2017。
18.2. 使用自由文本搜索
当您输入自由文本时,它将在多个字段中搜索。例如,如果您输入 "64",搜索将返回在其名称、IP 地址、MAC 地址和架构中具有该数字的所有主机。
多词查询必须用引号括起来,否则空格将解释为 AND 运算符。
由于所有字段都搜索,自由文本搜索结果并不准确,搜索可能会很慢,特别是在大量主机上。因此,我们建议您避免自由文本,并尽可能使用更多基于语法的查询。
18.3. 管理书签
您可以将搜索查询保存为书签以供重复使用。您还可以删除或修改书签。
书签仅显示在其创建的页面中。在某些页面中,通用搜索提供了默认书签,例如,所有 活跃
或禁用
的主机。
18.3.1. 创建书签
本节详细介绍了如何将搜索查询保存为书签。您必须在相关页面中保存搜索查询,以便为该页面创建书签,例如,在 Hosts 页面中保存与主机相关的搜索查询。
流程
- 在 Satellite Web UI 中,导航到您要创建书签的页面。
- 在 Search 字段中输入您要保存的搜索查询。
- 选择 Search 按钮右侧的箭头,然后选择 Bookmark this search。
- 在 Name 字段中输入新书签的名称。
- 在 Search query 字段中,确保您的搜索查询正确。
确保正确设置了公共复选框 :
- 选中 Public 复选框,将书签设置为 public,并对所有用户可见。
- 清除 Public 复选框,将书签设置为私有,仅对创建它的用户可见。
- 点 Submit。
要确认创建,请选择搜索按钮右侧的箭头来显示书签列表,或者导航到 Administer > Bookmarks,然后选中书签的名称。
18.3.2. 删除书签
您可以删除书签页面上的书签。
流程
- 在 Satellite Web UI 中,导航到 Administer > Bookmarks。
- 在书签页面上,点您要删除的书签的 Delete 标记。
- 确认窗口打开后,单击 OK 以确认删除。
要确认删除,请检查 书签 的书签列表。
附录 A. 管理设置
本节介绍可以在 Satellite Web UI 中通过导航到 Administer > Settings 来编辑的设置。
A.1. 常规设置
设置 | 默认值 | 描述 |
---|---|---|
管理员电子邮件地址 | 默认管理员电子邮件地址 | |
Satellite URL | 可访问 Satellite 实例的 URL。另请参阅 Provisioning > Unattended URL。 | |
每个页面的条目 | 20 | Satellite 中每个页面显示的记录数 |
修复 DB 缓存 | 否 |
Satellite 维护权限和角色的缓存。当设置为 |
DB 待处理的 seed | 否 |
|
Capsule 请求超时 | 60 | 为从 Satellite 到 Capsule 的 HTTP 请求打开并读取超时(以秒为单位)。 |
登录页页脚文本 | 要在登录页面页脚中显示的文本。 | |
显示主机电源状态 | 是 | 显示主机索引页面上的电源状态。此功能调用计算资源提供程序,这可能会降低主机列表页面中的性能。 |
HTTP (S)代理 | 为来自 Satellite 产品的传出 HTTP (S)连接设置代理。系统范围的代理必须在操作系统级别配置。 | |
HTTP (S)代理(主机除外) | [] | 设置没有代理请求的主机名。默认排除对本地主机的请求。 |
显示实验室 | 否 | 是否显示菜单来访问实验性实验功能(需要重新加载页面)。 |
将域名附加到主机 | 是 |
如果设置为 |
不同步间隔 | 30 |
受管主机定期报告,如果报告之间的时间超过这个持续时间,则主机将被视为不同步。您可以通过在 Hosts > All hosts > $host > Edit > Parameters > Add Parameter 中添加 |
Satellite UUID | Satellite 实例 ID。唯一标识 Satellite 实例。 | |
默认语言 | 新用户的 UI 使用这个语言。 | |
默认时区 | 用于新用户的时区。 | |
实例标题 | 实例标题显示在顶部导航栏中(需要重新载入页面)。 | |
保存的审计间隔 | 保留审计数据的持续时间(以天为单位)。保留空以禁用审计清理。 | |
新主机详情 UI | 是 | Satellite 加载主机详细信息的新 UI。 |
A.2. Satellite 任务设置
设置 | 默认值 | 描述 |
---|---|---|
同步任务超时 | 120 | 在引发异常前等待同步任务完成的秒数。 |
启用 dynflow 控制台 | 是 |
启用 dynflow 控制台( |
对 dynflow 控制台需要 auth | 是 | 在访问 dynflow 控制台前,用户必须以管理权限身份进行身份验证。 |
Capsule 操作重试计数 | 4 | 失败前允许在 Capsule 上启动任务的尝试次数。 |
Capsule 操作重试间隔 | 15 | 重试之间的时间(以秒为单位)。 |
允许 Capsule 批处理任务 | 是 | 在 Capsule 上启用批处理任务。 |
Capsule 任务批处理大小 | 100 |
如果启用了 |
任务故障排除 URL |
指向任务故障排除文档的 URL。它应包含 | |
轮询间隔 | 1 | 轮询用于乘以默认轮询间隔的倍数。您可以使用此选项来防止频繁轮询长时间运行的任务。 |
A.3. 模板同步设置
设置 | 默认值 | 描述 |
---|---|---|
关联 | New | 将模板与 OS、机构和位置关联。 |
分支 | Git 存储库中的默认分支。 | |
提交消息 | Satellite 用户生成的模板导出 | 导出模板的自定义提交消息。 |
dirname | / | 包含模板的 Git 存储库中的目录。 |
Filter | 导入或导出与此正则表达式匹配的名称。不区分大小写。片段不会被过滤。 | |
强制导入 | 否 |
如果设置为 |
锁定模板 | 保留,请勿锁定新的 | 如何处理导入模板的锁定。 |
元数据导出模式 | 刷新 | 默认元数据导出模式。 可能的选项:
|
negate | 否 | 对导入或导出的过滤器进行必要处理。 |
prefix | 作为导入模板的前缀添加的字符串。 | |
仓库 | 从其中导入或导出模板的目标路径。可以使用不同的协议,例如:
当导出到 | |
详细程度 | 否 | 为 Rake 任务导入模板选择详细程度。 |
A.4. 发现的设置
设置 | 默认值 | 描述 |
---|---|---|
发现位置 | 指明要放置发现的主机的默认位置。 | |
发现机构 | 指明向其添加发现的主机的默认组织。 | |
接口事实 | discovery_bootif | 用于主接口检测的事实名称。 |
创建绑定接口 | 否 | 如果使用 LLDP 在同一 VLAN 上检测到另一个接口,则自动创建绑定接口。 |
清理所有事实 | 否 | 在置备过程中清理所有报告的事实(除发现事实外)。 |
主机名事实 | discovery_bootif | 用于主机名的事实列表(comma separated, first wins)。 |
自动置备 | 否 | 使用调配规则自动调配新发现的主机。 |
重启 | 是 | 在置备过程中自动重启或 kexec 发现的主机。 |
主机名前缀 | mac | 用于主机名的默认前缀。必须以字母开头。 |
fact 列 | 要在主机列表中显示的额外事实列(comma separated)。 | |
突出显示的事实 |
为突出显示部分组织事实 - 例如 | |
存储事实 | 为存储部分组织事实的正则表达式。 | |
软件事实 | 为软件部分组织事实的正则表达式。 | |
硬件事实 | 为硬件部分组织事实的正则表达式。 | |
网络事实 | 为 network 部分组织事实的正则表达式。 | |
IPMI 事实 | 用于组织 智能平台管理接口 (IPMI)部分的事实的正则表达式。 | |
锁定 PXE | 否 | 自动生成 预启动执行环境 (PXE)配置,以固定新发现的主机以进行发现。 |
锁定 PXELinux 模板名称 | pxelinux_discovery | 在固定要发现主机时要使用的 pxelinux 模板。 |
锁定 PXEGrub 模板名称 | pxegrub_discovery | 固定主机以进行发现时使用的 PXEGrub 模板。 |
锁定 PXEGrub2 模板名称 | pxegrub2_discovery | 在固定主机以进行发现时,要使用的 PXEGrub2 模板。 |
强制 DNS | 是 | 在置备发现的主机时强制创建 DNS 条目。 |
现有 NIC 中的错误 | 否 | 不允许发现与置备 网络接口卡 (NIC) (早期为 out)匹配的现有受管主机。 |
名称生成器类型 | 事实 + 前缀 | 发现主机名命名模式。 |
首选 IPv6 | 否 | 在调用发现的节点时,首选 IPv6 到 IPv4。 |
A.5. 引导磁盘设置
设置 | 默认值 | 描述 |
---|---|---|
iPXE 目录 |
| 包含 iPXE 镜像的目录的路径。 |
ISOLINUX 目录 |
| 包含 ISOLINUX 镜像的目录的路径。 |
SYSLINUX 目录 |
| 包含 SYSLINUX 镜像的目录的路径。 |
Grub2 目录 |
|
包含 |
主机镜像模板 | 引导磁盘 iPXE - 主机 | 用于特定于主机的引导磁盘的 iPXE 模板。 |
通用镜像模板 | 引导磁盘 iPXE - 通用主机 | 用于通用主机引导磁盘的 iPXE 模板。 |
通用 Grub2 EFI 镜像模板 | 引导磁盘 Grub2 EFI - 通用主机 | 用于通用 可扩展固件接口( EFI)主机引导磁盘的 Grub2 模板。 |
ISO 生成命令 | genisoimage |
要生成 ISO 镜像,请使用 |
安装介质缓存 | 是 | 为完整主机镜像缓存安装介质文件。 |
允许的 bootdisk 类型 | [generic, host, full_host, subnet] | 允许的 bootdisk 类型列表。留空来禁用它。 |
A.6. 红帽云设置
设置 | 默认值 | 描述 |
---|---|---|
自动清单上传 | 是 | 启用自动将主机清单上传到红帽云。 |
自动同步建议 | 否 | 启用来自红帽云的 Insights 建议自动同步。 |
模糊主机名 | 否 | 发送到红帽云的模糊主机名. |
模糊的主机 ipv4 地址 | 否 | 发送到红帽云的模糊 IPv4 地址。 |
RHC 守护进程的 ID | ***** | RHC 守护进程 ID. |
A.7. 内容设置
设置 | 默认值 | 描述 |
---|---|---|
默认 HTTP 代理 | 用于同步内容的默认 HTTP 代理。 | |
CDN SSL 版本 | 用于与 CDN 通信的 SSL 版本。 | |
默认同步 OS 置备模板 | Kickstart 默认 | 从同步内容创建的操作系统的默认置备模板。 |
默认同步 OS 完成模板 | Kickstart 默认完成 | 从同步内容创建的新操作系统的默认完成模板。 |
默认同步 OS user-data | Kickstart 默认用户数据 | 从同步内容创建的新操作系统的默认用户数据。 |
默认同步 OS PXELinux 模板 | Kickstart 默认 PXELinux | 从同步内容创建的新操作系统的默认 PXELinux 模板。 |
默认同步 OS PXEGrub 模板 | Kickstart 默认 PXEGrub | 从同步内容创建的新操作系统的默认 PXEGrub 模板。 |
默认同步 OS PXEGrub2 模板 | Kickstart 默认 PXEGrub2 | 从同步内容创建的新操作系统的默认 PXEGrub2 模板。 |
默认同步 OS iPXE 模板 | Kickstart 默认 iPXE | 从同步内容创建的新操作系统的默认 iPXE 模板。 |
默认同步 OS 分区表 | Kickstart 默认 | 从同步内容创建的新操作系统的默认分区表。 |
默认同步 OS kexec 模板 | 发现 Red Hat kexec | 从同步内容创建的新操作系统的默认 kexec 模板。 |
默认同步 OS Atomic 模板 | Atomic Kickstart 默认 | 用于从同步内容创建的新原子操作系统的默认置备模板。 |
清单刷新超时 | 1200 | 刷新清单时的超时时间(以秒为单位)。 |
接受操作超时 | 20 | 等待主机获取远程操作的时间(以秒为单位)。 |
完成操作超时 | 3600 | 等待主机完成远程操作的时间(以秒为单位)。 |
启用订阅连接 | 是 | 可与红帽门户网站通信以进行订阅。 |
来自内容视图的可安装勘误 | 否 | 仅根据主机的内容视图和生命周期阶段中的勘误表计算勘误表主机状态。 |
限制组合内容视图提升 | 否 | 如果启用,则无法发布或提升复合内容视图,除非目标环境中包括的组件内容视图版本。 |
在操作前检查服务 | 是 | 在执行操作前,检查 pulp 和 candlepin 等后端服务的状态? |
同步存储库的批处理大小 | 100 | 在 Capsule 上应同时同步多少个存储库。较小的数字可能会导致同步时间较长。较大的数字会增加 dynflow 负载。 |
在内容视图提升后同步 Capsule | 是 | 在内容视图提升后是否自动同步 Capsule 。 |
默认自定义仓库下载策略 |
|
自定义存储库的默认下载策略。 |
默认红帽仓库下载策略 |
|
启用的红帽软件仓库的默认下载策略。 |
默认 Capsule 下载策略 |
|
Capsule 同步的默认下载策略。 |
Pulp 导出目标文件路径 |
| 导出的存储库的磁盘位置。 |
Pulp 3 导出目标文件路径 |
| Pulp 3 导出的存储库的磁盘位置。 |
Pulp 客户端密钥 |
| 用于 Pulp 服务器身份验证的 SSL 密钥的路径。 |
Pulp 客户端证书 |
| 用于 Pulp 服务器身份验证的 SSL 证书路径。 |
同步连接超时 | 300 | 同步时连接的总超时时间(以秒为单位)。 |
默认使用远程执行 | 否 | 如果启用,则使用远程执行而不是 katello-agent 进行远程操作。 |
取消注册后删除主机 | 否 | 使用 subscription-manager 取消主机注册时,还要删除主机记录。链接到主机(如虚拟机和 DNS 记录)的受管资源也可能被删除。 |
订阅管理器名称注册事实 |
使用 subscription-manager 注册主机时,请强制将指定的事实用于主机名(以 | |
订阅管理器名称注册事实严格匹配 | 否 |
如果启用了,并且设置了 |
默认位置订阅的主机 | 默认位置 | 注册后存储新订阅的主机的默认位置。 |
很快过期 | 120 | 在提醒续订前,订阅中剩余的天数。 |
内容视图依赖默认值 | 否 | 新内容视图的默认依赖关系值。 |
主机 Duplicate DMI UUID | [] | 如果主机因为重复的 桌面管理接口 (DMI) UUID 而无法注册,请在此处添加用逗号分开的值。后续注册会为受影响的主机生成唯一的 DMI UUID。 |
主机配置文件断言 | 是 | 启用新主机注册,以假定注册带有匹配主机名的配置集,只要其他主机不使用注册 DMI UUID。 |
主机配置文件可以在构建中更改 | 否 | 启用主机注册以绕过 Host Profile Assume,只要主机处于构建模式。 |
主机只能重新注册构建 | 否 | 只有在主机处于构建模式时,才启用主机重新注册。 |
主机任务工作池大小 | 5 | 池中 worker 数量,用于处理主机相关任务的执行。当设置为 0 时,会使用默认队列。需要重启 dynflowd/foreman-tasks 服务。 |
适用的批处理大小 | 50 | 每个任务处理的主机适用计算数。 |
Autosearch | 是 | 对于支持它的页面,在搜索输入时自动执行搜索。 |
Autosearch delay | 500 | 如果启用了 Autosearch,在输入时在执行搜索前以毫秒为单位进行延迟。 |
Pulp 批量负载大小 | 2000 | 从单个页面 Pulp API 调用中获取的项目数量。 |
上传没有 Dynflow 的配置集 | 是 | 启用 Katello 以更新主机安装的软件包、启用的存储库和模块清单,而不是直接嵌套 Dynflow 任务(如果 Puma 进程使用太多内存,则关闭它。 |
孤立内容保护时间 | 1440 | 将孤立内容视为孤立的时间(以分钟为单位)。 |
首选通过 Capsule 注册进行远程执行 | 否 | 首选使用在使用远程执行时注册主机的代理。 |
允许在公布的内容视图中删除存储库 | 是 | 启用删除用户之前在一个或多个内容视图版本中发布的存储库。 |
A.8. 身份验证设置
设置 | 默认值 | 描述 |
---|---|---|
OAuth 活跃 | 是 | Satellite 将使用 OAuth 进行 API 授权。 |
OAuth 使用者密钥 | ***** | OAuth 使用者密钥。 |
OAuth 使用者 secret | ***** | OAuth 使用者机密。 |
OAuth 映射用户 | 否 | Satellite 根据 request-header 中的用户名来映射用户。如果禁用,OAuth 请求具有管理员权限。 |
登录尝试限制失败 | 30 | 在指定次数失败尝试后,Satellite 会阻止用户从传入 IP 地址登录 5 分钟。设置为 0 以禁用括号强制保护。 |
限制注册的 Capsule | 是 | 只有已知的 Capsule 可以访问使用 Capsule 身份验证的功能。 |
需要 SSL 需要过期 | 是 |
客户端 SSL 证书用于识别 Capsules (也应启用 |
可信主机 | [] | 除了 Capsule 之外,访问事实/报告导入器和 ENC 输出外要信任的主机名、IPv4、IPv6 地址或子网的列表。 |
SSL 证书 |
| Satellite 用于与其代理通信的 SSL 证书路径。 |
SSL CA 文件 |
| Satellite 用于与其代理通信的 SSL CA 文件路径。 |
SSL 私钥 |
| Satellite 用于与其代理通信的 SSL 私钥路径。 |
SSL 客户端 DN env | HTTP_SSL_CLIENT_S_DN | 包含来自客户端 SSL 证书的主题 DN 的环境变量。 |
SSL 客户端验证 env | HTTP_SSL_CLIENT_VERIFY | 包含客户端 SSL 证书的验证状态的环境变量。 |
SSL 客户端证书环境变量 | HTTP_SSL_CLIENT_CERT | 包含客户端的 SSL 证书的环境变量。 |
服务器 CA 文件 | 模板中使用的 SSL CA 文件路径来验证与 Satellite 的连接。 | |
Websocket SSL 密钥 |
| Satellite 用来加密 websocket 的私钥文件路径。 |
Websocket SSL 证书 |
| Satellite 用来加密 websocket 的证书路径。 |
Websocket 加密 | 是 |
VNC/SPICE websocket 代理控制台访问加密(需要 |
登录委托注销 URL | 在注销时将您的用户重定向到此 URL。启用 Authorize 登录委派。 | |
授权登录委托身份验证源用户 autocreate | 外部 | 创建未知外部经过身份验证的用户的外部身份验证源的名称(请参阅 Authorize login delegation)。空意味着没有自动创建。 |
授权登录委托 | 否 |
使用 |
授权登录委托 API | 否 |
使用 |
闲置超时 | 60 | 在指定分钟后注销闲置用户。 |
bcrypt 密码成本 | 9 | 用于内部 auth-sources 的 bcrypt 密码哈希函数的成本值(439)- the30)。更高的值是更安全的,但验证速度较慢,特别是用于无状态 API 调用和 UI 登录。需要更改密码来影响现有密码。 |
BMC 凭证访问 | 是 | 允许通过 ENC YAML 输出和模板中访问 BMC 接口密码。 |
OIDC JWKs URL |
OpenID Connect JSON Web 密钥集 (JWKS) URL。通常,在使用 Keycloak 作为 OpenID 供应商时 | |
OIDC Audience | [] | 用于身份验证的 OpenID Connect Audience 的名称。如果是 Keycloak,这是客户端 ID。 |
OIDC Issuer |
签发者声明标识发布 JSON Web 令牌 (JWT)的主体,该主体存在于大多数 OpenID 供应商时位于 | |
OIDC Algorithm | 用于编码 OpenID 提供程序中的 JWT 的算法。 |
A.9. 电子邮件设置
设置 | 默认值 | 描述 |
---|---|---|
电子邮件回复地址 | Satellite 发送的电子邮件回复地址。 | |
电子邮件主题前缀 | 添加到所有传出电子邮件的前缀。 | |
发送欢迎电子邮件 | 否 | 向新用户发送一个包括用户名和 URL 的欢迎电子邮件。 |
交付方法 | sendmail | 用于发送电子邮件的方法。 |
SMTP 启用 StartTLS auto | 是 | SMTP 自动启用 StartTLS。 |
SMTP OpenSSL 验证模式 | 默认验证模式 | 使用 TLS 时,您可以设置 OpenSSL 如何检查证书。 |
SMTP 地址 | 要连接的 SMTP 地址。 | |
SMTP 端口 | 25 | 要连接的 SMTP 端口。 |
SMTP HELO/EHLO 域 | HELO/EHLO 域. | |
SMTP 用户名 | 用于身份验证的用户名(如果需要)。 | |
SMTP 密码 | ***** | 用于验证的密码(如果需要)。 |
SMTP 身份验证 | none | 如果需要,指定验证类型。 |
Sendmail 参数 | -i | 为 sendmail 指定附加选项。仅在发送方法设为 sendmail 时使用。 |
Sendmail 位置 |
| sendmail 可执行文件的位置。仅在发送方法设为 sendmail 时使用。 |
A.10. 通知设置
设置 | 默认值 | 描述 |
---|---|---|
RSS 启用 | 是 | 拉取 RSS 通知。 |
RSS URL | https://www.redhat.com/en/rss/blog/channel/red-hat-satellite | 要从中获取 RSS 通知的 URL。 |
A.11. 置备设置
设置 | 默认值 | 描述 |
---|---|---|
主机所有者 | 如果空 Satellite 使用当前用户,则在置备的主机上默认所有者。 | |
root 密码 | ***** | 置备的主机上的默认加密 root 密码。 |
无人值守 URL | 主机在构建期间从中检索模板的 URL。当它以 https、无人值守或用户数据开始时,无法使用 HTTP 访问控制器。 | |
Securemode 渲染 |
|
启用置备模板的安全模式渲染。default 和 recommended 选项
当设置为 |
在没有构建的情况下无人值守访问 | 否 | 启用在没有使用构建模式的情况下对无人值守 URL 的访问。 |
查询本地名称服务器 | 否 | Satellite 查询本地配置的解析器而不是 SOA/NS 权威。 |
安装令牌生命周期 | 360 | 安装令牌应有效的时间(以分钟为单位)。设置为 0 以禁用令牌。 |
SSH 超时 | 120 | SSH 置备超时前的时间(以秒为单位)。 |
libvirt 默认控制台地址 | 0.0.0.0 | 使用 libvirt 置备新虚拟机时用于控制台侦听地址的 IP 地址。 |
从构建的请求更新 IP | 否 | Satellite 使用发出构建请求的 IP 更新主机 IP。 |
为虚拟机使用短名称 | 否 | Satellite 使用短主机名而不是 FQDN 来创建新虚拟机。 |
DNS 超时 | [5, 10, 15, 20] |
DNS 查找尝试的超时列表(以秒为单位),如 |
清理失败的部署 | 是 | 如果调配脚本以非零退出代码结尾,Satellite 将删除虚拟机。 |
名称生成器类型 |
| 指定创建新主机时用于生成主机名的方法。
默认
|
默认 PXE 全局模板条目 |
全局模板中的默认 PXE 菜单项 - | |
默认 PXE 本地模板条目 |
本地模板中的默认 PXE 菜单项 - | |
iPXE 中间脚本 | iPXE 中间脚本 | 用于无人值守安装的中间 iPXE 脚本。 |
在主机删除时销毁关联的虚拟机 | 否 | 销毁主机删除上的关联虚拟机。启用后,连接到主机的虚拟机在计算资源上被删除。禁用后,当主机被删除时,虚拟机会被取消链接,这意味着它们保留在计算资源中,并可重新关联或重新导入 Satellite。这不会自动关闭虚拟机 |
最大结构化事实 | 100 |
结构化子树中的最大键数,统计数据存储在 |
默认全局注册模板 | 全局注册 | 全局注册模板。 |
默认"主机初始配置"模板 | Linux host_init_config default | 默认"主机初始配置"模板,在创建新操作系统时自动分配。 |
全局默认 PXEGrub2 模板 | PXEGrub2 全局默认值 | 全局默认的 PXEGrub2 模板。此模板被部署到所有配置的 TFTP 服务器。它不受升级的影响。 |
全局默认 PXELinux 模板 | pxelinux 全局默认值 | 全局默认 PXELinux 模板。此模板被部署到所有配置的 TFTP 服务器。它不受升级的影响。 |
全局默认 PXEGrub 模板 | PXEGrub 全局默认值 | 全局默认的 PXEGrub 模板。此模板被部署到所有配置的 TFTP 服务器。它不受升级的影响。 |
全局默认的 iPXE 模板 | iPXE 全局默认值 | 全局默认的 iPXE 模板。此模板被部署到所有配置的 TFTP 服务器。它不受升级的影响。 |
本地引导 PXEGrub2 模板 | PXEGrub2 默认本地引导 | 选择作为本地引导的默认 PXEGrub2 的模板。 |
本地引导 PXELinux 模板 | pxelinux 默认本地引导 | 选择作为本地引导的默认 PXELinux 默认的模板。 |
本地引导 PXEGrub 模板 | PXEGrub 默认本地引导 | 选择为本地引导的默认 PXEGrub 的模板。 |
本地 boot iPXE 模板 | iPXE 默认本地引导 | 选择用于本地引导的 iPXE 默认的模板。 |
管理 PuppetCA | 是 | Satellite 在调配新主机时自动执行证书签名请求。 |
使用 UUID 的证书 | 否 | Satellite 为证书签名使用随机 UUID ,而不是主机名。 |
显示不支持的置备模板 | 否 | 显示不受支持的置备模板。启用后,会显示所有可用的模板。禁用后,仅显示红帽支持的模板。 |
A.12. 事实设置
设置 | 默认值 | 描述 |
---|---|---|
上传事实时创建新主机 | 是 | Satellite 在收到新事实时创建主机。 |
位置事实 | satellite_location | 在 Puppet 运行后创建的主机放置在此事实指定的位置。 |
机构事实 | satellite_organization | 在 Puppet 运行后创建的主机放置在此事实指定的机构中。此事实的内容应当是组织的完整标签。 |
默认位置 | 默认位置 | 在 Puppet 运行后创建的主机,不发送位置事实(fact)放置到此位置。 |
默认机构 | 默认机构 | 在 Puppet 运行后创建的主机,不发送组织事实(fact)在此机构中。 |
从事实更新 hostgroup | 是 | Satellite 从其事实中更新主机的 hostgroup。 |
忽略操作系统的事实 | 否 | 从事实停止更新操作系统。 |
忽略域的事实 | 否 | 停止从事实中更新域值。 |
从事实更新子网 | 无 | Satellite 从其事实中更新主机的子网。 |
忽略用于置备的接口事实 | 否 | 停止从事实中更新 IP 和 MAC 地址值(影响所有接口)。 |
忽略具有匹配标识符的接口 |
[ |
跳过使用与传入事实中的值匹配的标识符创建或更新主机网络接口对象。您可以使用 kiosk 通配符来匹配与索引的标识符,如 |
satellite 中存储的事实的排除模式 |
[ |
所有导入的事实类型(VT、Ansible、rhsm)的排除模式。这些事实不存储在 satellite 数据库中。您可以使用 * 通配符来匹配带有 indexes 的名称,例如: |
A.13. 配置管理设置
设置 | 默认值 | 描述 |
---|---|---|
上传报告时创建新主机 | 是 | Satellite 在收到报告时创建主机。 |
匹配者继承 | 是 | 在评估主机组、机构和位置的智能类参数时,Satellite 匹配者由子项继承。 |
默认参数查找路径 |
[ FQDN , | 默认情况下,Satellite 会按此顺序评估主机智能类参数。 |
参数中插入的 ERB | 是 | Satellite 在 ENC 输出中的参数值中解析 ERB。 |
始终显示配置状态 | 否 | 即使没有分配 Puppet Capsule,所有主机也会显示配置状态。 |
A.14. 远程执行设置
设置 | 默认值 | 描述 |
---|---|---|
回退到任何 Capsule | 否 | 使用远程执行搜索主机以获取任何代理。当主机没有子网或者子网没有执行代理时,这非常有用。 |
启用全局 Capsule | 是 | 在分配给主机的代理外搜索远程执行代理。搜索仅限于主机的组织和位置。 |
SSH 用户 | root |
用于 SSH 的默认用户。您可以通过设置 |
有效的用户 | root | 用于执行脚本的默认用户。如果用户与 SSH 用户不同,则使用 su 或 sudo 来切换用户。 |
有效的用户方法 | sudo |
用于切换到有效用户的命令。[ |
有效用户密码 | ***** | 有效用户密码。请参阅受影响的用户。 |
同步作业模板 | 是 |
运行 |
SSH 端口 | 22 |
用于 SSH 通信的端口。默认端口 22。您可以通过设置 |
通过 IP 连接 | 否 |
主机接口上的 IP 地址优先于 FQDN。当 DNS 没有正确解析 FQDN 时,它很有用。您可以通过设置 |
首选 IPv6 over IPv4 | 否 |
使用 IP 地址连接时,首选 IPv6 地址?如果没有设置 IPv6 地址,它会自动回退到 IPv4。您可以通过设置 |
默认 SSH 密码 | ***** |
用于 SSH 的默认密码。您可以通过设置 |
默认 SSH 密钥密码短语 | ***** |
用于 SSH 的默认密钥密码短语。您可以通过设置 |
Worker 池大小 | 5 |
处理远程执行作业的 worker 数量。需要重启 |
清理工作目录 | 是 |
任务完成后是否删除了工作目录。您可以通过设置 |
cockpit URL | 查找 Web 控制台按钮的 Cockpit 实例的位置。默认情况下不会显示任何按钮。 | |
表单作业模板 | 运行命令 - SSH 默认 | 选择以作业调用表单预先选择的作业模板。 |
任务调用报告模板 | 作业 - 调用报告模板 | 选择用于为特定远程执行作业生成报告的报告模板。 |
A.15. Ansible 设置
设置 | 默认值 | 描述 |
---|---|---|
私钥路径 |
使用此选项提供 Ansible 使用 SSH 私钥的路径,而不是密码。使用 | |
连接类型 | ssh |
在运行 Ansible playbook 时,默认使用此连接类型。您可以通过添加 |
Dan 证书验证 | validate |
在运行 Ansible playbook 时启用或禁用 OpenFlow 服务器证书验证。您可以通过添加 |
默认详细程度 | Disabled | 在运行 Ansible playbook 时,Satellite 为额外的调试输出添加了此详细程度。 |
部署后超时 | 360 | Satellite 在主机完全置备后触发 Ansible 角色任务 playbook 时要设置的超时(以秒为单位)。把它设置为您预期主机在重启后的最大时间,直到其就绪为止。 |
Ansible 报告超时 | 30 | 主机应报告的时间(以分钟为单位)。 |
Ansible 未禁用同步 | 否 | 在报告未在配置的间隔内到达 Ansible 后,禁用主机配置状态关闭 Ansible 的同步。 |
默认 Ansible 清单报告模板 | Ansible - Ansible 清单 | Satellite 使用此模板来调度 Ansible 清单的报告。 |
要忽略的 Ansible 角色 | [] |
从 Capsule 导入角色时要排除的角色。预期的输入是以逗号分开的值,您可以使用 sVirt 通配符 meta 字符。例如: |
Ansible 的 Capsule 任务批处理大小 |
如果启用了 |