Using the RHSM download cacher

Use the RHSM download cacher to download and cache x86, x86_64, S390x, ppc64le, ppc64 Red Hat patches in air-gapped environments.

The RHSM download cacher supports the following Red Hat versions:
  • RHEL 6 x32
  • RHEL 6 x64
  • RHEL 7 x32
  • RHEL 7 x64
  • RHEL 6 s390x
  • RHEL 7 s390x
  • RHEL 7 PPC64LE
  • RHEL 7 PPC64BE
  • RHEL 8 x64
  • RHEL 8 s390x
  • RHEL 8 PPC64LE
  • RHEL 9 x64

You can run the RHSM download cacher on a Windows system or a Linux system. For information about requirements, see BigFix - System Requirements.

The RHSM download cacher is available from the BigFix Support site.
Note: The RHSM download cacher will need to access cdn.redhat.com at port 443 and access sync.bigfix.com at port 80.
Note: For illustration purposes, this section indicates the steps to run the RHSM download cacher in Windows. However, the parameters and subcommands to run the RHSM download cacher are the same for both Windows and Linux systems.
You can run the tool RHSMDownloadCacher.exe to perform additional operations. To run this tool from the command prompt, use the following command:
RHSMDownloadCacher.exe [-h] --rootCertDir <rootcertdir> 
[parameters...] {subcommand} [-h]  [subparameters...]

where:

-h

Specifies the help message of a command instead of running the command.

--rootCertDir

Specifies the root directory where the entitlement certificates and system identity certificates are located. Each set of entitlement certificates and system identity certificates must be placed in their own folder. You can configure the rootCertDir in the plugin.ini file.

check-baserepos
Checks if the entitlement certificates under the certs folder can access the base Red Hat repositories that BigFix supports. The results are displayed in the console and printed in the RHSMDownloadCacher.log.
check-allrepos
Checks if the entitlement certificates under the certs folder can access the Red Hat base repositories and its sub-repositories that BigFix supports. The results are displayed in the console and printed in the RHSMDownloadCacher.log.
parameters
Specifies the optional parameters to be used to configure the download cacher.
--proxyServer
Specifies the URL of the proxy server to use. It must be a well-formed URL that contains a protocol and a host name. The URL is usually the IP address or DNS name of your proxy server and its port, which is separated by a colon. For example: http://192.168.100.10:8080.
--proxyUser
Specifies the proxy user name if your proxy server requires authentication. It is usually in the form of domain\username.
--proxyPass
Specifies the proxy password if your proxy server requires authentication.
--download_dir
Specifies the directory where the repository metadata and the packages are cached. This directory must be transferred to the BES Server. The localCache of the RHSM plug-in's plugin.ini must be updated to reference this directory.
If this parameter is not defined, the files are downloaded to the directory that is relative to the download cacher executable directory.

If this parameter is not defined, a default download_dir folder is used.

--sha1_download_dir

With effect from version 1.0.1.0, specifies the directory where the sha1 packages are cached. The repository metadata is still cached in the --download_dir. The sha1_download_dir option stores the sha1 packages in a flat directory structure which can result to significant space saved when caching multiple repositories from the same Red Hat versions. Space-saving benchmarks are established with the use of the --sha1_download_dir through the check-storagereq subcommand.

To learn about the storage space benchmark, see Using –sha1_download_dir with air-gapped and internet-enabled BES Server.

--redownload
Specifies the flag to re-download and overwrite existing RPM files that are in the download directory.
If this parameter is not defined, RPM files are not re-downloaded. However, metadata are, by default, downloaded and overwritten.
--verifyExistingPkgChecksum
Specifies the flag to enforce a checksum check for existing RPM files when trying to download packages using the "buildRepo", "downloadPkg", or "downloadbypatchid" subcommands.
Note: The checksum is set to 'off' by default.
--loglevel
Specifies the log level. You can choose among DEBUG', 'INFO', 'WARNING', or 'ERROR'. By default, the value is set to 'INFO'.
INFO
Contains general information outlining the progress and successful downloads, with minimal tracing information.
WARNING
Contains information about failed downloads, and reasons for failure.
ERROR
Contains errors related to the execution of the download plug-in, which might indicate an impending fatal error.
DEBUG
Contains fine-grained information used for troubleshooting issues. This is the most verbose level available.
--help

Specifies the full description and help of a command instead of running the command.

subcommand subparameter
Specifies the subcommand and subparameters to be used to run the download cacher.
Note: The subcommand and subparameter names are case-sensitive.
The subparameter varies for each subcommand as follows:
showKeys
Outputs the list of OS keys for the supported repositories in the <cacher directory>\logs\RHSMDownloadCacher.log file. An OS key indicates the Red Hat operating system version, architecture, and service pack of a single Red Hat repository.
The syntax to run this subcommand is:
RHSMDownloadCacher.exe -rootCertDir <rootcertdir> --download_dir <download_dir>
 [parameters] showsKeys
For example, RHSMDownloadCacher.exe --rootCertDir certs --download_dir C:\downloads showKeys
buildRepo
Builds a local mirrored repository and downloads all the relevant files based on the specified OS key.
The syntax to run this subcommand is:
RHSMDownloadCacher.exe --rootCertDir <rootcertdir> --download_dir <download_dir> 
[parameters] buildRepo --key <OS_key1,OS_key2,…>
For example, RHSMDownloadCacher.exe --rootCertDir certs --download_dir C:\downloads buildRepo --key server-7-x86_64
where:
--key OS_key1,OS_key2,…
Specifies the Red Hat operating system version, architecture, and service pack. Entries must be separated by a comma and must not include spaces. It must use the following format:
<product>-<version_number>-<architecture>-<sp_level>
For example, --key server-7-x86_64.
check-storagereq

Checks the storage space requirement when using the builRepo command with and without the --sha1_download_dir option. The results are displayed in the console and in the RHSMDownloadCacher.log.

downloadMetadataOnly
Downloads the metadata of the specified OS keys.
The syntax to run this subcommand is:

RHSMDownloadCacher.exe --rootCertDir --download_dir C:\downloads downloadMetadataOnly --key server-7-x86_64

RHSMDownloadCacher.exe --rootCertDir <rootcertdir> --download_dir <download_dir>
[parameters] downloadMetadataOnly --key <OS_key1,OS_key2,…>
For example, RHSMDownloadCacher.exe --rootCertDir certs --download_dir C:\downloads downloadMetadataOnly --key server-7-x86_64
where:
--key OS_key1,OS_key2,…
Specifies the Red Hat operating system version, architecture, and service pack. Entries must be separated by a comma and must not include spaces. It must use the following format:
<product>-<version_number>-<architecture>-<sp_level>
For example, --key server-7-x86_64.
downloadPkg
Downloads the listed RPM files for the specified OS key.
Note: If the package that you are downloading has dependencies, it is suggested that that buildrepo be used instead to avoid dependency issues
The syntax to run this subcommand is:
RHSMDownloadCacher.exe --rootCertDir <rootcertdir> --download_dir <download_dir>  
[parameters] downloadPkg --key <OS_key1,OS_key2…> 
--pkg <pkg1,pkg2,…>
For example, RHSMDownloadCacher.exe --rootCertDir certs --download_dir C:\temp --redownload downloadPkg --key server-7-x86_64 --pkg python-qrcode-core-5.0.1-1.el7.noarch.rpm
where:
--key OS_key1,OS_key2,…
Specifies the Red Hat operating system version, architecture, and service pack. Entries must be separated by a comma and must not include spaces. It must use the following format:
<product>-<version_number>-<architecture>-<sp_level>
For example, --key python-qrcode-core-5.0.1-1.el7.noarch.rpm.
--pkg pkg1,pkg2,…
Indicates the package name.
Each entry must be separated by a comma and must not include spaces. For example, --pkg liblcms1-1.17-77.12.1.x86_64.rpm,liblcms1-32bit-1.17-77.12.1.x86_64.rpm.
downloadByPatchId
Downloads files based on the patch ID for one or more OS keys. The RHSM cacher replaces the reference to the bulletins with the patch_id. The first two digits of the patch_id typically refers to the year. For example, the RHSA-2016-2589 bulletin is replaced with patch_id 162589, with '16' referring to the year.
Note: If the package that you are downloading has dependencies, it is suggested that that buildrepo be used instead to avoid dependency issues
The syntax to run this subcommand is:
RHSMDownloadCacher.exe --rootCertDir <rootcertdir>   
--download_dir <download_certdir>[parameters] downloadByPatchId --key <OS_key1,OS_key2…>
--patch_id <patch_id1,patch_id2,…>
For example, RHSMDownloadCacher.exe --rootCertDir certs --download_dir C:\downloads downloadByPatchId --key server-7-x86_64 --patch_id 162589
where:
--key OS_key1,OS_key2,…
Specifies the Red Hat operating system version, architecture, and service pack. Entries must be separated by a comma and must not include spaces. It must use the following format:
<product>-<version_number>-<architecture>-<sp_level>
For example, --key server-7-x86_64.
--patch_id patch_id1,patch_id2,…
Indicates the patch ID of a Fixlet, which is the first six digits in the Fixlet title.
Each entry must be separated by a comma and must not include spaces. For example, --patch_id 162589.