The Foreman installer is a collection of Puppet modules that installs everything required for a full working Foreman setup. It uses native operating system 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 12 (Bookworm)

amd64

Ubuntu 22.04 (Jammy)

amd64

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
  • Debian 12 (Bookworm)

  • 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 puppet-release package.

    • For Puppet 8:

      # cd /tmp && wget https://apt.puppet.com/puppet8-release-bookworm.deb
    • For Puppet 7:

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

    • For Puppet 8:

      # apt install /tmp/puppet8-release-bookworm.deb
    • For Puppet 7:

      # apt install /tmp/puppet7-release-bookworm.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/ bookworm 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
  1. Install the wget and ca-certificates packages:

    # apt install wget ca-certificates
  2. Change directory to /tmp and retrieve the puppet-release package.

    • For Puppet 8:

      # cd /tmp && wget https://apt.puppet.com/puppet8-release-jammy.deb
    • For Puppet 7:

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

    • For Puppet 8:

      # apt install /tmp/puppet8-release-jammy.deb
    • For Puppet 7:

      # 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. Upgrade all packages:

    # apt upgrade
  3. Install the packages:

    # 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 Foreman installer:

    # foreman-installer

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

Pre-release version Report issue