enix.postgresql

enix.postgresql

Un rôle pour déployer et configurer postgresql à partir de la version principale sur des hôtes unix en utilisant Ansible.

Exigences

Cibles prises en charge :

  • Debian 9 "Stretch"
  • Debian 10 "Buster"
  • Debian 11 "Bullseye"
  • Ubuntu 20.04 "Focal"
  • Ubuntu 22.04 "Jammy"

Variables du rôle

Ce rôle est préchargé avec presque toutes les valeurs par défaut disponibles. Vous pouvez remplacer chacune d'elles dans vos variables d'hôtes/groupe, dans votre inventaire ou dans votre play. Consultez les valeurs par défaut annotées dans defaults/main.yml pour obtenir de l'aide sur la configuration.

  • postgresql__version - branche de postgresql à installer. par défaut 14. disponibles : 10, 11, 12, 13, 14.
  • postgresql__extensions - paquets d'extensions postgresql à installer.
  • postgresql__global_config_options - options de configuration globales à définir dans postgresql.conf. options courantes :
postgresql__global_config_options:
  - option: listen_addresses
    value: '*'
  - option: log_min_duration_statement
    value: 1000
  - option: bonjour
    value: off
    state: absent
  • postgresql__includeconf - liste de fichiers de configuration à modéliser et à intégrer dans conf.d/.
  • postgresql__hba_entries - Entrées d'authentification basée sur l'hôte à configurer. remplacera les valeurs par défaut de PostgreSQL. Par défaut, non défini. Les champs obligatoires sont type, database, user, auth_method, les champs optionnels sont address, ip_address, ip_mask, auth_options. Pour reproduire la configuration fournie par défaut :
postgresql_hba_entries:
  - {type: local, database: all, user: postgres, auth_method: peer}
  - {type: local, database: all, user: all, auth_method: peer}
  - {type: host, database: all, user: all, address: '127.0.0.1/32', auth_method: md5}
  - {type: host, database: all, user: all, address: '::1/128', auth_method: md5}
# À partir de la version 10, il y a un rôle de réplication
  - {type: local, database: replication, user: all, auth_method: peer}
  - {type: host, database: replication, user: all, address: '127.0.0.1/32', auth_method: md5}
  - {type: host, database: replication, user: all, address: '::1/128', auth_method: md5}
  • postgresql__users - Utilisateurs à créer sur le serveur postgresql et identifiants associés :
postgresql__users:
  - {name: "foobar",
    password: "supersecure",
    encrypted: yes,
    expires: 'infinity',
    state: 'present',
    conn_limit: none,
    priv: none,
    role_attr_flags: none,
    db: none
  • postgresql__databases - état des bases de données à installer sur le serveur. le seul paramètre obligatoire est le nom :
postgresql__databases:
  - {name: test,
    lc_collate: 'en_US.UTF-8',
    lc_ctype: 'en_US.UTF-8',
    encoding: 'UTF-8',
    template: 'template0',
    owner: postgres,
    extension: [], # vérifier que vous avez installé le module d'extension nécessaire avant
    state: 'present'
   }
  • postgresql__install_pgbackrest - installer le logiciel pgbackrest https://pgbackrest.org.
  • postgresql__install_pg_auto_failover - installer le logiciel pg_auto_failover https://github.com/citusdata/pg_auto_failover.
  • postgresql__disable_initdb - désactiver la création du cluster principal par défaut. Utile en cas de création de cluster pg_auto_failover ou juste pour l'installation du package.

Dépendances

  • Aucune

Utilisation

Utilisez les exigences d'Ansible galaxy requirements.yml

    - src: enix.postgresql

Et ajoutez-le aux rôles de votre play :

    - hosts: all
      roles:
        - role enix.postgresql:
            postgresql__var: true

Vous pouvez également utiliser le rôle comme un playbook. Il vous sera demandé quels hôtes provisionner, et vous pourrez configurer davantage le play en utilisant --extra-vars.

ansible-playbook -i inventory --extra-vars='{...}' main.yml

À faire

  • Vérifier si nous déployons sur une réplique. Dans ce cas, ne pas créer de base de données, ne pas créer d'utilisateur.
  • Ajouter des tests CI en utilisant molecule.

Journal des modifications

2.1.0

Ajout de l'installation du logiciel pgbackrest et pg_auto_failover. Ajout de l'option disable_initdb. Cela empêche l'installation de créer le clusterdb postgres par défaut.

2.0.0

Ajout de la prise en charge de postgresql 13 et 14. Ajout de la prise en charge de Debian 10 Buster et Debian 11 Bullseye. Ajout de la prise en charge d'Ubuntu 20.04 Focal et Ubuntu 22.04 Jammy. Suppression de la prise en charge de debian jessie. Passage aux tests molecule. Utilisation des nouvelles tâches FQDN d'ansible.

1.2.0

Ajout de la prise en charge de postgresql 12.

1.1.0

Ajout de la prise en charge d'une liste d'extensions dans la définition et la configuration des bases de données.

1.0.0

Version initiale.

Licence

GPLv2

Informations sur l'auteur

Laurent CORBES laurent.corbes@enix.fr - http://www.enix.io

À propos du projet

Ansible role to deploy postgresql software

Installer
ansible-galaxy install enix.postgresql
Licence
Unknown
Téléchargements
19.2k
Propriétaire
Enix