The Foreman installer is a collection of Puppet modules that installs everything required for a full working Foreman setup. It uses native OS packaging (.rpm or .deb packages) and adds necessary configuration for the complete installation.

Components include the Foreman web UI, Smart Proxy, a Puppet server, TFTP, DNS and DHCP servers. It is configurable and the Puppet modules can be read or run in "no-op" mode to see what changes it will make.

1. Supported operating systems

The following operating systems are supported by the installer, have packages, and are tested for deploying Foreman:

Table 1. Operating systems supported by foreman-installer

Operating System

Architecture

Notes

Debian 11 (Bullseye)

amd64

Ubuntu 20.04 (Focal)

amd64

Ubuntu 22.04 (Jammy)

amd64

Foreman community advises against using an existing system because the Foreman installer will affect the configuration of several components.

The installation requires 4 GB of memory. For more information, see System Requirements.

The Foreman installer uses Puppet to install Foreman. This guide assumes that you have a newly installed operating system, on which the installer will setup Foreman, a Puppet server, and the Smart Proxy by default.

2. Configuring repositories

Procedure

Select the operating system and version you are installing on:

2.1. Debian 11 (Bullseye)

  1. Install the wget and ca-certificates packages:

    # apt install wget ca-certificates
  2. Change directory to /tmp and retrieve the puppet7-release-bullseye.deb package:

    # cd /tmp && wget https://apt.puppet.com/puppet7-release-bullseye.deb
  3. Install the puppet7-release-bullseye.deb package:

    # apt install /tmp/puppet7-release-bullseye.deb
  4. Enable the Foreman repository:

    # wget https://deb.theforeman.org/foreman.asc -O /etc/apt/trusted.gpg.d/foreman.asc
    # echo "deb http://deb.theforeman.org/ bullseye nightly" | sudo tee /etc/apt/sources.list.d/foreman.list
    # echo "deb http://deb.theforeman.org/ plugins nightly" | sudo tee -a /etc/apt/sources.list.d/foreman.list

2.2. Ubuntu 20.04 (Focal)

  1. Install the wget and ca-certificates packages:

    # apt install wget ca-certificates
  2. Change directory to /tmp and retrieve the puppet7-release-focal.deb package:

    # cd /tmp && wget https://apt.puppet.com/puppet7-release-focal.deb
  3. Install the puppet7-release-focal.deb package:

    # apt install /tmp/puppet7-release-focal.deb
  4. Enable the Foreman repository:

    # wget https://deb.theforeman.org/foreman.asc -O /etc/apt/trusted.gpg.d/foreman.asc
    # echo "deb http://deb.theforeman.org/ focal nightly" | sudo tee /etc/apt/sources.list.d/foreman.list
    # echo "deb http://deb.theforeman.org/ plugins nightly" | sudo tee -a /etc/apt/sources.list.d/foreman.list

2.3. Ubuntu 22.04 (Jammy)

  1. Install the wget and ca-certificates packages:

    # apt install wget ca-certificates
  2. Change directory to /tmp and retrieve the puppet7-release-jammy.deb package:

    # cd /tmp && wget https://apt.puppet.com/puppet7-release-jammy.deb
  3. Install the puppet7-release-jammy.deb package:

    # apt install /tmp/puppet7-release-jammy.deb
  4. Enable the Foreman repository:

    # wget https://deb.theforeman.org/foreman.asc -O /etc/apt/trusted.gpg.d/foreman.asc
    # echo "deb http://deb.theforeman.org/ jammy nightly" | sudo tee /etc/apt/sources.list.d/foreman.list
    # echo "deb http://deb.theforeman.org/ plugins nightly" | sudo tee -a /etc/apt/sources.list.d/foreman.list

3. Installing Foreman server packages

Procedure
  1. Update package lists:

    # apt update
  2. Update all packages:

    # apt upgrade
  3. Install foreman-installer:

    # apt install foreman-installer

4. Running the Foreman installer

The installation run is non-interactive, but the configuration can be customized by supplying any of the options listed in foreman-installer --help, or by running foreman-installer -i for interactive mode. More examples are described in the Installation Options section. The -v option disables the progress bar and displays all changes.

Procedure
  • Run the following command:

    # foreman-installer

The script displays its progress and writes logs to /var/log/foreman-installer/foreman.log.