trainline-eu.ansible_postgresql_role
Rôle Ansible PostgreSQL 
Rôle Ansible qui installe et configure des clusters, des bases de données et des utilisateurs PostgreSQL.
Voir la page du rôle sur Ansible Galaxy.
Installation
Ce rôle a été testé sur Ansible 2.5.0 et versions supérieures.
Pour installer :
ansible-galaxy install trainline-eu.ansible_postgresql_role
Dépendances
Pas de dépendances
Dépendances recommandées :
Matrice de compatibilité
Ce tableau liste les versions testées des couples OS/PostgreSQL.
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: - testé, fonctionne bien
- :grey_question: - fonctionnera à l'avenir (aidez si vous pouvez)
- :interrobang: - peut-être fonctionne, pas testé
- :no_entry: - PostgreSQL a atteint la fin de son support
Variables
# Paramètres de base
postgres_listen_addresses: [ '127.0.0.1' ] # Optionnel
postgres_log_dir: '/home/postgres-logs' # Optionnel
postgres_data_dir: '/home/postgres' # Optionnel
postgres_clusters: # Obligatoire
- version: 11 # Obligatoire
name: 'main' # Obligatoire
port: 5432 # Obligatoire
checksums: True # Optionnel
fsync_enabled: False # Optionnel
archive_enabled: False # Optionnel
wal_level: 'logical' # Optionnel
max_replication_slots: 10 # Optionnel
barman_directory: None # Optionnel
# Définir le cluster comme serveur de secours
primary: # Optionnel
host: '127.0.1.1' # Obligatoire
port: 5433 # Obligatoire
replication_user: 'replicator' # Obligatoire
replication_password: 'SuperSecret' # Obligatoire
restore_command: None # Optionnel
restore_barman_directory: None # Optionnel
# Liste des utilisateurs à créer (optionnel)
users:
- username: 'replicator' # Obligatoire
password: 'SuperSecret' # Obligatoire
permissions: 'REPLICATION' # Obligatoire
# Liste des bases de données à créer (optionnel)
databases:
- dbname: my_database # Obligatoire
owner: john # Obligatoire
extensions: # Optionnel
- names: [ 'postgis', 'postgis_topology' ]
apt_deps: [ 'postgresql-11-postgis' ]
extra_config: # Optionnel
max_connections: 100 # Optionnel
shared_preload_libraries: '' # Optionnel
max_worker_processes: 8 # Optionnel
track_commit_timestamp: off # Optionnel
max_standby_archive_delay: 30s # Optionnel
max_standby_streaming_delay: 600s # Optionnel
# Configuration Postgres (Optionnel)
postgres_log_line_prefix: '%m [%p] base de données : %d hôte : %h utilisateur : %u '
postgres_datestyle: 'iso, dmy'
postgres_locale_formats: fr_FR.UTF-8
postgres_text_search_config: pg_catalog.french
# Configuration pg_hba de Postgres (optionnel)
postgres_allowed_hosts:
- user: all
range: 10.0.0.0/24
postgres_replication_hosts:
- user: replicator
range: 10.0.0.0/24
# Configuration liée à Ansible
postgres_become_method: su # Optionnel
# Connectivité Barman
postgres_barman_server: barman.example.com # Requis si au moins un serveur a archive_enabled activé
postgres_barman_rsync_enabled: False # Optionnel
postgres_barman_rsync_options: '' # Optionnel
postgres_barman_remote_user: barman # Optionnel
postgres_barman_path_prefix: '~' # Optionnel, requis si utilisation de rsync
Tests
Ce projet comprend un playbook de test test/main.yml
. Il utilise Docker
pour provisionner des conteneurs localement et met en place un cluster postgresql à 3 nœuds avec un serveur barman.
La couverture de ce playbook n'est probablement pas complète, mais au moins il est là.
Si vous contribuez, veuillez d'abord tester vos modifications dans un nouveau playbook dans le répertoire test/
à l'intérieur des conteneurs docker, (en utilisant la distribution ciblée), et si possible, assurez-vous que votre changement est couvert dans les tests.
Licence
Sous licence MIT. Consultez le fichier LICENSE pour plus de détails.
Remerciements
Créateurs :
Mainteneurs :
Retours, rapports de bogues, demandes, ...
Sont les bienvenus!
Install, configure and manage PostgreSQL clusters
ansible-galaxy install trainline-eu.ansible_postgresql_role