You have heard of a Foreman plugin called Katello that supports Red Hat subscription and repository management. Katello supports other plugins such as Pulp (for downloading content) and Candlepin (for managing the meta aspects of the subscriptions themselves). How do you install Katello?
Warning 1: This works for CentOS. It may work for Fedora. It will not work for RHEL; there are many dependencies for RHEL that are best handled by a satellite subscription.
Warning 2: This will obliterate a Puppet Master installation. If you have Puppet Master installed, only proceed if you do not mind starting over with configuration. This will wipe out existing Puppet Master configuration on the server with which you follow these directions.
i. Your server must have 8 GB of memory. It may or may not be from a combination of swap space (virtual memory) and real memory; to create swap space, see this posting. For directions on resizing a server's memory, see this posting for a GCP server and this posting for an AWS instance.
ii. Install Puppet Master. You can follow these directions if you are using CentOS or Fedora.
1. Run these commands (or remove the sudo from each one, create a script and run it with "sudo bash nameofscript.sh"):
sudo rpm -ivh https://fedorapeople.org/groups/katello/releases/yum/3.9/katello/el7/x86_64/katello-repos-latest.rpm
sudo rpm -ivh http://yum.theforeman.org/releases/latest/el7/x86_64/foreman-release.rpm
sudo yum -y install foreman-release-scl
sudo yum -y update
sudo yum -y install katello ntp
2. Run this command, but substitute "strongpassword" with the password of your choice:
sudo foreman-installer --scenario katello --foreman-admin-username admin --foreman-admin-password strongpassword
3. Run this command, but substitute "strongpassword" with the password of your choice, 12345 with the TCP port number of your choice, and x.x.x.x with the FQDN or external IP address of your server:
sudo foreman-installer --scenario katello --katello-proxy-url http://x.x.x.x --katello-proxy-port 12345 --foreman-admin-username admin --foreman-admin-password strongpassword
4. Open a web browser. Go to http://x.x.x.x where x.x.x.x is the external IP address. Enter it with the credentials recently provided.