mahdi22.postgresql
Rôle Ansible postgresql
Un rôle Ansible pour installer PostgreSQL sur Linux pour les distributions RHEL/CentOS, Debian, Ubuntu et SUSE SLES. Plus précisément, les responsabilités de ce rôle sont de :
- Installer PostgreSQL
- Configurer les paramètres et l'authentification de PostgreSQL
- Créer des utilisateurs
- Créer des bases de données
Installation
$ ansible-galaxy install mahdi22.postgresql
Variables du Rôle
variable/main.yml Définir les paramètres de configuration de PostgreSQL ou utiliser des valeurs par défaut
postgresql_config:
  - option: port
    value: 5432
  - option: log_destination
    value: syslog
  - option: log_directory
    value: /var/log/postgresql/
Définir ou modifier les paramètres d'authentification de PostgreSQL ou utiliser des valeurs par défaut
postgresql_authentication:
  - {type: local, database: all, user: postgres, auth_method: peer}
  - {type: local, database: all, user: all, auth_method: md5}
  - {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}
  - {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}
Définir les bases de données et les utilisateurs PostgreSQL à créer. Si vous ne souhaitez pas créer d'utilisateurs, définissez create_users: no et create_databases: no dans default/main.yml.
Exemple de création de plusieurs bases de données et utilisateurs :
postgresql_databases_users: []
#postgresql_databases_users:
#  - {database: test, user: user1, userpassword: user1pass, priv: ALL}  #ajoute la base de données 'test' et l'utilisateur 'user1' avec le mot de passe 'user1pass' avec tous les privilèges
#  - {database: test1, user:'', userpassword: '', priv: ''}              #ajoute seulement la base de données 'test1'
#  - {database: '', user: user2, userpassword: user2pass, priv: ''}     #ajoute seulement l'utilisateur 'user2' avec le mot de passe 'user2pass'
- Pour créer seulement une base de données sans utilisateur, définissez database: nomdelabase, user:''
- Pour créer seulement un utilisateur, définissez database: '', user: nom_utilisateur, userpassword: motdepasse
- Pour créer une base de données avec des PRIVILÈGES d'utilisateur, définissez database: nomdelabase, user: nom_utilisateur, userpassword: motdepasse, priv: privilèges
Configuration de base
| Variable | Par défaut | Commentaires | 
|---|---|---|
| use_proxy | 'False' | Si les hôtes gérés sont derrière un proxy web, définissez use_proxy: True | 
| http_proxy | 'http://proxy.lab.local:8080/' | Définissez le serveur proxy et le port, remplacez proxy.lab.local:8080 | 
| https_proxy | 'http://proxy.lab.local:8080/' | Définissez le serveur proxy et le port, remplacez proxy.lab.local:8080 | 
| postgresql_version | Version de PostgreSQL qui sera installée | |
| listen_addresses_host_ip | oui | oui pour activer l'écoute de PostgreSQL sur l'interface IP réseau | 
| create_users | oui | créer les utilisateurs PostgreSQL configurés dans les fichiers variables | 
| create_databases | oui | créer les bases de données PostgreSQL configurées dans les fichiers variables | 
Remarques
(1) Si les hôtes gérés sont derrière un proxy web, définissez les variables suivantes dans le fichier defaults/main.yml :
use_proxy: False
proxy_env:
  http_proxy: http://proxy.local:8080/
  https_proxy: http://proxy.local:8080/
Exemple de Playbook
- hosts: dbservers
  roles:
    - role: mahdi22.postgresql
      become: yes
Tests
Ce rôle a été testé sur les distributions Linux suivantes :
- RHEL/CentOS 8 version PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
- RHEL/CentOS 7 version PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
- Debian 10 version PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
- Debian 9 version PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
- Ubuntu 20.04 version PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
- Ubuntu 18.04 version PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
- Ubuntu 16.04 version PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
- Suse SLES 12 version PostgreSQL (9.5, 9.4, 10, 11, 12)
- Suse SLES 15 version PostgreSQL (11, 12, 13)
Install and configure Postgresql server on Rhel/CentOS, Debian, Ubuntu and SUSE SLES ditributions
ansible-galaxy install mahdi22.postgresql