更新虚拟机的操作系统
Oracle Data Infrastructure Cloud@Customer 上的虚拟机通过 Oracle OS Management Hub 配置了 dnf。本文介绍如何使用 dnf 从 VM 中应用 Oracle Linux 软件包更新。此过程不更新 Oracle Grid Infrastructure 或 Oracle AI Database 软件。有关这些更新,请参见 Update the Grid Infrastructure of a VM Cluster 和 Update a Database Home 。
Oracle Data Infrastructure Cloud@Customer 上的 VM 包括 Ksplice 来支持内核和用户空间安全更新,无需重新启动 VM。Ksplice 默认情况下处于禁用状态。使用配置自动 Ksplice 更新中的脚本启用它。
开始之前
- 计划维护窗口。某些软件包更新需要重新启动,并且可能会中断 VM 上运行的应用程序或数据库。
- 对于双节点 VM 集群,一次更新一个 VM。更新其他 VM 之前,请验证集群和数据库运行状况。
- VM 配置为通过系统和 CPS 网络访问 Oracle OS Management Hub
yum系统信息库。有关网络要求,请参见 Network Setup 。访问这些系统信息库不需要其他配置。 - 如果配置第三方系统信息库,请验证 VM 是否可以通过客户机网络访问该系统信息库。
- 以具有
sudo特权的opc用户身份连接到 VM。
应用操作系统软件包更新
-
使用 SSH 连接到 VM。
-
检查可用的更新:
sudo dnf check-updatednf命令列出 VM 上启用的系统信息库中的可用软件包更新。查看列表并确认启用的系统信息库适合此 VM。 -
要更新可用更新的所有已安装软件包,请运行:
sudo dnf upgrade复核建议的事务处理并确认它以继续。
要更新一个软件包和任何必需的依赖项,请指定软件包名称。例如,要更新
bash软件包,请运行:sudo dnf upgrade bash有关
dnf命令的更多信息,请参见 DNF Command References 和 Updating Software on Oracle Linux 。 -
如果更新了多个软件包,Oracle 建议重新启动 VM,以便核心软件包使用更新的版本运行。要检查是否需要重新启动,请运行:
sudo dnf needs-restarting -r -
如果需要重新启动,请在计划的维护窗口期间重新启动 VM,然后验证其应用程序和数据库是否可用。
配置其他 Oracle Linux 系统信息库
Oracle OS Management Hub (OSMH) 在 /etc/yum.repos.d/osmh.repo 中管理系统信息库配置。不要将系统信息库添加到此文件。在单独的系统信息库文件中添加任何其他系统信息库。
-
在 Oracle Linux Yum Server 上,获取 VM Oracle Linux 发行版的资料档案库 URL。
-
转换 URL 以供 VM 使用:
- 将
yum.oracle.com替换为 VM 上提供的dnf变量${oci_osmh_yum}。 - 从 URL 末尾删除
index.html。 - 使系统信息库路径的其余部分保持不变。
例如,以下格式的 URL:
https://yum.oracle.com/repo/OracleLinux/OL8/<repository>/x86_64/index.html变成:
https://${oci_osmh_yum}/repo/OracleLinux/OL8/<repository>/x86_64/ - 将
-
创建或编辑单独的系统信息库文件(如
/etc/yum.repos.d/additional.repo),并添加唯一命名的系统信息库条目。例如:[additional_repo] name=<repository_name> baseurl=https://${oci_osmh_yum}/repo/OracleLinux/OL8/<repository>/x86_64/ sslverify=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enabled=1 -
刷新系统信息库元数据并验证系统信息库:
sudo dnf --refresh repoinfo additional_repo
配置第三方资料档案库
使用第三方软件供应商提供的存储库 URL 和 GPG 密钥。某些供应商提供 RPM 来配置存储库文件并安装或配置 GPG 密钥。如果供应商提供,请按照供应商的文档进行安装和配置。否则,在单独的 .repo 文件中添加系统信息库;不要将其添加到 /etc/yum.repos.d/osmh.repo。将以下示例 URL 替换为供应商的实际存储库和密钥 URL。
网络访问:必须通过 VM 的客户机网络访问第三方系统信息库。确保第三方系统信息库主机可通过该网络访问,并且配置所需的路由、DNS 和防火墙访问。如果客户机网络需要代理,请将系统信息库的 proxy 选项设置为批准的客户机网络代理。对于直接访问,请在系统信息库条目中设置 proxy= 以禁用从 /etc/dnf/dnf.conf 继承的用于 Oracle OS Management Hub 集成的代理。有关更多信息,请参见《 DNF Configuration Reference 》。
-
创建系统信息库文件(如
/etc/yum.repos.d/third-party.repo),并添加唯一命名的系统信息库条目:[third_party_example] name=Example third-party repository baseurl=https://repo.example.com/oraclelinux/8/$basearch/ proxy= enabled=1 gpgcheck=1 gpgkey=https://repo.example.com/keys/RPM-GPG-KEY-example sslverify=1使包签名检查保持启用,并使用供应商发布的 GPG 密钥。
-
刷新系统信息库元数据并验证系统信息库:
sudo dnf --refresh repoinfo third_party_example
有关详细信息,请参阅管理定制软件系统信息库。
配置自动 Ksplice 更新
Ksplice 可以在不重新启动的情况下应用支持的内核和用户空间安全更新。以下脚本可启用或禁用 VM 上的自动 Ksplice 更新。运行相应的脚本,然后在出现提示时输入 kernel、userspace 或 all。缺省选择是 kernel。
启用后,自动 Ksplice 更新将在 VM 启动时检查并应用所选组件的可用更新,此后每天检查一次。这使支持的内核和用户空间软件包保持最新状态,而无需重新启动。
注:要成功应用 Ksplice 用户空间更新,请首先安装 Ksplice 感知 glibc 和 openssl 软件包。运行以下命令以从启用的系统信息库更新系统软件包:
sudo dnf update glibc openssl
启用自动更新 :
sudo /opt/oracle/datainfracc/utils/enable_automatic_ksplice_updates.sh
禁用自动更新:
sudo /opt/oracle/datainfracc/utils/disable_automatic_ksplice_updates.sh
有关更多信息,请参见 Configuring Ksplice Enhanced Client for Offline Mode 和 Configuring Ksplice Uptrack Clients for Offline Mode 。