← Back to list

Some Tips for Oracle OCI OS Management Hub

This article will not duplicate the documentation for OS Management Hub. My intention is to help you to avoid some pitfalls when you get…

Ralf Lange · 2025-04-01 11:43 · 0 claps · 6.2 min read
#osmh #os-management-hub #oracle-cloud #oci
Open on Medium ↗
Wiki topics: BIZ · Business Strategy

Some Tips for Oracle OCI OS Management Hub

This article will not duplicate the documentation for OS Management Hub. My intention is to help you to avoid some pitfalls when you get involved with the service.

Avoid Compartment Hell

The recommendation from Oracle is to put a group and its instances into the same compartment. You will find the group members under Resources on the group details page. But be aware of the the list scope: Only group members in the compartment selected under list scope will be shown.

Anyware in OS Management Hub, be aware of the list scope!

Anyware in OS Management Hub, be aware of the list scope!

In general, while working with OS Management Hub, keep an eye on the list scope. Another situation that might be confusing, is adding vendor software sources to the service. When you are used to work in your compartment and try to add vendor software sources to the service, the button ‘Add vendor software source’ will be grayed out.

‘Add vendor software source’ is greyed out. Check the list scope. The vendor software sources reside in the root compartment.

‘Add vendor software source’ is greyed out. Check the list scope. The vendor software sources reside in the root compartment.

Check the list scope. Navigate to the root compartment and the button will get active.

After navigating to the root compartment, the vendor software sources are visible

After navigating to the root compartment, the vendor software sources are visible

The same situation applies when you try to add vendor software sources to a custom software source. When creating the custom software source, you will be very likely not in the root compartment. In the step to add vendor software sources, you have to navigate to the root compartment before you will see the vendor software sources. Vendor software sources can be replicated into other compartments to avoid this step of switching to the root compartment.

Don’t use Lifecycle Environments for Lifecycle Management

That may seem strange, but let me explain. If your intent is to check available updates before applying them to production systems, lifecycle environments with their versioned custom software sources may sound promising. But it is important to understand a fundamental difference between versioned custom software sources and custom software sources. Custom software sources are just an offer. When an instance is updated from a custom software source, installed packages are updated to newer versions from the software source. Versioned custom software sources are enforcing. All packages from the versioned custom software source are installed. If 900 packages are installed on a compute instance, and the instance is updated from a custom software source with 10,000 packages, some of the installed 900 packages will be updated to newer versions. If the same instance is updated from a versioned custom software source, also with 10,000 packages, the update will try to install all 10,000 packages. This makes it mandatory to provide a package list. The tricky thing is to generate the list of packages to update and to specify the correct versions of those packages. Just using the latest available version will not work, because some of the installed packages might have dependencies on the version of other installed packages. Updating everything to the newest version will result in conflicts. For this reason, if you intent is to have a phased approach to OS updates, go with custom software sources that are not auto-updated.

Wich Vendor Software Sources to include into Custom Software Sources?

Start with the list of default yum repositories that are are automatically enabled by default on an instance. Alternatively, check the enabled repositories on the instance you want to put under control of OS Management Hub. The command sudo dnf repolist shows the list of enabled repositories. The code block below shows the command and an example of its output.

opc@ol8arm1-preprod:~[opc@ol8arm1-preprod ~]$ sudo dnf repolist
repo id                                                                                                repo name
ol8_MySQL84                                                                                            MySQL 8.4 Server Community for Oracle Linux 8 (aarch64)
ol8_MySQL84_tools_community                                                                            MySQL 8.4 Tools Community for Oracle Linux 8 (aarch64)
ol8_MySQL_connectors_community                                                                         MySQL Connectors Community for Oracle Linux 8 (aarch64)
ol8_UEKR7                                                                                              Latest Unbreakable Enterprise Kernel Release 7 for Oracle Linux 8 (aarch64)
ol8_addons                                                                                             Oracle Linux 8 Addons (aarch64)
ol8_appstream                                                                                          Oracle Linux 8 Application Stream (aarch64)
ol8_baseos_latest                                                                                      Oracle Linux 8 BaseOS Latest (aarch64)
ol8_developer_EPEL                                                                                     Oracle Linux 8 EPEL Packages for Development (aarch64)
ol8_ksplice                                                                                            Ksplice for Oracle Linux 8 (aarch64)
ol8_oci_included                                                                                       Oracle Software for OCI users on Oracle Linux 8 (aarch64)
opc@ol8arm1-preprod:~[opc@ol8arm1-preprod ~]$

The repository ol8_developer_EPEL will not appear after a standard installation, it has been enabled via this command:

sudo dnf config-manager --enable ol8_developer_EPEL

Each repository has a corresponding vendor software source with the same name.

To get the list of all configured repositories, enabled or not, use this command (use horizontal scrolling in the code block below):

[opc@ol8arm1-preprod ~]$ sudo dnf repolist --all
repo id                              repo name                                                                                 status
ol8_MySQL80                          MySQL 8.0 for Oracle Linux 8 (aarch64)                                                    disabled
ol8_MySQL80_connectors_community     MySQL 8.0 Connectors Community for Oracle Linux 8 (aarch64)                               disabled
ol8_MySQL80_tools_community          MySQL 8.0 Tools Community for Oracle Linux 8 (aarch64)                                    disabled
ol8_MySQL84                          MySQL 8.4 Server Community for Oracle Linux 8 (aarch64)                                   enabled
ol8_MySQL84_tools_community          MySQL 8.4 Tools Community for Oracle Linux 8 (aarch64)                                    enabled
ol8_MySQL_connectors_community       MySQL Connectors Community for Oracle Linux 8 (aarch64)                                   enabled
ol8_UEKR7                            Latest Unbreakable Enterprise Kernel Release 7 for Oracle Linux 8 (aarch64)               enabled
ol8_aarch64_userspace_ksplice        Ksplice aware userspace packages for Oracle Linux 8 (aarch64)                             disabled
ol8_addons                           Oracle Linux 8 Addons (aarch64)                                                           enabled
ol8_appstream                        Oracle Linux 8 Application Stream (aarch64)                                               enabled
ol8_baseos_latest                    Oracle Linux 8 BaseOS Latest (aarch64)                                                    enabled
ol8_codeready_builder                Oracle Linux 8 CodeReady Builder (aarch64) - Unsupported                                  disabled
ol8_developer                        Oracle Linux 8 Development Packages (aarch64)                                             disabled
ol8_developer_EPEL                   Oracle Linux 8 EPEL Packages for Development (aarch64)                                    enabled
ol8_developer_EPEL_modular           Oracle Linux 8 EPEL Modular Packages for Development (aarch64)                            disabled
ol8_developer_UEKR6                  Developer Preview of UEK Release 6 (aarch64)                                              disabled
ol8_developer_UEKR7                  Developer Preview of UEK Release 7 (aarch64)                                              disabled
ol8_distro_builder                   Oracle Linux 8 Distro Builder (aarch64) - Unsupported                                     disabled
ol8_ksplice                          Ksplice for Oracle Linux 8 (aarch64)                                                      enabled
ol8_kvm_appstream                    Oracle Linux 8 KVM Application Stream (aarch64)                                           disabled
ol8_oci_included                     Oracle Software for OCI users on Oracle Linux 8 (aarch64)                                 enabled
ol8_u10_baseos_base                  Oracle Linux 8.10 BaseOS (aarch64)                                                        disabled
ol8_u2_baseos_base                   Oracle Linux 8.2 BaseOS (aarch64)                                                         disabled
ol8_u3_baseos_base                   Oracle Linux 8.3 BaseOS (aarch64)                                                         disabled
ol8_u4_baseos_base                   Oracle Linux 8.4 BaseOS (aarch64)                                                         disabled
ol8_u4_security_validation           Oracle Linux 8 Update 4 (aarch64) Security Validations                                    disabled
ol8_u5_baseos_base                   Oracle Linux 8.5 BaseOS (aarch64)                                                         disabled
ol8_u6_baseos_base                   Oracle Linux 8.6 BaseOS (aarch64)                                                         disabled
ol8_u7_baseos_base                   Oracle Linux 8.7 BaseOS (aarch64)                                                         disabled
ol8_u8_baseos_base                   Oracle Linux 8.8 BaseOS (aarch64)                                                         disabled
ol8_u9_baseos_base                   Oracle Linux 8.9 BaseOS (aarch64)                                                         disabled
opc@ol8arm1-preprod:~[opc@ol8arm1-preprod ~]$

Check the Size of Custom Software Sources !

When custom software sources grow too big, dnf might not work. This is less of a problem in Oracle Linux 9 than it is in Oracle Linux 8 (I have not tested older versions, but probably the situation is similar as in Oracle Linux 8). After creating a custom software source with a couple of associated vendor software sources, and allowing the software source to keep not only the latest version of packages, dnf check-update or dnf search did not work. I could observe the dnf process allocate more and more memory up to 3GB, then crash. This was only an issue on Oracle Linux 8. Oracle Linux 9 repositories are smaller and they use a newer version of dnf. For me, the solution was to only include the latest package version in the software sources. This dramatically reduced the size of the software sources by about a factor of 10. I still have to investigate if another solution could be to distribute the vendor software sources across multiple customer software sources.

Instances managed by OS Management Hub

On instances managed by OS Management Hub, the list of repositories looks like this:

opc@ol8arm1-prod:~[opc@ol8arm1-prod ~]$ sudo dnf repolist
This system is receiving updates from OSMH.
repo id                                              repo name
custom.ol8arm_default.20250331154057189              OL8ARM_Default
opc@ol8arm1-prod:~[opc@ol8arm1-prod ~]$

This instance is associated with one single custom software source. Also notice how the directory /etc/yum.repos.d changed. After registering the instance with OS Management Hub, the files ending on ‘.repo’ in that directory are renamed to have the ending ‘.osmh-backup’. A single file osmh.repo connects the instance to the OS Management Hub software source(s):

opc@ol8arm1-prod:~[opc@ol8arm1-prod ~]$ ls -al /etc/yum.repos.d/
total 52
drwxr-xr-x.   2 root root 4096 Apr  1 08:45 .
drwxr-xr-x. 112 root root 8192 Apr  1 08:33 ..
-rw-r--r--.   1 root root  496 May  4  2021 ksplice-ol8.repo.osmh-backup
-rw-r--r--.   1 root root 1528 Dec 11 15:04 mysql-ol8.repo.osmh-backup
-rw-r--r--.   1 root root  253 Mar 19  2021 oci-included-ol8.repo.osmh-backup
-rw-r--r--.   1 root root  530 Apr  1 08:34 oracle-epel-ol8.repo.osmh-backup
-rw-r--r--.   1 root root  694 Jan 15 00:50 oraclelinux-developer-ol8.repo.osmh-backup
-rw-r--r--.   1 root root 3403 Jan 15 00:49 oracle-linux-ol8.repo.osmh-backup
-rw-r--r--.   1 root root  342 Apr  1 08:45 osmh.repo
-rw-r--r--.   1 root root  256 Jan 15 00:50 uek-ol8.repo.osmh-backup
-rw-r--r--.   1 root root  243 May 23  2024 virt-ol8.repo.osmh-backup
opc@ol8arm1-prod:~[opc@ol8arm1-prod ~]$

메타데이터
post_id
617653f63bfa
slug
some-tips-for-oracle-oci-os-management-hub-617653f63bfa
url
https://medium.com/@ralflange/some-tips-for-oracle-oci-os-management-hub-617653f63bfa
canonical_url
https://medium.com/@ralflange/some-tips-for-oracle-oci-os-management-hub-617653f63bfa
author_url
https://medium.com/@ralflange
status
ok
fetched_at
2026-07-20 11:26:16