Walkthrough: Setting up and managing an offline patch catalog for Linux
This topic is intended for system administrators or patch administrators in charge of performing patching for Linux servers in an environment that does not have access to the internet.
- Introduction
- What is a patch catalog?
- What does this walkthrough show?
- What do I need to do before I get started?
- How to add configuration settings and filter information to sample XML file
- How to create a Red Hat Linux patch catalog
- Wrapping it up
- Where to go from here
Introduction
This topic is intended for system and patch administrators. The goal of this topic is to demonstrate how to organize patch information by setting up a central location for storing metadata about a type of patch. BSA calls these locations patch catalogs. By creating patch catalogs customized to your needs, it becomes easier to select the patches you want to evaluate on servers.
What is a patch catalog?
A patch catalog provides a place to store metadata about patches and the patch payloads themselves. Patch catalogs can be designed for specific needs. For example, a patch catalog can used for a particular operating system, such as Red Hat Enterprise Linux (RHEL). With well designed patch catalogs, it is easier to select the patches that should be used when evaluating the patch configuration of a particular server.
What does this walkthrough show?
This walkthrough shows how to download RHEL patches from the Shavlik website to any server having internet access, using the offline downloader utility shipped with BMC Server Automation. After downloading the RHEL patches, you can perform patching operations by transferring the metadata and payload information, using a removable storage, to the patch repository within the air-gapped environment.
- Download the payload and metadata information from Red Hat website to any server having internet access. In this walkthrough, we will download the patch payload and metadata to a Linux server.
- Use filters to limit the amount of information added to the catalog.
- Schedule the catalog update job to run at a particular time in future and set up notifications for the patch administrator in charge of Linux patching
What do I need to do before I get started?
For this walkthrough, you must have the following:
- An air-gapped environment that uses BMC Server Automation 8.6 or later to manage its Windows servers.
- Any server with access to the internet. In this walkthrough we will be using a Linux server to download the patch payload from the Red Hat website.
From the BMC Software Electronic Product Distribution (EPD) website, download and extract the installer package (BBSA<version>-<platform>64) to the Linux machine on which you want to download the payload and metadata. For steps on downloading installer package files from the EPD website, see Downloading the installation files.
Extract the BBSA<version>-<platform>64 installer package that you have downloaded from the EPD, and navigate to either of the following directories:
- If you are planning to download the patch payload and metadata on a Linux server: <installer-path>/Disk1/files/installers/other_files/All-OS-Patch-Downloaders-linux-build-8.7.00
- if you are planning to download the patch payload and metadata on Windows server: <installer-path>/Disk1/files/installers/other_files/All-OS-Patch-Downloaders-windows-build-8.7.00
The server that houses the patch repository must have the createrepo and pythonurl-grabber packages pre-installed before download begins. The required version for the packages is as follows:
Package
Tested version
createrepo
0.4.6
pythonurl-grabber
2.9.6
- Ensure that your Linux machine has the glibc.i686 library installed. Alternatively, you can ensure that the JRE version is upgraded to 1.8 or later.
How to add configuration settings and filter information to sample XML file
The first step is to prepare the configuration file, which contains XML information that is used by the Patch Downloader utility. The configuration file must contain the download settings and patch filter information as show in the image below. You can also enter proxy server information if you are using one.
BMC Server Automation provides sample configuration files in the installer package at <installer-path>/Disk1/files/installers/other_files/All-OS-Patch-Downloaders-linux-build-8.7.00/sample-downloader-config-files/. Edit the sample XML configuration file (sample-redhat-downloader-config.xml) provided by BMC, and add the following XML tags based on your requirements:
(Optional) Add proxy information using the following XML tags:
Define download settings using the following XML tags:
Example of download settings in configuration file<temporary-location>/tmp</temporary-location>
<validate-payload-certificate>true</validate-payload-certificate>
<payload-repository-location>/home/Payload_location</payload-repository-location>
<download-request-retries>10</download-request-retries>
<download-request-timeout>180000</download-request-timeout>
<downloader-parallel-threads>10</downloader-parallel-threads>- Specify filters to limit the patches downloaded in the catalog. The same filters entered here must also be entered during catalog creation in the console.
For example, to create a filter that downloads the latest RPMs by errata type, use the following XML tags:
<errata-type-filter>
<os>RHES5</os>
<arch>x86</arch>
<channel-label>rhel-i386-server-5</channel-label>
<errata-severity>
<critical>true</critical>
<important>true</important>
<moderate>true</moderate>
<low>true</low>
</errata-severity>
<errata-type>
<security>true</security>
<bugfix>true</bugfix>
<enhancement>true</enhancement>
</errata-type>
</errata-type-filter>To create a filter that downloads a specific errata by errata id. This filter should be used only if the downloader is executed on a Linux machine. Use the following syntax:
<errata-ids-filter>
<os>RHAS4</os>
<arch>x86</arch>
<channel-label>rhel-i386-as-4</channel-label>
<errata-ids>
<errata-id>RHSA-2009:0429</errata-id>
<errata-id>RHBA-2009:0388</errata-id>
</errata-ids>
</errata-ids-filter>Parameter
Description
<os> </os>
OS for the channel label
<arch> </arch>
Architecture for the channel label
<channel-label>
</channel-label>Channel label that you want to download
<errata-id>
</errata-id>A valid Errata ID for the channel label specified in the filter
(Not applicable for RHEL 7) To create a filter that downloads a specific update level, use the following syntax:
<update-level-filter>
<os>RHAS4</os>
<arch>x86</arch>
<channel-label>rhel-i386-as-4</channel-label>
<update-level>5</update-level>
</update-level-filter>Parameter
Description
<os></os>
OS for the channel label
<arch></arch>
Architecture for the channel label
<channel-label>
</channel-label>Channel label you want to download
<update-level>
</update-level>A valid update level for the channel label specified in the filter Note: The update-level filter works only on Linux computers. It does not work on windows computers.
Save the configuration file. Use the sample configuration file below as a reference:
<redhat-downloader-config>
<config>
<!--<proxy-settings>
<port>8080</port>
<host>_IPAddress_</host>
<username>patch</username>
<password>NWKIPRTPCWEB</password>
<domain-name />
<proxy-type>ntlm</proxy-type>
</proxy-settings>-->
<temporary-location>c:\tmp</temporary-location>
<payload-repository-location>/home/repo/</payload-repository-location>
<download-request-retries>10</download-request-retries>
<download-request-timeout>180000</download-request-timeout>
<downloader-parallel-threads>10</downloader-parallel-threads>
</config>
<subscription>
<errata-type-filter>
<os>RHES5</os>
<arch>x86</arch>
<channel-label>rhel-i386-server-5</channel-label>
<errata-severity>
<critical>true</critical>
<important>true</important>
<moderate>true</moderate>
<low>true</low>
</errata-severity>
<errata-type>
<security>true</security>
<bugfix>true</bugfix>
<enhancement>true</enhancement>
</errata-type>
</errata-type-filter>
<errata-ids-filter>
<os>RHAS4</os>
<arch>x86</arch>
<channel-label>rhel-i386-as-4</channel-label>
<errata-ids>
<errata-id>RHSA-2009:0429</errata-id>
<errata-id>RHBA-2009:0388</errata-id>
</errata-ids>
</errata-ids-filter>
<update-level-filter>
<os>RHAS4</os>
<arch>x86</arch>
<channel-label>rhel-i386-as-4</channel-label>
<update-level>5</update-level>
</update-level-filter>
</subscription>
</redhat-downloader-config>
How to create a Red Hat Linux patch catalog
Wrapping it up
Congratulations. You have downloaded Red Hat patch payload and metadata on a Linux machine. You have also set up a job that creates a patch catalog for RHEL that will run at a specific time in the future.
Where to go from here
Now that you have a serviceable patch catalog it is time to use it to measure your RHEL servers for patch compliance. See Walkthrough-Basic-Red-Hat-Linux-patch-analysis.