trainline-eu.ansible_postgresql_role

PostgreSQL Ansible-Rolle Build-Status

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!

Über das Projekt

Install, configure and manage PostgreSQL clusters

Installieren
ansible-galaxy install trainline-eu.ansible_postgresql_role
Lizenz
mit
Downloads
3.8k
Besitzer