trainline-eu.ansible_postgresql_role

Rôle Ansible PostgreSQL Statut du build

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!

À propos du projet

Install, configure and manage PostgreSQL clusters

Installer
ansible-galaxy install trainline-eu.ansible_postgresql_role
Licence
mit
Téléchargements
3.8k
Propriétaire