Chapter 1. Preparing your Environment for Installation
Before you install Satellite, ensure that your environment meets the following requirements.
1.1. System Requirements
The following requirements apply to the networked base operating system:
- x86_64 architecture
- The latest version of Red Hat Enterprise Linux 7 Server
- 4-core 2.0 GHz CPU at a minimum
- A minimum of 20 GB RAM is required for Satellite Server to function. In addition, a minimum of 4 GB RAM of swap space is also recommended. Satellite running with less RAM than the minimum value might not operate correctly.
- A unique host name, which can contain lower-case letters, numbers, dots (.) and hyphens (-)
- A current Red Hat Satellite subscription
- Administrative user (root) access
- A system umask of 0022
- Full forward and reverse DNS resolution using a fully-qualified domain name
Before you install Satellite Server, ensure that your environment meets the requirements for installation.
Satellite Server must be installed on a freshly provisioned system that serves no other function except to run Satellite Server. The freshly provisioned system must not have the following users provided by external identity providers to avoid conflicts with the local users that Satellite Server creates:
- postgres
- mongodb
- apache
- qpidd
- qdrouterd
- squid
- foreman
- tomcat
- foreman-proxy
- puppet
- puppetserver
Certified hypervisors
Satellite Server is fully supported on both physical systems and virtual machines that run on hypervisors that are supported to run Red Hat Enterprise Linux. For more information about certified hypervisors, see Which hypervisors are certified to run Red Hat Enterprise Linux?.
SELinux Mode
SELinux must be enabled, either in enforcing or permissive mode. Installation with disabled SELinux is not supported.
FIPS Mode
You can install Satellite Server on a Red Hat Enterprise Linux system that is operating in FIPS mode. For more information, see Enabling FIPS Mode in the Red Hat Enterprise Linux Security Guide.
1.2. Storage Requirements
The following table details storage requirements for specific directories. These values are based on expected use case scenarios and can vary according to individual environments.
The runtime size was measured with Red Hat Enterprise Linux 6, 7, and 8 repositories synchronized.
Directory | Installation Size | Runtime Size |
---|---|---|
/var/cache/pulp/ | 1 MB | 30 GB |
/var/lib/pulp/ | 1 MB | 300 GB |
/var/lib/mongodb/ | 3.5 GB | 50 GB |
/var/lib/qpidd/ | 25 MB | Not Applicable |
/var/log/ | 10 MB | 10 GB |
/var/opt/rh/rh-postgresql12 | 100 MB | 10 GB |
/var/spool/squid/ | 0 MB | 10 GB |
/usr | 3 GB | Not Applicable |
/opt | 3 GB | Not Applicable |
/opt/puppetlabs | 500 MB | Not Applicable |
1.3. Storage Guidelines
Consider the following guidelines when installing Satellite Server to increase efficiency.
-
If you mount the
/tmp
directory as a separate file system, you must use theexec
mount option in the/etc/fstab
file. If/tmp
is already mounted with thenoexec
option, you must change the option toexec
and re-mount the file system. This is a requirement for thepuppetserver
service to work. -
Because most Satellite Server data is stored in the
/var
directory, mounting/var
on LVM storage can help the system to scale. -
Using the same volume for the
/var/cache/pulp/
and/var/lib/pulp/
directories can decrease the time required to move content from/var/cache/pulp/
to/var/lib/pulp/
after synchronizing. -
The
/var/lib/qpidd/
directory uses slightly more than 2 MB per Content Host managed by thegoferd
service. For example, 10 000 Content Hosts require 20 GB of disk space in/var/lib/qpidd/
. -
Use high-bandwidth, low-latency storage for the
/var/lib/pulp/
and/var/lib/mongodb/
directories. As Red Hat Satellite has many operations that are I/O intensive, using high latency, low-bandwidth storage causes performance degradation. Ensure your installation has a speed in the range 60 - 80 Megabytes per second. You can use thefio
tool to get this data. See the Red Hat Knowledgebase solution Impact of Disk Speed on Satellite Operations for more information on using thefio
tool.
File System Guidelines
-
Use the XFS file system for Red Hat Satellite 6 because it does not have the inode limitations that
ext4
does. Because Satellite Server uses a lot of symbolic links it is likely that your system might run out of inodes if usingext4
and the default number of inodes. -
Do not use NFS with MongoDB because MongoDB does not use conventional I/O to access data files and performance problems occur when both the data files and the journal files are hosted on NFS. If required to use NFS, mount the volume with the following options in the
/etc/fstab
file:bg
,nolock
, andnoatime
. - Do not use NFS for Pulp data storage. Using NFS for Pulp has a negative performance impact on content synchronization.
- Do not use the GFS2 file system as the input-output latency is too high.
Log File Storage
Log files are written to /var/log/messages/,
/var/log/httpd/
, and /var/lib/foreman-proxy/openscap/content/
. You can manage the size of these files using logrotate. For more information, see Log Rotation in the Red Hat Enterprise Linux 7 System Administrator’s Guide.
The exact amount of storage you require for log messages depends on your installation and setup.
SELinux Considerations for NFS Mount
When the /var/lib/pulp
directory is mounted using an NFS share, SELinux blocks the synchronization process. To avoid this, specify the SELinux context of the /var/lib/pulp
directory in the file system table by adding the following lines to /etc/fstab
:
nfs.example.com:/nfsshare /var/lib/pulp/content nfs context="system_u:object_r:httpd_sys_rw_content_t:s0" 1 2
If NFS share is already mounted, remount it using the above configuration and enter the following command:
# chcon -R system_u:object_r:httpd_sys_rw_content_t:s0 /var/lib/pulp
Duplicated Packages
Packages that are duplicated in different repositories are only stored once on the disk. Additional repositories containing duplicate packages require less additional storage. The bulk of storage resides in the /var/lib/mongodb/
and /var/lib/pulp/
directories. These end points are not manually configurable. Ensure that storage is available on the /var
file system to prevent storage problems.
Temporary Storage
The /var/cache/pulp/
directory is used to temporarily store content while it is being synchronized. After a full synchronization task is completed, the content is moved to the /var/lib/pulp/
directory.
For content in RPM format, each RPM file is moved to the /var/lib/pulp
directory after it is synchronized. A maximum of 5 RPM files are stored in the /var/cache/pulp/
directory at any time. Up to 8 RPM content synchronization tasks can run simultaneously by default, with each using up to 1 GB of metadata.
Software Collections
Software collections are installed in the /opt/rh/
and /opt/theforeman/
directories.
Write and execute permissions by the root user are required for installation to the /opt
directory.
Symbolic links
You cannot use symbolic links for /var/lib/pulp/
and /var/lib/mongodb/
.
ISO Images
For content in ISO format, all ISO files per synchronization task are stored in /var/cache/pulp/
until the task is complete, after which they are moved to the /var/lib/pulp/
directory.
If you plan to use ISO images for installing or updating, you must provide external storage or allow space in /var/tmp
for temporarily storing ISO files.
For example, if you are synchronizing four ISO files, each 4 GB in size, this requires a total of 16 GB in the /var/cache/pulp/
directory. Consider the number of ISO files you intend synchronizing because the temporary disk space required for them typically exceeds that of RPM content.
1.4. Supported Operating Systems
You can install the operating system from a disc, local ISO image, kickstart, or any other method that Red Hat supports. Red Hat Satellite Server is supported only on the latest versions of Red Hat Enterprise Linux 7 Server that is available at the time when Satellite Server 6.9 is installed. Previous versions of Red Hat Enterprise Linux including EUS or z-stream are not supported.
Red Hat Satellite Server requires a Red Hat Enterprise Linux installation with the @Base
package group with no other package-set modifications, and without third-party configurations or software not directly necessary for the direct operation of the server. This restriction includes hardening and other non-Red Hat security software. If you require such software in your infrastructure, install and verify a complete working Satellite Server first, then create a backup of the system before adding any non-Red Hat software.
Install Satellite Server on a freshly provisioned system.
Red Hat does not support using the system for anything other than running Satellite Server.
1.5. Supported Browsers
Satellite supports recent versions of Firefox and Google Chrome browsers.
The Satellite web UI and command-line interface support English, Portuguese, Simplified Chinese Traditional Chinese, Korean, Japanese, Italian, Spanish, Russian, French, and German.
1.6. Ports and Firewalls Requirements
For the components of Satellite architecture to communicate, ensure that the required network ports are open and free on the base operating system. You must also ensure that the required network ports are open on any network-based firewalls.
Use this information to configure any network-based firewalls. Note that some cloud solutions must be specifically configured to allow communications between machines because they isolate machines similarly to network-based firewalls. If you use an application-based firewall, ensure that the application-based firewall permits all applications that are listed in the tables and known to your firewall. If possible, disable the application checking and allow open port communication based on the protocol.
Integrated Capsule
Satellite Server has an integrated Capsule and any host that is directly connected to Satellite Server is a Client of Satellite in the context of this section. This includes the base operating system on which Capsule Server is running.
Clients of Capsule
Hosts which are clients of Capsules, other than Satellite’s integrated Capsule, do not need access to Satellite Server. For more information on Satellite Topology, see Capsule Networking in Planning for Red Hat Satellite 6.
Required ports can change based on your configuration.
A matrix table of ports is available in the Red Hat Knowledgebase solution Red Hat Satellite List of Network Ports.
The following tables indicate the destination port and the direction of network traffic:
Port | Protocol | Service | Required For |
---|---|---|---|
443 | TCP | HTTPS | Browser-based UI access to Satellite |
80 | TCP | HTTP | Redirection to HTTPS for web UI access to Satellite (Optional) |
Port | Protocol | Service | Required For |
---|---|---|---|
80 | TCP | HTTP | Anaconda, yum, for obtaining Katello certificates, templates, and for downloading iPXE firmware |
443 | TCP | HTTPS | Subscription Management Services, yum, Telemetry Services, and for connection to the Katello Agent |
5646 | TCP | AMQP | The Capsule Qpid dispatch router to the Qpid dispatch router in Satellite |
5647 | TCP | AMQP | Katello Agent to communicate with Satellite’s Qpid dispatch router |
8000 | TCP | HTTP | Anaconda to download kickstart templates to hosts, and for downloading iPXE firmware |
8140 | TCP | HTTPS | Puppet agent to Puppet master connections |
9090 | TCP | HTTPS | Sending SCAP reports to the integrated Capsule, for the discovery image during provisioning, and for communicating with Satellite Server to copy the SSH keys for Remote Execution (Rex) configuration |
53 | TCP and UDP | DNS | Client DNS queries to a Satellite’s integrated Capsule DNS service (Optional) |
67 | UDP | DHCP | Client to Satellite’s integrated Capsule broadcasts, DHCP broadcasts for Client provisioning from a Satellite’s integrated Capsule (Optional) |
69 | UDP | TFTP | Clients downloading PXE boot image files from a Satellites' integrated Capsule for provisioning (Optional) |
5000 | TCP | HTTPS | Connection to Katello for the Docker registry (Optional) |
Any managed host that is directly connected to Satellite Server is a client in this context because it is a client of the integrated Capsule. This includes the base operating system on which a Capsule Server is running.
Port | Protocol | Service | Required for |
---|---|---|---|
443 | TCP | HTTPS | Connections to the Pulp server in the Capsule |
9090 | TCP | HTTPS | Connections to the proxy in the Capsule |
80 | TCP | HTTP | Downloading a bootdisk (Optional) |
Port | Protocol | Service | Required For |
---|---|---|---|
22 | TCP | SSH | Satellite and Capsule originated communications, for Remote Execution (Rex) and Ansible. |
443 | TCP | HTTPS | Satellite originated communications, for vCenter compute resource. |
5000 | TCP | HTTP | Satellite originated communications, for compute resources in OpenStack or for running containers. |
22, 16514 | TCP | SSH, SSL/TLS | Satellite originated communications, for compute resources in libvirt. |
389, 636 | TCP | LDAP, LDAPS | Satellite originated communications, for LDAP and secured LDAP authentication sources. |
5900 to 5930 | TCP | SSL/TLS | Satellite originated communications, for NoVNC console in web UI to hypervisors. |
1.7. Enabling Connections from a Client to Satellite Server
Capsules and Content Hosts that are clients of a Satellite Server’s internal Capsule require access through Satellite’s host-based firewall and any network-based firewalls.
Use this procedure to configure the host-based firewall on the Red Hat Enterprise Linux 7 system that Satellite is installed on, to enable incoming connections from Clients, and to make the configuration persistent across system reboots. For more information on the ports used, see Section 1.6, “Ports and Firewalls Requirements”.
Procedure
To open the ports for client to Satellite communication, enter the following command on the base operating system that you want to install Satellite on:
# firewall-cmd \ --add-port="80/tcp" --add-port="443/tcp" \ --add-port="5647/tcp" --add-port="8000/tcp" \ --add-port="8140/tcp" --add-port="9090/tcp" \ --add-port="53/udp" --add-port="53/tcp" \ --add-port="67/udp" --add-port="69/udp" \ --add-port="5000/tcp"
Make the changes persistent:
# firewall-cmd --runtime-to-permanent
1.8. Verifying Firewall Settings
Use this procedure to verify your changes to the firewall settings.
Procedure
To verify the firewall settings, complete the following step:
Enter the following command:
# firewall-cmd --list-all
For more information, see Getting Started with firewalld in the Red Hat Enterprise Linux 7 Security Guide.
1.9. Verifying DNS resolution
Verify the full forward and reverse DNS resolution using a fully-qualified domain name to prevent issues while installing Satellite.
Procedure
Ensure that the host name and local host resolve correctly:
# ping -c1 localhost # ping -c1 `hostname -f` # my_system.domain.com
Successful name resolution results in output similar to the following:
# ping -c1 localhost PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.043 ms --- localhost ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.043/0.043/0.043/0.000 ms # ping -c1 `hostname -f` PING hostname.gateway (XX.XX.XX.XX) 56(84) bytes of data. 64 bytes from hostname.gateway (XX.XX.XX.XX): icmp_seq=1 ttl=64 time=0.019 ms --- localhost.gateway ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.019/0.019/0.019/0.000 ms
To avoid discrepancies with static and transient host names, set all the host names on the system by entering the following command:
# hostnamectl set-hostname name
For more information, see the Configuring Host Names Using hostnamectl in the Red Hat Enterprise Linux 7 Networking Guide.
Name resolution is critical to the operation of Satellite 6. If Satellite cannot properly resolve its fully qualified domain name, tasks such as content management, subscription management, and provisioning will fail.