trainline-eu.ansible_postgresql_role

Rola Ansible dla PostgreSQL Status budowy

Rola Ansible, która instaluje i konfiguruje klastry, bazy danych oraz użytkowników PostgreSQL.

Zobacz stronę roli na Ansible Galaxy.

Instalacja

Ta rola była testowana na Ansible 2.5.0 i wyższych.

Aby zainstalować:

ansible-galaxy install trainline-eu.ansible_postgresql_role

Zależności

Brak zależności.

Zalecane zależności:

Matryca kompatybilności

Ta tabela przedstawia przetestowane wersje par OS/PostgreSQL.

Dystrybucja / 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: - testowane, działa dobrze
  • :grey_question: - będzie działać w przyszłości (pomóż, jeśli możesz)
  • :interrobang: - może działa, nie testowane
  • :no_entry: - PostgreSQL osiągnął koniec wsparcia

Zmienne

# Ustawienia podstawowe
postgres_listen_addresses: [ '127.0.0.1' ] # Opcjonalne
postgres_log_dir: '/home/postgres-logs'    # Opcjonalne
postgres_data_dir: '/home/postgres'        # Opcjonalne
postgres_clusters:                         # Obowiązkowe
  - version: 11                              # Obowiązkowe
    name: 'main'                             # Obowiązkowe
    port: 5432                               # Obowiązkowe
    checksums: True                          # Opcjonalne
    fsync_enabled: False                     # Opcjonalne
    archive_enabled: False                   # Opcjonalne
    wal_level: 'logical'                     # Opcjonalne
    max_replication_slots: 10                # Opcjonalne
    barman_directory: None                   # Opcjonalne
    # Definiowanie klastra jako serwera standby
    primary:                                 # Opcjonalne
      host: '127.0.1.1'                        # Obowiązkowe
      port: 5433                               # Obowiązkowe
      replication_user:     'replicator'       # Obowiązkowe
      replication_password: 'SuperSecret'      # Obowiązkowe
      restore_command: None                    # Opcjonalne
      restore_barman_directory: None           # Opcjonalne
    # Lista użytkowników do utworzenia (opcjonalne)
    users:
      - username: 'replicator'                 # Obowiązkowe
        password: 'SuperSecret'                # Obowiązkowe
        permissions: 'REPLICATION'             # Obowiązkowe
    # Lista baz danych do utworzenia (opcjonalne)
    databases:
      - dbname: my_database                    # Obowiązkowe
        owner: john                            # Obowiązkowe
        extensions:                            # Opcjonalne
          - names: [ 'postgis', 'postgis_topology' ]
            apt_deps: [ 'postgresql-11-postgis' ]
    extra_config:                            # Opcjonalne
      max_connections: 100                     # Opcjonalne
      shared_preload_libraries: ''             # Opcjonalne
      max_worker_processes: 8                  # Opcjonalne
      track_commit_timestamp: off              # Opcjonalne
      max_standby_archive_delay: 30s           # Opcjonalne
      max_standby_streaming_delay: 600s        # Opcjonalne

# Konfiguracja Postgresa (Opcjonalne)
postgres_log_line_prefix: '%m [%p] bazy: %d host: %h użytkownik: %u '
postgres_datestyle: 'iso, dmy'
postgres_locale_formats: fr_FR.UTF-8
postgres_text_search_config: pg_catalog.french

# Konfiguracja pg_hba Postgresa (opcjonalne)
postgres_allowed_hosts:
  - user: all
    range: 10.0.0.0/24
postgres_replication_hosts:
  - user: replicator
    range: 10.0.0.0/24

# Konfiguracja związana z Ansible
postgres_become_method: su  # Opcjonalne

# Połączenie z Barmanem
postgres_barman_server: barman.example.com  # Wymagane, jeśli przynajmniej jeden serwer ma włączoną archiwizację
postgres_barman_rsync_enabled: False        # Opcjonalne
postgres_barman_rsync_options: ''           # Opcjonalne
postgres_barman_remote_user: barman         # Opcjonalne
postgres_barman_path_prefix: '~'            # Opcjonalne, wymagane jeśli używasz rsync

Testowanie

Ten projekt zawiera playbook testowy test/main.yml. Używa Docker do lokalnego provisioningu kontenerów i konfiguruje 3-węzłowy klaster PostgreSQL z serwerem Barman.

Pokrycie tego playbooka prawdopodobnie nie jest pełne, ale przynajmniej jest dostępne.

Jeśli chcesz wnieść swoje zmiany, najpierw przetestuj je w nowym playbooku w katalogu test/ w kontenerach dockerowych (używając docelowej dystrybucji), a jeśli to możliwe, upewnij się, że twoje zmiany są objęte testami.

Licencja

Licencjonowane na podstawie Licencji MIT. Zobacz plik LICENSE po szczegóły.

Podziękowania

Twórcy:

Utrzymujący:

Opinie, raportowanie błędów, prośby, ...

mile widziane!

O projekcie

Install, configure and manage PostgreSQL clusters

Zainstaluj
ansible-galaxy install trainline-eu.ansible_postgresql_role
Licencja
mit
Pobrania
3.8k
Właściciel