trainline-eu.ansible_postgresql_role
Rola Ansible dla PostgreSQL 
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, ...
Są mile widziane!
Install, configure and manage PostgreSQL clusters
ansible-galaxy install trainline-eu.ansible_postgresql_role