Extending the Rocky Linux Download Plug-in

You can configure the Rocky Linux Download Plug-in to download and cache packages from repositories that are not officially supported by BigFix. The RockyLinux Plug-in can resolve package dependency for unsupported Rocky Linux repositories, allowing the installation of unsupported dependent packages. This extended solution allows you to use BigFix to deploy packages from repositories that are not shipped out of the box.

Before you begin, you must complete the following tasks:
To extend the plug-in to use repositories that are not officially supported by BigFix, you must carefully follow these steps:
  1. Create an extended repository list file.
  2. Update the Rocky Linux download plug-in configuration file.
  3. Verify the extended repository setup.

Step 1: Creating an extended repository list file

The RockyLinux Plug-in can use an extended repository list file, which contains additional repositories for both base and extension products that are included in your subscription.

The extended repository list file must meet the following criteria:
  • It must be a valid .json file.
  • It must be accessible to the RockyLinux Plug-in. Ensure that the Administrator or root user can read the file.
  • It must contain the following format:
    {RockyLinux Plug-in
       "<OS_key>":[     
         {"name": "<name>", "baseurl": "<base_url>"},
         {"name": "<name>", "baseurl": "<base_url>"}
       ], 
       "<OS_key_1>'': [
         {"name": "<name>", "baseurl": "<base_url>"}
       ]
    }
Note: It uses the same format as the DLRockyLinuxRepoList.json file, which is set for repoListFile in the plugin.ini file.
You must replace the placeholders, which are enclosed in angle brackets <>, with the actual values.
OS_key
To use the unsupported repositories with the BigFix Rocky Linux Patching content, use the following OS keys as listed in the DLRockyLinuxRepoList.json file:
  • Rocky Linux-8-x64
  • Rocky Linux-9-x64
This might not be the full list as later versions of the download plug-in are released. To get the latest and complete copy of the repository list, complete the following actions:
  1. Check whether your endpoints are registered to the latest download plug-in. The Manage Download Plug-ins dashboard indicates when the plug-in is up-to-date or when a new version is available.
  2. View the DLRockyLinuxRepoList.json file from the following locations:
    On Windows Systems
    %PROGRAM FILES%\BigFix Enterprise\BES Server\GatherDBData\gather\Patching Support\CurrentSiteData
    On Linux Systems
    /var/opt/BESServer/gatherDBData/gather/Patching Support/CurrentSiteData
Important: Use the correct OS key for each repository to avoid download and dependency resolution issues.
base_url
The base URL is formed from the Rocky Linux mirror and vault repository lists:
http://dl.rockylinux.org/pub/rocky/<Rocky Linux_version>/<repo_name>/<architecture>/<os>
http://dl.Rocky Linux.org/vault/rocky/<Rocky Linux_version>/<repo_name>/<architecture>
Here is an example .json file with the prescribed format:
{
    "Rocky Linux-8-x64": [
      {"name": "Rocky Linux - BaseOS",       "baseurl": "http://dl.Rocky Linux.org/pub/rocky/8/BaseOS/x86_64/os/"},
      {"name": "Rocky Linux - AppStream",  "baseurl": "http://dl.Rocky Linux.org/pub/rocky/8/AppStream/x86_64/os/"}
    ],
    "Rocky Linux-8.3-x64": [
      {"name": "Rocky Linux 8.3 - BaseOS",       "baseurl": "http://dl.Rocky Linux.org/vault/rocky/8.3/BaseOS/x86_64/os/"},
      {"name": "Rocky Linux 8.3 - AppStream",  "baseurl": "http://dl.Rocky Linux.org/vault/rocky/8.3/AppStream/x86_64/os/"}
    ],
    "Rocky Linux-8.4-x64": [
      {"name": "Rocky Linux 8.4 - BaseOS",       "baseurl": "http://dl.Rocky Linux.org/vault/rocky/8.4/BaseOS/x86_64/os/"},
      {"name": "Rocky Linux 8.4 - AppStream",  "baseurl": "http://dl.Rocky Linux.org/vault/rocky/8.4/AppStream/x86_64/os/"}
    ],
    "Rocky Linux-8.5-x64": [
      {"name": "Rocky Linux 8.5 - BaseOS",       "baseurl": "http://dl.Rocky Linux.org/vault/rocky/8.5/BaseOS/x86_64/os/"},
      {"name": "Rocky Linux 8.5 - AppStream",  "baseurl": "http://dl.Rocky Linux.org/vault/rocky/8.5/AppStream/x86_64/os/"}
    ],
    "Rocky Linux-8.6-x64": [
      {"name": "Rocky Linux 8.6 - BaseOS",       "baseurl": "http://dl.Rocky Linux.org/vault/rocky/8.6/BaseOS/x86_64/os/"},
      {"name": "Rocky Linux 8.6 - AppStream",  "baseurl": "http://dl.Rocky Linux.org/vault/rocky/8.6/AppStream/x86_64/os/"}
    ],
    "Rocky Linux-9-x64": [
      {"name": "Rocky Linux - BaseOS", "baseurl": "https://dl.rockylinux.org/pub/rocky/9/BaseOS/x86_64/os/"},
      {"name": "Rocky Linux - AppStream", "baseurl": "https://dl.rockylinux.org/pub/rocky/9/AppStream/x86_64/os/"}
    ],
    "Rocky Linux-9.1-x64": [
      {"name": "Rocky Linux - BaseOS", "baseurl": "https://dl.rockylinux.org/vault/rocky/9.1/BaseOS/x86_64/os/"},
      {"name": "Rocky Linux - AppStream", "baseurl": "https://dl.rockylinux.org/vault/rocky/9.1/AppStream/x86_64/os/"}
    ],
    "Rocky Linux-9.2-x64": [
      {"name": "Rocky Linux - BaseOS", "baseurl": "https://dl.rockylinux.org/pub/rocky/9.2/BaseOS/x86_64/os/"},
      {"name": "Rocky Linux - AppStream", "baseurl": "https://dl.rockylinux.org/pub/rocky/9.2/AppStream/x86_64/os/"}
    ]
}

We will name this file as epel_repos.json and use it in the examples throughout this section.

Step 2: Updating the Rocky Linux download plug-in configuration file

Configure the RockyLinux Plug-in to use an extended repository list file. The plugin.ini configuration file is overwritten when the RockyLinux Plug-in is unregistered or configured from the Manage Download Plug-in dashboard. Any change that you make in the configuration file is lost, therefore take note of the previous changes.
  1. Use a text editor to open the plugin.ini file from the following locations:
    On Windows systems
    %PROGRAM FILES%\BigFix Enterprise\BES Server\DownloadPlugins\RockyLinuxProtocol
    On Linux systems
    /var/opt/BESServer/DownloadPlugins/RockyLinuxProtocol
  2. In the extendedRepoListFile field, enter the absolute path or relative path to the extended repository list file. If it is set to a relative path, the path must be relative to the location of the RockyLinux Plug-in executable.
    For example:
    extendedRepoListFile  = ./epel_repos.json

    This example indicates that the epel_repos.json file is located in the same directory as the download plug-in binary.

  3. If you want set the RockyLinux Plug-in to only use the extended repository list, set the onlyUseExtendedRepoListFile field to yes.
    For example:
    onlyUseExtendedRepoListFile= yes

    If you want to set RockyLinux Plug-in to use both repository list files, configure the setting to no. In cases where the same OS key is used in both files, the repositories will be combined.

  4. Save the file.

Step 3: Verifying the extended repository setup

Use the Rocky Linux Download Cacher to verify whether the extended repository has been set up correctly and that you can it. For details about the cacher, see Rocky Linux Download Cacher usage information.

To do this, run the RockyLinuxDownloadCacher.exe --check-allrepos command.

The expected output for a successful setup is as follows:

11288    :  2023-06-07 07:28:51 : INFO     :  Testing access to: rockylinux-8-x64
11288    :  2023-06-07 07:28:51 : INFO     :  RockyLinux-RT
11288    :  2023-06-07 07:28:51 : INFO     :  Success!
11288    :  2023-06-07 07:28:51 : INFO     :  RockyLinux-Extras
11288    :  2023-06-07 07:28:51 : INFO     :  Success!
11288    :  2023-06-07 07:28:51 : INFO     :
11288    :  2023-06-07 07:28:51 : INFO     :  Testing access to: rockylinux-9-x64
11288    :  2023-06-07 07:28:51 : INFO     :  RockyLinux-RT
11288    :  2023-06-07 07:28:51 : INFO     :  Success!
11288    :  2023-06-07 07:28:51 : INFO     :  RockyLinux-Extras
11288    :  2023-06-07 07:28:51 : INFO     :  Success!