0

I have a LAN where I currently use an instance of Sonatype Nexus to proxy several yum repositories. All the clients on the LAN are configured to install packages only from this service.

The only reason why Sonatype Nexus is used is because the configuration provider already existed at the time. It is not a mirror, since it caches each package on demand. This is the desired effect, as I don't want to store every package in all the yum repositories being proxied.

So far so good. What I would like now is to add a secondary cache, in case the first goes down or maybe is slow:

                 Mirror1         Mirror2         ...MirrorN
                    \    \          /  \               /
                     +----\--------+----\-------------+
                     |     \             \           /
                     |      +-------------+---------+
                     |                    |
+--------------------------+            +--------------------------+
|          CacheA          | <==Sync==> |          CacheB          |
| Repo1, Repo2, ..., RepoN |            | Repo1, Repo2, ..., RepoN |
+--------------------------+            +--------------------------+
                       |                       |
                       |     +--------------+--+---+
                       |    /              /        \
                       +---/--------+-----/----------\--+
                      /   /          \   /            \  \
                     ClientX         ClientY           ClientZ

I don't have to use Sonatype Nexus. I have heard about pulp, mrepo, and spacewalk and I don't mind getting into one of them if it has better out-of-the-box functionality for what I need.

How can I setup those two caches so they will eventually be synced, without mirroring every proxied repo? The end result is I would like to backup only one of them and have every package that was installed by a client.

Ed I
  • 143
  • 5
  • 1
    Just rsync them? No reason to make this complicated if you don't have to. – Michael Hampton Nov 14 '14 at 20:26
  • Maybe I could do that. Nexus hasn't caused me any (major) problems hosting RPMs so far, but it has more metadata and capabilities than required for RPM hosting. Not too sure about keeping all those files synchronized by criteria I make up. – Ed I Nov 14 '14 at 21:41

1 Answers1

0

For keeping repos in sync, pulp can do the job for sure.

Either you could put the secondary server in place and configure it as a node with the primary one as a server, then you can bind whichever repo you want to the node and preform a node sync which will then sync the full repo. This requires both servers be pulps.

Second approach also using pulp is you could configure the repos on secondary server using feeds, and then sync the feeds. The good thing with this approach is that it works with any yum repo regardless of what service is providing it.

I have worked quite a lot with pulp and since 2.4, it's really shaping up to be a really good product with powerful API.

Petter H
  • 3,443
  • 1
  • 16
  • 19