Red Hat Training
A Red Hat training course is available for Red Hat Satellite
4.2. Configuring Proxy Precaching
Your Proxy server can precache or mirror RPM files. This means that RPM files are delivered directly from the Proxy server to the clients; the clients do not have to wait for the files to download from the Satellite server to the Proxy server, and then be delivered to the client. The Proxy server recognizes RPM requests from
yum
as well as anaconda
(for kickstart installations and provisioning). See the rhn_package_manager
manual page for more information.
Proxy precaching is especially useful if the network connection to the Satellite server is slow or if bandwidth is at a premium. You can use the
rhn_package_manager
command to manually load RPM files into the Proxy server's cache, or you can create a cron
job that uses the rsync
command to perform the task automatically.
Note
Using the Proxy server precache feature requires that disk space be available at all times for the required RPM files. Unlike a non-precached Proxy server, where only requested RPM files exist, and only until they expire, precached RPM files remain indefinitely on the Proxy server whether they are used or not.
4.2.1. Manually Loading RPM Files into the Proxy Cache
Satellite Proxy and
rhn_package_manager
have been updated to avoid unwanted cache collisions. You can use the existing rhn_package_manager --copyonly
command to populate the cache; (an alias to that option has been added with the more user-friendly name --cache-locally
). Another significant change to rhn_package_manager
is that it can now read and import packages from a channel export, which could for example be created on the Satellite server using the rhn-satellite-exporter
utility. This is in addition to the other methods that rhn_package_manager
can use to import RPM files, such as the --dir
option for importing all RPM files in a directory, or a list of RPM files supplied on the command line.
The following example demonstrates how to cache only the RPM files that exist in the my-channel-l channel, using a channel export from the Satellite server. This export contains all the channels from the Satellite server, and is mounted on
/mnt/export
:
# rhn_package_manager --cache-locally --from-export /mnt/export --channel my-channel-1
To import all the RPM files from all channels that the export contains, omit the
--channel
option:
# rhn_package_manager --cache-locally --from-export /mnt/export
If the channel export is spread across multiple ISO images it is not necessary to combine them locally on the Proxy before running the
rhn_package_manager
command. Mount the images one at a time and run the same command on each.
4.2.2. Automatically Loading RPM Files into the Proxy Cache
Populating the initial clone may be convenient and fast through a channel export or directory that contains RPM files, but it is inconvenient to have to create a new channel export or directory containing new RPM files every time the Satellite server is updated with new content. You can set up a cron job or similar with an
rsync
command to download any updated RPM files to the Proxy cache. This assumes that you want to download all of the RPM files on the Satellite server to the Proxy. You need to run the cron job and rsync
command as root on the Proxy server, but can then log in to the Satellite server as any user that has read access to the RPM store; this should be all users.
Configuring SSH Key Pairs to Enable Automatic Connection to the Satellite
You need to set up SSH key pairs that enable the root
user on the Proxy server to establish an SSH connection to $user
on the Satellite server, without typing a password.
Important
This method requires that the private key does not have a password. Ensure that you keep this key safe.
Run the following command as
root
on the Proxy server:
ssh-keygen -t rsa -N '' -f /root/.ssh/id_dsa \ && cat /root/.ssh/id_dsa.pub | ssh user@satellite.example.com 'cat >> .ssh/authorized_keys'
Enter the password for user when prompted. You should now be able to create an SSH connection to your Satellite server, without typing a password:
# ssh user@satellite.example.com
Setting up Automatic Synchronization
You now need to add a cron
job with an appropriate rsync
command. For example, as root on the Proxy:
crontab -e 1 3 * * * /usr/bin/rsync -r user@satellite.example.com:/var/satellite/redhat/*/ /var/spool/rhn-proxy/rhn # write and quit with :wq
This configuration runs the
rsync
command at 3:01 a.m. every day and downloads any RPM files that are on the Satellite server into the Proxy cache. The /var/satellite
directory is the default Satellite root directory, but this is configurable. If you have changed it on your Satellite installation then adjust this command appropriately.