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 sonttype, database, user, auth_method
, les champs optionnels sontaddress, 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
Ansible role to deploy postgresql software
ansible-galaxy install enix.postgresql