trainline-eu.ansible_postgresql_role
PostgreSQL Ansible-Rolle 
Ansible-Rolle, die PostgreSQL-Cluster, Datenbanken und Benutzer installiert und konfiguriert.
Siehe Rollen-Seite auf Ansible Galaxy.
Installation
Diese Rolle wurde mit Ansible 2.5.0 und höher getestet.
Um zu installieren:
ansible-galaxy install trainline-eu.ansible_postgresql_role
Abhängigkeiten
Keine Abhängigkeiten.
Empfohlene Abhängigkeiten:
Kompatibilitätsmatrix
Diese Tabelle listet die getesteten Versionen von Betriebssystemen und PostgreSQL auf.
Distribution / PostgreSQL | 9.4 | 9.5 | 9.6 | 10 | 11 | 12 | 13 |
---|---|---|---|---|---|---|---|
Debian 9.x | :no_entry: :white_check_mark: | :no_entry: :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Debian 10.x | :no_entry: :white_check_mark: | :no_entry: :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- :white_check_mark: - getestet, funktioniert gut
- :grey_question: - wird in Zukunft funktionieren (helfen, wenn möglich)
- :interrobang: - funktioniert vielleicht, nicht getestet
- :no_entry: - PostgreSQL hat das Ende der Lebensdauer erreicht
Variablen
# Grundlegende Einstellungen
postgres_listen_addresses: [ '127.0.0.1' ] # Optional
postgres_log_dir: '/home/postgres-logs' # Optional
postgres_data_dir: '/home/postgres' # Optional
postgres_clusters: # Pflicht
- version: 11 # Pflicht
name: 'main' # Pflicht
port: 5432 # Pflicht
checksums: True # Optional
fsync_enabled: False # Optional
archive_enabled: False # Optional
wal_level: 'logical' # Optional
max_replication_slots: 10 # Optional
barman_directory: None # Optional
# Definiere Cluster als Standby-Server
primary: # Optional
host: '127.0.1.1' # Pflicht
port: 5433 # Pflicht
replication_user: 'replicator' # Pflicht
replication_password: 'SuperSecret' # Pflicht
restore_command: None # Optional
restore_barman_directory: None # Optional
# Liste von Benutzern, die erstellt werden sollen (optional)
users:
- username: 'replicator' # Pflicht
password: 'SuperSecret' # Pflicht
permissions: 'REPLICATION' # Pflicht
# Liste von Datenbanken, die erstellt werden sollen (optional)
databases:
- dbname: my_database # Pflicht
owner: john # Pflicht
extensions: # Optional
- names: [ 'postgis', 'postgis_topology' ]
apt_deps: [ 'postgresql-11-postgis' ]
extra_config: # Optional
max_connections: 100 # Optional
shared_preload_libraries: '' # Optional
max_worker_processes: 8 # Optional
track_commit_timestamp: off # Optional
max_standby_archive_delay: 30s # Optional
max_standby_streaming_delay: 600s # Optional
# Postgres-Konfiguration (Optional)
postgres_log_line_prefix: '%m [%p] Datenbank: %d Host: %h Benutzer: %u '
postgres_datestyle: 'iso, dmy'
postgres_locale_formats: fr_FR.UTF-8
postgres_text_search_config: pg_catalog.french
# Postgres pg_hba-Konfiguration (optional)
postgres_allowed_hosts:
- user: all
range: 10.0.0.0/24
postgres_replication_hosts:
- user: replicator
range: 10.0.0.0/24
# Ansible-bezogene Konfiguration
postgres_become_method: su # Optional
# Barman-Konnektivität
postgres_barman_server: barman.example.com # Erforderlich, wenn mindestens ein Server archive_enabled aktiviert hat
postgres_barman_rsync_enabled: False # Optional
postgres_barman_rsync_options: '' # Optional
postgres_barman_remote_user: barman # Optional
postgres_barman_path_prefix: '~' # Optional, erforderlich, wenn rsync verwendet wird
Tests
Dieses Projekt enthält ein test/main.yml
Test-Playbook. Es verwendet Docker
, um lokal Container bereitzustellen und ein 3-Knoten-PostgreSQL-Cluster mit einem Barman-Server einzurichten.
Die Abdeckung dieses Playbooks ist wahrscheinlich nicht vollständig, aber es ist zumindest vorhanden.
Wenn Sie beitragen möchten, testen Sie bitte zuerst Ihre Änderungen in einem neuen Playbook im test/
Verzeichnis innerhalb von Docker-Containern (unter Verwendung der vorgesehenen Distribution) und stellen Sie, wenn möglich, sicher, dass Ihre Änderung in den Tests abgedeckt ist.
Lizenz
Lizenz unter MIT-Lizenz. Siehe die LICENSE Datei für Einzelheiten.
Dank
Ersteller:
Betreuer:
Feedback, Fehlerberichte, Anfragen, ...
Sind willkommen!
Install, configure and manage PostgreSQL clusters
ansible-galaxy install trainline-eu.ansible_postgresql_role