Extending the CentOS Download Plug-in R2

You can configure the CentOS Download Plug-in R2 to download and cache packages from repositories that are not officially supported by BigFix. The CentOS Plug-in R2 can resolve package dependency for unsupported CentOS 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 CentOS download plug-in R2 configuration file.
  3. Verify the extended repository setup.

Step 1: Creating an extended repository list file

The CentOS Plug-in R2 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 CentOS Plug-in R2. Ensure that the Administrator or root user can read the file.
  • It must contain the following format:
    {CentOS Plug-in R2
       "<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 DLCentOSRepoList.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 CentOS Patching content, use the following OS keys as listed in the DLCentOSRepoList.json file:
  • centos-8.1.1911-x64
  • centos-8.0.1905-x64
  • centos-8-x64
  • centos-7.6.1810-x64
  • centos-7.5.1804-x64
  • centos-7.4.1708-x64
  • centos-7.3.1611-x64
  • centos-7.2.1511-x64
  • centos-7.1.1503-x64
  • centos-7.0.1406-x64
  • centos-7-x64
  • centos-6.8-x64
  • centos-6.7-x64
  • centos-6.6-x64
  • centos-6.5-x64
  • centos-6.4-x64
  • centos-6.3-x64
  • centos-6.2-x64
  • centos-6.1-x64
  • centos-6.0-x64
  • centos-6-x64
  • centos-6.8-x32
  • centos-6.7-x32
  • centos-6.6-x32
  • centos-6.5-x32
  • centos-6.4-x32
  • centos-6.3-x32
  • centos-6.2-x32
  • centos-6.1-x32
  • centos-6.0-x32
  • centos-6-x32
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 DLCentOSRepoList.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 CentOS mirror and vault repository lists:
http://mirror.centos.org/centos/<CentOS_version>/<repo_name>/<architecture>
http://vault.centos.org/<CentOS_version>/<repo_name>/<architecture>
Here is an example .json file with the prescribed format:
{
	"centos-7-x64": [
		{"name": "EPEL 7", "baseurl": "https://dl.fedoraproject.org/pub/epel/7/x86_64"}
	],
	"centos-6-x64": [
		{"name": "EPEL 6", "baseurl": "https://dl.fedoraproject.org/pub/epel/6/x86_64"}
	]
}

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

Step 2: Updating the CentOS download plug-in R2 configuration file

Configure the CentOS Plug-in R2 to use an extended repository list file. The plugin.ini configuration file is overwritten when the CentOS Plug-in R2 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\CENTOSR2Protocol
    On Linux systems
    /var/opt/BESServer/DownloadPlugins/CENTOSR2Protocol
  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 CentOS Plug-in R2 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 CentOS Plug-in R2 to only use the extended repository list, set the onlyUseExtendedRepoListFile field to yes.
    For example:
    onlyUseExtendedRepoListFile= yes

    If you want to set CentOS Plug-in R2 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 CentOS Download Cacher R2 to verify whether the extended repository has been set up correctly and that you can it. For details about the cacher, see CentOS Download Cacher R2 usage information.

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

The expected output for a successful setup is as follows:

3488     : 2018-02-28 17:23:36 : INFO     :  Testing access to: centos-6-x64
3488     : 2018-02-28 17:23:36 : INFO     :  EPEL_6
3488     : 2018-02-28 17:23:36 : INFO     :  Success!
3488     : 2018-02-28 17:23:36 : INFO     :  CentOS_-_OS
3488     : 2018-02-28 17:23:36 : INFO     :  Success!

3488     : 2018-02-28 17:23:36 : INFO     :  Testing access to: centos-7-x64
3488     : 2018-02-28 17:23:36 : INFO     :  EPEL_7
3488     : 2018-02-28 17:23:36 : INFO     :  Success!
3488     : 2018-02-28 17:23:36 : INFO     :  CentOS_-_OS
3488     : 2018-02-28 17:23:36 : INFO     :  Success!