Install PE with an unmanaged PostgreSQL service

If you use an unmanaged PostgreSQL service with with PE 2025.11 or later, you are responsible for installing, maintaining, and upgrading the PostgreSQL server. Before installing PE, verify that your PostgreSQL deployment meets the requirements described in this topic.

Before you begin:

Before installing PE 2025.11 or later with an unmanaged PostgreSQL service:

  • Your unmanaged PostgreSQL server must be running PostgreSQL 17 before installing PE 2025.11 or later.

  • Configure the PostgreSQL server to use the en_US.UTF-8 locale and UTF-8 encoding.

  • Install the required PostgreSQL extension packages on the PostgreSQL host as described in this topic.

PE does not install or manage unmanaged PostgreSQL servers and does not verify the PostgreSQL version during a fresh installation. Before running the PE installer, confirm that your PostgreSQL server is running PostgreSQL 17 when installing PE 2025.11 or later.

The configuration syntax for postgresql.conf and pg_hba.conf is unchanged between PostgreSQL 14 and PostgreSQL 17. No configuration file changes are required solely because of the PostgreSQL major-version upgrade. Existing connection settings can be used without modification after upgrading PostgreSQL.

Locale and encoding requirements

Configure the PostgreSQL server with the following settings:

  • Locale: en_US.UTF-8

  • Encoding: UTF-8

These requirements apply to all PE databases hosted on an unmanaged PostgreSQL server.

Install PostgreSQL extensions

Before installing PE, install the required PostgreSQL extension packages on the PostgreSQL host.

PE installs each extension into the appropriate database automatically. You do not need to create extensions manually. However, the extension binaries must be installed on the PostgreSQL host before PE can load them.

Install the postgresql17-contrib package

Install the postgresql17-contrib package from the PostgreSQL Global Development Group (PGDG) repository on the unmanaged PostgreSQL host.

RHEL, Rocky Linux, and Oracle Linux:

dnf install postgresql17-contrib

Debian and Ubuntu:

apt-get install postgresql-17-contrib

This package provides the following extensions:

Extension Used by
pgcrypto Most PE databases, including pe-puppetdb, pe-rbac, pe-ca, pe-activity, pe-orchestrator, pe-inventory, pe-patching, pe-infra-assistant, and pe-workflow (encryption)
pg_trgm pe-puppetdb (text search)
citext pe-classifier (case-insensitive text)
pg_stat_statements All PE databases (query monitoring)

Install pg_repack

Install pg_repack version 1.5.0 or later for PostgreSQL 17 from the PGDG repository.

RHEL, Rocky Linux, and Oracle Linux:

dnf install pg_repack_17

Debian and Ubuntu:

apt-get install postgresql-17-repack

pg_repack is required for all PE databases. PE uses pg_repack to perform online table maintenance without exclusive locks.

Version 1.5.0 is the first upstream release that supports PostgreSQL 17. PE 2025.11 ships pg_repack 1.5.3 in its bundled PostgreSQL packages.

Install pglogical for HA deployments

If you are configuring PE high availability (HA) with a replica backed by an unmanaged PostgreSQL server, install pglogical version 2.4.4 or later for PostgreSQL 17 from the pglogical project repository.

Standard unmanaged PostgreSQL deployments do not require pglogical.

Version 2.4.4 is the first upstream release that supports PostgreSQL 17. PE 2025.11 includes pglogical 2.4.6 in PE-managed PostgreSQL deployments.

Related information