附录 A. 为 Red Hat Virtualization Manager 安装配置本地仓库
要在没有与 Content Delivery Network 直接连接的系统中安装 Red Hat Virtualization Manager,请在有互联网访问的系统中下载所需软件包,然后创建一个可与离线管理器机器共享的软件仓库。托管存储库的系统必须连接到与要安装的软件包的客户端系统相同的网络。
先决条件
- 在可访问 Content Delivery Network 的系统中安装 Red Hat Enterprise Linux 8 服务器。这个系统下载所有必要的软件包,并将其分发到离线系统中。
- 有大量可用磁盘空间。这个过程下载大量软件包,并最多需要 50GB 的可用磁盘空间。
首先,在在线系统中启用 Red Hat Virtualization Manager 软件仓库:
启用 Red Hat Virtualization Manager 存储库
您需要登录并使用 Red Hat Subscription Manager 注册在线机器,附加 Red Hat Virtualization Manager
订阅并启用 Manager 软件仓库。
流程
使用 Content Delivery Network 注册您的系统,在提示时输入您的客户门户网站用户名和密码:
subscription-manager register
# subscription-manager register
Copy to Clipboard Copied! 注意如果您使用 IPv6 网络,请使用 IPv6 转换机制来访问 Content Delivery Network 和 subscription Manager。
查找
Red Hat Virtualization Manager
订阅池并记录池 ID:subscription-manager list --available
# subscription-manager list --available
Copy to Clipboard Copied! 使用池 ID 将订阅附加到系统:
subscription-manager attach --pool=pool_id
# subscription-manager attach --pool=pool_id
Copy to Clipboard Copied! 注意查看当前附加的订阅:
subscription-manager list --consumed
# subscription-manager list --consumed
Copy to Clipboard Copied! 列出所有启用的软件仓库:
dnf repolist
# dnf repolist
Copy to Clipboard Copied! 配置存储库:
subscription-manager repos \ --disable='*' \ --enable=rhel-8-for-x86_64-baseos-eus-rpms \ --enable=rhel-8-for-x86_64-appstream-eus-rpms \ --enable=rhv-4.4-manager-for-rhel-8-x86_64-rpms \ --enable=fast-datapath-for-rhel-8-x86_64-rpms \ --enable=jb-eap-7.4-for-rhel-8-x86_64-rpms \ --enable=openstack-16.2-cinderlib-for-rhel-8-x86_64-rpms \ --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms \ --enable=rhel-8-for-x86_64-appstream-tus-rpms \ --enable=rhel-8-for-x86_64-baseos-tus-rpms
# subscription-manager repos \ --disable='*' \ --enable=rhel-8-for-x86_64-baseos-eus-rpms \ --enable=rhel-8-for-x86_64-appstream-eus-rpms \ --enable=rhv-4.4-manager-for-rhel-8-x86_64-rpms \ --enable=fast-datapath-for-rhel-8-x86_64-rpms \ --enable=jb-eap-7.4-for-rhel-8-x86_64-rpms \ --enable=openstack-16.2-cinderlib-for-rhel-8-x86_64-rpms \ --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms \ --enable=rhel-8-for-x86_64-appstream-tus-rpms \ --enable=rhel-8-for-x86_64-baseos-tus-rpms
Copy to Clipboard Copied! 将 RHEL 版本设置为 8.6:
subscription-manager release --set=8.6
# subscription-manager release --set=8.6
Copy to Clipboard Copied! 启用
pki-deps
模块。dnf module -y enable pki-deps
# dnf module -y enable pki-deps
Copy to Clipboard Copied! 启用
postgresql
模块的版本 12。dnf module -y enable postgresql:12
# dnf module -y enable postgresql:12
Copy to Clipboard Copied! 启用
nodejs
模块的版本 14:dnf module -y enable nodejs:14
# dnf module -y enable nodejs:14
Copy to Clipboard Copied! 同步安装的软件包,将它们更新至最新可用版本。
dnf distro-sync --nobest
# dnf distro-sync --nobest
Copy to Clipboard Copied!
其它资源
有关模块和模块流的详情,请参考安装、管理和删除用户空间组件中的以下部分。
配置离线存储库
未连接到互联网的服务器可以使用文件传输协议(FTP)访问其他系统上的软件存储库。要创建 FTP 软件仓库,在预期的管理器机器中安装和配置
vsftpd
:安装
vsftpd
软件包:dnf install vsftpd
# dnf install vsftpd
Copy to Clipboard Copied! 启用匿名用户的 FTP 访问权限,以便从预期管理器计算机访问 rpm 文件,并保证其安全,禁用 ftp 服务器上的写入操作。编辑
/etc/vsftpd/vsftpd.conf
文件并更改anonymous_enable
和write_enable
的值,如下所示:anonymous_enable=YES write_enable=NO
anonymous_enable=YES write_enable=NO
Copy to Clipboard Copied! 启动 vsftpd 服务,并确保该服务在引导时启动:
systemctl start vsftpd.service systemctl enable vsftpd.service
# systemctl start vsftpd.service # systemctl enable vsftpd.service
Copy to Clipboard Copied! 创建一条防火墙规则来允许 FTP 服务并重新载入
firewalld
服务以应用更改:firewall-cmd --permanent --add-service=ftp firewall-cmd --reload
# firewall-cmd --permanent --add-service=ftp # firewall-cmd --reload
Copy to Clipboard Copied! Red Hat Enterprise Linux 8 默认强制 SELinux,因此配置 SELinux 以允许 FTP 访问:
setsebool -P allow_ftpd_full_access=1
# setsebool -P allow_ftpd_full_access=1
Copy to Clipboard Copied! 在
/var/ftp/pub/
目录中创建一个子目录,其中下载的软件包可用:mkdir /var/ftp/pub/rhvrepo
# mkdir /var/ftp/pub/rhvrepo
Copy to Clipboard Copied!
从所有配置的软件存储库下载软件包到
rhvrepo
目录。这包括附加到系统的所有 Content Delivery Network 订阅池以及任何本地配置的软件仓库:reposync -p /var/ftp/pub/rhvrepo --download-metadata
# reposync -p /var/ftp/pub/rhvrepo --download-metadata
Copy to Clipboard Copied! 此命令会下载大量软件包及其元数据,并且需要很长时间才能完成。
创建库文件,并将其复制到预期管理器计算机上的
/etc/yum.repos.d/
目录中。您可以手动或通过脚本创建配置文件。在托管存储库的机器上运行以下脚本,将
baseurl
中的 ADDRESS 替换为托管该存储库的机器的 IP 地址或 FQDN:#!/bin/sh REPOFILE="/etc/yum.repos.d/rhev.repo" echo -e " " > $REPOFILE for DIR in $(find /var/ftp/pub/rhvrepo -maxdepth 1 -mindepth 1 -type d); do echo -e "[$(basename $DIR)]" >> $REPOFILE echo -e "name=$(basename $DIR)" >> $REPOFILE echo -e "baseurl=ftp://__ADDRESS__/pub/rhvrepo/`basename $DIR`" >> $REPOFILE echo -e "enabled=1" >> $REPOFILE echo -e "gpgcheck=0" >> $REPOFILE echo -e "\n" >> $REPOFILE done
#!/bin/sh REPOFILE="/etc/yum.repos.d/rhev.repo" echo -e " " > $REPOFILE for DIR in $(find /var/ftp/pub/rhvrepo -maxdepth 1 -mindepth 1 -type d); do echo -e "[$(basename $DIR)]" >> $REPOFILE echo -e "name=$(basename $DIR)" >> $REPOFILE echo -e "baseurl=ftp://__ADDRESS__/pub/rhvrepo/`basename $DIR`" >> $REPOFILE echo -e "enabled=1" >> $REPOFILE echo -e "gpgcheck=0" >> $REPOFILE echo -e "\n" >> $REPOFILE done
Copy to Clipboard Copied!
返回到 配置管理器。软件包是从本地存储库而不是从 Content Delivery Network 中安装的软件包。
故障排除
- 在运行
reposync
时,会出现以下出错信息 -
No available modular metadata for modular package "package_name_from_module" it cannot be installed on the system
- 解决方案
-
确保已安装
yum-utils-4.0.8-3.el8.noarch
或更高版本,以便 reposync 正确下载所有软件包。如需更多信息,请参阅使用 Red Hat Enterprise Linux 8 创建本地仓库。