We've got a RHEL 7.4 server that is registered and would like to make it a yum server for other non-internet connected servers. This particular server is allowed to be connected, but we would like to keep the others offline. I'm pretty new to all of this so I've got a few questions.

I'm from mainly a Windows environment so the way it was explained to me is that a yum server acts similarly to a WSUS server in the sense that it can receive updates and then push them out (in our case, we have our one upstream server that pushes updates to several other downstream servers).

  1. Is this an accurate comparison?

  2. Does each server need to be registered (offline registration) to be able to get yum updates?

  3. Does the online repo need to have the requested package in his repo for another server to pull? Or can an "offline" server use the online server to acquire the package?

I've tried to do this myself and spent about 2 days learning 1000 ways it doesn't work. I've tried to set up repos via http and ftp, but I cannot seem to get it working. I run into problems with directory access with both http and ftp (though I've tried setting access to 777 with no avail).

Would appreciate a little guidance.


Got the web server piece up and running! So the only question I think I have left is do I need to reposync each of the repos that are the result of "subscription-manager repos" on my online server?

  • yum updates are always pulled, never pushed (although a configuration management tool can invoke a pull). Aug 3, 2018 at 17:35
  • @IgnacioVazquez-Abrams yeah I think I understand that much. Big thing is not understanding how to set it up. May end up just having to contact RedHat support.. Aug 3, 2018 at 17:52
  • Not strictly an answer, but have you considered a caching HTTP proxy? Restrict it to your upstream mirror, then configure your clients to point at the upstream mirror going through the proxy. When a client hits the package will be cached on the proxy server
    – Outurnate
    Aug 3, 2018 at 18:00

1 Answer 1


The answers for this will vary a bit depending on your distro, but for RHEL, you'll want to use a utility called reposync - Redhat documents the process here: https://access.redhat.com/solutions/23016

However, it sounds like you might be hitting issues with your webserver setup which are probably unrelated to the repo work. Depending on what webserver you're using to serve the files (nginx and apache are popular choices), you'll want to debug that as a generic webserver issues problem.

As for the comparison to WSUS, as far as I can tell from MS's explanation, they're not quite analogous; a YUM repo is basically a directory structure containing multiple versions of a lot of individual packages and some metadata that the client can use to quickly learn about those packages. It has no moving parts; the clients are responsible for using it effectively (and you'd use other tools to have them do so).

  • 1
    Apologies if this is a dumb question. With reposync, it asks for a repo ID. On my online server, the command 'subscription-manager repos' gives me quite a few different repos each with their own IDs. Will I need to use reposync for each of those repos to add the packages to my local repository? Aug 3, 2018 at 18:14
  • It's not a dumb question (and we're all always learning). You only need to mirror what you want to mirror (and note that you need to rerun reposync every time you want a fresh snapshot). If you have a seldom-used repo, or a repo only used by a very small number of machines, you might reasonably decide not to mirror those. One other thing - all this does is set up the repo mirrors. It doesn't instruct your machines to use them. You'll want to modify your repo definitions on other machines in your infra to do that (with Chef or Puppet or Ansible or whatever you use for config management).
    – Pat Gunn
    Aug 3, 2018 at 20:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .