No description
Find a file
semantic-release-bot 39fb9089e5 chore(release): 1.7.0 [skip ci]
# [1.7.0](https://github.com/de-it-krachten/ansible-role-postgresql/compare/v1.6.0...v1.7.0) (2026-04-08)

### Features

* Added support for Ubuntu 26.04 LTS ([a983fb1](a983fb1f42))
2026-04-08 16:06:18 +00:00
.github/workflows Update CI 2026-04-03 23:45:19 +02:00
defaults fix: Make virtualenv for psycopg2 optional 2026-03-11 19:36:03 +01:00
handlers Initial postgresql code for running on VM 2023-10-22 13:50:07 +02:00
meta Update supported platforms & CI 2025-08-11 13:06:52 +02:00
molecule/default Update CI 2026-04-03 23:45:19 +02:00
tasks fix: Make virtualenv for psycopg2 optional 2026-03-11 19:36:03 +01:00
templates Initial postgresql code for running on VM 2023-10-22 13:50:07 +02:00
.ansible-lint fix: Make virtualenv for psycopg2 optional 2026-03-11 19:36:03 +01:00
.cicd Update CI 2026-04-03 23:45:19 +02:00
.cicd.overwrite fix: Make virtualenv for psycopg2 optional 2026-03-11 19:36:03 +01:00
.collections Update CI 2024-04-11 09:57:44 +02:00
.gitignore feat: Update supported platforms & CI 2024-12-29 11:42:20 +01:00
.releaserc.yml Update CI 2026-03-06 23:01:16 +01:00
.roles Initial postgresql code for running on VM 2023-10-22 13:50:07 +02:00
.yamllint feat: Support both server & client installation 2024-11-10 20:21:40 +01:00
CHANGELOG.md chore(release): 1.7.0 [skip ci] 2026-04-08 16:06:18 +00:00
README.md Update CI 2026-04-03 23:45:19 +02:00

CI

ansible-role-postgresql

PostgreSQL installation (v14+) https://www.postgresql.org

Dependencies

Roles

  • deitkrachten.python

Collections

  • community.postgresql

Platforms

Supported platforms

  • Red Hat Enterprise Linux 81
  • Red Hat Enterprise Linux 91
  • Red Hat Enterprise Linux 101
  • RockyLinux 8
  • RockyLinux 9
  • RockyLinux 10
  • OracleLinux 8
  • OracleLinux 9
  • OracleLinux 10
  • AlmaLinux 8
  • AlmaLinux 9
  • AlmaLinux 10
  • Debian 11 (Bullseye)
  • Debian 12 (Bookworm)
  • Debian 13 (Trixie)
  • Ubuntu 22.04 LTS
  • Ubuntu 24.04 LTS
  • Ubuntu 26.04 LTS

Note: 1 : no automated testing is performed on these platforms

Role Variables

defaults/main.yml


# Type of installation (client or server)
postgresql_install_type: server

# Installation source to use (vendor or oss)
postgresql_type: oss

# Postgresql version
postgresql_version: 16

# Defines proxy to use
# postgresql_proxy: http://127.0.0.1:3128

# List of server packages
postgresql_optional_packages: []

# Should optional packages (devel) be installed
postgresql_install_optional_packages: false

# Use pypi packages in virtualenv
postgresql_venv_use: false

# Location for pypi virtualenv
postgresql_venv_root: /usr/local/venv/postgresql

## List of packages
postgresql_venv_packages:
  - psycopg2-binary

# Password encryption to use
postgresql_password_encryption_scheme: scram-sha-256

# Service name
postgresql_service: postgresql

# Data direcotry location
postgresql_data_dir: /var/lib/pgsql/data

# Pwsotgresql encryption
# postgresql_encryption_scheme: md5
postgresql_encryption_scheme: scram-sha-256

# Postgresql OS user / group
postgresql_user: postgres
postgresql_group: postgres

# Should database user have full access
postgresql_db_user_full_access: false

# Dict of postgrewsql settings
postgresql_settings:
  listen_addresses: "127.0.0.1"
  password_encryption: "{{ postgresql_encryption_scheme }}"

# List of HBA entries (remote connections)
postgresql_hba_entries:
  - { type: local, db: all, user: all, address: '', method: peer }
  # - { type: host, db: all, user: all, address: '127.0.0.1/32', method: ident }
  # - { type: host, db: all, user: all, address: '::1/128', method: ident }
  - { type: local, db: replication, user: all, address: '', method: 'peer' }
  - { type: host, db: replication, user: all, address: '127.0.0.1/32', method: 'ident' }
  - { type: host, db: replication, user: all, address: '::1/128', method: 'ident' }
  - { type: host, db: all, user: all, address: '127.0.0.1/32', method: '{{ postgresql_password_encryption_scheme }}' }

defaults/family-Debian.yml


# OSS repository url
postgresql_repo: https://apt.postgresql.org/pub/repos/apt

# OSS APT GPG key
postgresql_gpg_key: https://www.postgresql.org/media/keys/ACCC4CF8.asc

# Lists of packages
postgresql_server_packages:
  - postgresql-{{ postgresql_version }}
  - python3-psycopg2
postgresql_client_packages:
  - postgresql-client-{{ postgresql_version }}
  - python3-psycopg2
postgresql_optional_packages:
  - libpq-dev

# binary/data/etc directory
postgresql_bin_dir: /usr/lib/postgresql/{{ postgresql_version }}/bin
postgresql_data_dir: /var/lib/postgresql/{{ postgresql_version }}/main
postgresql_etc_dir: /etc/postgresql/{{ postgresql_version }}/main

defaults/family-RedHat-8.yml


# List of optional packages
postgresql_optional_packages:
  - postgresql{{ postgresql_version }}-devel
  - python3-wheel

defaults/family-RedHat.yml


# Repository gpg url
postgresql_repo: https://download.postgresql.org/pub/repos/yum/{{ postgresql_version }}/redhat/rhel-$releasever-$basearch

# Repository gpg key
postgresql_gpg_key: >-
  https://download.postgresql.org/pub/repos/yum/keys/PGDG-RPM-GPG-KEY-RHEL

# List of required packages
postgresql_server_packages:
  - postgresql{{ postgresql_version }}-server
  - python3-psycopg2
postgresql_client_packages:
  - postgresql{{ postgresql_version }}
  - python3-psycopg2
postgresql_optional_packages:
  - postgresql{{ postgresql_version }}-devel

# Binary/data/etc directory location
postgresql_bin_dir: /usr/pgsql-{{ postgresql_version }}/bin
postgresql_data_dir: /var/lib/pgsql/{{ postgresql_version }}/data
postgresql_etc_dir: /var/lib/pgsql/{{ postgresql_version }}/data

# Service
postgresql_service: postgresql-{{ postgresql_version }}

Example Playbook

molecule/default/converge.yml


- name: sample playbook for role 'postgresql'
  hosts: all
  become: 'yes'
  vars:
    postgresql_db_name: test
    postgresql_db_user: test
    postgresql_db_password: test
  tasks:
    - name: Install postgresql client
      ansible.builtin.include_role:
        name: postgresql
      vars:
        postgresql_install_type: client
    - name: Install postgresql server
      ansible.builtin.include_role:
        name: postgresql
      vars:
        postgresql_install_type: server