mirror of
https://github.com/de-it-krachten/ansible-role-postgresql
synced 2026-05-14 03:41:54 +00:00
No description
- Jinja 100%
# [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 ([ |
||
|---|---|---|
| .github/workflows | ||
| defaults | ||
| handlers | ||
| meta | ||
| molecule/default | ||
| tasks | ||
| templates | ||
| .ansible-lint | ||
| .cicd | ||
| .cicd.overwrite | ||
| .collections | ||
| .gitignore | ||
| .releaserc.yml | ||
| .roles | ||
| .yamllint | ||
| CHANGELOG.md | ||
| README.md | ||
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