由 RHEL Lightspeed 提供支持的红帽企业 Linux(RHEL)命令行助理离线版现已作为开发人员预览版向现有红帽卫星订阅用户开放。这以独立的格式提供了 RHEL 命令行助手的强大功能,可以在工作站或单个 RHEL 系统上本地运行。这使得助手能够在完全断开连接、脱机或隔离的环境中运行,因为它不需要任何外部网络连接来运行。命令行助理提供 AI 驱动的指导和建议,帮助您完成各种 RHEL 任务。我们扩展了它有关 RHEL 安装和升级主题的知识,使您即使在连接受限或没有连接的情况下也能获得这些方面的帮助。
架构概述
命令行助理的离线版本作为一组可与 Podman 一起运行的容器镜像提供。 使用的容器有:
- 安装程序容器:拉取其他必要的容器,安装 rhel-cla 命令,并选择性地创建 systemd 服务
- rlsapi 容器:提供命令行助理客户端与之通信的端点
- rag-database 容器:检索增强型生成 (RAG) 数据库,用于通过 RHEL 文档等其他数据补充 LLM 的知识
- ramalama 容器:提供 LLM 推理
前提条件和要求
红帽卫星订阅为您提供了在本地管理 RHEL 环境的工具。这些工具包括卫星产品本身,以及最近推出的红帽线下知识门户(提供红帽独家知识内容的线下版本)。我们现在扩展了卫星订阅,还提供了 RHEL 命令行助手的离线版本。
命令行助理的离线版本作为一组容器提供,可以在 RHEL 系统或 Mac 或 Windows 工作站上运行。如果您使用的是 Mac 系统,则需要 Podman Desktop,建议使用配备 NVIDIA、AMD 或 Mac M 系列 GPU 的系统。
硬件要求
仅 CPU 系统(RHEL 9.6+ 和 10+ / Fedora 42 / Windows 11):
- RAM:8 GB
- CPU 核心数:2
支持 GPU 的系统(RHEL 9.6+ 和 10+ / Fedora 42 / Windows 11):
- RAM:4 GB
- GPU:至少 4 GB VRAM
Apple 系统 (macOS 15.x):
- M2 芯片或更新版本
所有系统:
- 可用磁盘空间:10 GB
开始使用
红帽容器注册表中提供了 RHEL 命令行助理离线版本的容器镜像,可供所有拥有卫星订阅的客户使用。首先对红帽容器注册表进行身份验证: $ podman login registry.redhat.io
您可以使用安装程序容器来执行安装。 此容器会拉取其他所需的容器,安装 rhel-cla 命令,并选择性地创建 systemd 服务。 systemd 服务可用于您希望在每次系统启动时自动启动离线 RHEL 命令行助手容器的环境。
在运行安装程序之前,请验证您的主目录中是否存在 ~/.config 和 ~/.local/bin 目录。若要启动安装程序容器,请使用以下命令:
$ podman run -u : --rm -v $HOME/.config:/config:Z \
-v $HOME/.local/bin:/config/.local/bin:Z \
registry.redhat.io/rhel-cla/installer-rhel10:latest \
install-systemd
如果您不想安装 systemd 服务,请不要在命令末尾包含 install-systemd 参数。
安装完成后,您可以使用 rhel-cla 命令来启动、停止、卸载或检查脱机 RHEL 命令行助理的状态。 在 Mac 上,您必须使 rhel-cla 命令成为可执行文件:
$ chmod +x ~/.local/bin/rhel-cla
启动 RHEL 命令行助手的离线版本:
$ rhel-cla start
这会生成输出,但您需要查找的只是指示一切都已成功启动的消息:
✅ RHEL CLA pod 正在运行!
服务可从以下位置获得:
- API: http://localhost:8000
- 模型服务器: http://localhost:8888
- 数据库: localhost:5432
配置 GPU
下一步是在 ~/.config/rhel-cla/.env 文件中配置 GPU。 在文本编辑器中打开此文件,然后完成以下配置:
- 将 LLAMACPP_IMAGE 变量设置为适合您的 GPU 硬件的 RamaLama 容器。 文件中的注释提供了更多详细信息
- 将 HOST_DEVICE 变量设置为您的 GPU 的设备。
- 根据需要,设置 NVIDIA 特定的变量。文件中的注释提供了这方面的更多详细信息。
RHEL 命令行助手的离线版本包含 Microsoft Phi4-mini LLM 模型。您可以通过更新 LLM 变量来使用不同的模型。
更改任何配置设置后,重新启动脱机 RHEL 命令行助手:
$ rhel-cla stop
$ rhel-cla start
配置命令行助理客户端
在 RHEL 系统上安装 command-line-assistant 软件包:
$ sudo dnf install command-line-assistant
默认情况下,命令行助理客户端配置为使用在线 RHEL Lightspeed 服务。更新 /etc/xdg/command-line-assistant/config.toml 文件中的端点配置选项,使其指向托管离线 RHEL 命令行助手容器的系统。在我的环境中,我在同一系统上运行命令行助理客户端和离线容器,因此我会将端点更新为启动命令行助理服务后提供的值: endpoint = "http://127.0.0.1:8000/"
如果 RHEL 命令行助理容器的离线版本与命令行助理客户端位于不同的系统上,则可能需要在防火墙中打开端口 8000。
对命令行助理客户端配置进行更改后,您必须重新启动命令行助理守护进程 (clad)(如果当前正在运行):
$ sudo systemctl restart clad
用法
此时,一切都已配置,因此您可以使用命令行助手来获取有关 RHEL 主题的帮助。您可以向它询问与安装 RHEL、故障排除等相关的问题。例如:
$ c "what is an immutable file?"
+ Asking RHEL Lightspeed
此功能使用了 AI 技术。不要在您的输入中包含任何个人信息或其他敏感信息。互动可用于改进红帽的产品或服务。
您好!很高兴您有兴趣了解不可变文件。不可变文件是指在创建后无法修改、删除或重命名的文件。这一概念通常在系统中用于确保数据完整性和安全性。
在红帽企业 Linux 中,您可以使用 chattr 命令创建不可变文件。示例如下:
[bash] Snippet
sudo chattr +i filename
此命令将使名为 filename 的文件不可变。您可以使用 lsattr 命令验证文件是否不可变:
[bash] Snippet
lsattr filename
输出将在文件名旁边显示 i 属性,表示它是不可变的。
请记住,如果您尝试修改、删除或重命名不可变文件,您将收到错误消息。您可以将 -i 选项与 chattr 命令搭配使用,以删除不变性属性:
[bash] Snippet
sudo chattr -i filename
希望对您有所帮助!如果您有任何其他问题,请告诉我。
在使用 AI 生成的内容之前,请务必对其进行审查。
第一个查询响应延迟
第一次启动聊天会话时,模型将加载到系统内存中。这可能会导致仅第一个问题的响应速度较慢。
仅 CPU 系统
命令行助理的响应时间取决于所使用的硬件。虽然可以通过 CPU 推理在没有 GPU 的系统上使用脱机 RHEL 命令行助手,但这会导致响应时间变慢。
RHEL 9.6 和 RHEL 10 中提供的命令行助手客户端软件包会在 30 秒后超时。此 30 秒超时目前不可配置,但计划在 RHEL 9.7 和 RHEL 10.1 中更新命令行助手软件包,使其具有可配置的超时。
此外,您可能会遇到第一个查询响应时间缓慢的情况(如上所述),这可能会触发 30 秒超时。
适用于单个系统用例
RHEL 命令行助手的离线版本适用于单个系统用例。例如,它可以托管在 RHEL 系统上,并由该系统上的命令行助理客户端使用,或者它可以托管在具有单个 RHEL 工作站的服务器上,该工作站配置了命令行助理客户端以指向服务器等。它不适合通过多个 RHEL 命令行助手客户端连接到托管离线命令行助手的系统来横向扩展。
结论
推出新的 RHEL 命令行助手离线版本,标志着在离线或断网环境中为 RHEL 用户提供支持方面实现了重大飞跃。对于经常在隔离网络、远程位置或互联网连接有限的环境中操作的 RHEL 用户来说,这款功能强大、独立的 AI 驱动助理提供了宝贵的资源。
过去,在离线环境中访问文档和故障排除信息等资源一直是一项重大挑战,可能会导致停机时间增加和沮丧。RHEL 命令行助手的离线版本可以帮助解决这一痛点,它将由 RHEL Lightspeed 支持的丰富知识和 AI 驱动的问题解决功能直接带到您的指尖,不受网络可用性的影响。
有关 RHEL 命令行助手离线版本的更多详情,请参阅文档。
关于作者
Brian Smith is a product manager at Red Hat focused on RHEL automation and management. He has been at Red Hat since 2018, previously working with public sector customers as a technical account manager (TAM).