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:
Operating System |
Architecture |
Notes |
Debian 11 (Bullseye) |
amd64 |
|
Debian 12 (Bookworm) |
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
-
Debian 11 (Bullseye)
-
Debian 12 (Bookworm)
-
Ubuntu 22.04 (Jammy)
-
Install the
wget
andca-certificates
packages:# apt install wget ca-certificates
-
Change directory to
/tmp
and retrieve thepuppet-release
package.-
For Puppet 8:
# cd /tmp && wget https://apt.puppet.com/puppet8-release-bullseye.deb
-
For Puppet 7:
# cd /tmp && wget https://apt.puppet.com/puppet7-release-bullseye.deb
-
-
Install the
puppet-release
package.-
For Puppet 8:
# apt install /tmp/puppet8-release-bullseye.deb
-
For Puppet 7:
# apt install /tmp/puppet7-release-bullseye.deb
-
-
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
-
Install the
wget
andca-certificates
packages:# apt install wget ca-certificates
-
Change directory to
/tmp
and retrieve thepuppet-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
-
-
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
-
-
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
-
Install the
wget
andca-certificates
packages:# apt install wget ca-certificates
-
Change directory to
/tmp
and retrieve thepuppet-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
-
-
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
-
-
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
-
Update package lists:
# apt update
-
Update all packages:
# apt upgrade
-
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.
-
Run the following command:
# foreman-installer
The script displays its progress and writes logs to /var/log/foreman-installer/foreman.log
.