nephosolutions.postgresql
NephoSolutions - Rôle Ansible PostgreSQL
Rôle Ansible qui installe et configure PostgreSQL, les extensions, les bases de données et les utilisateurs.
Dérivé de ANXS/postgresql
Installation
Ceci a été testé sur Ansible 2.4.0 et supérieur.
Pour installer :
ansible-galaxy install ANXS.postgresql
Exemple de Playbook
Voici un exemple de comment utiliser votre rôle :
- hosts: postgresql-server
become: yes
roles:
- { role: anxs.postgresql }
Dépendances
- ANXS.monit (Galaxy/GH) si vous voulez une protection avec monit (dans ce cas, vous devez définir
monit_protection: true
)
Matrice de compatibilité
Distribution / PostgreSQL | <= 9.3 | 9.4 | 9.5 | 9.6 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|
Ubuntu 14.04 | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: |
Ubuntu 16.04 | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: |
Debian 8.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: |
Debian 9.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: |
CentOS 6.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: |
CentOS 7.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: |
CentOS 8.x | :no_entry: | :grey_question: | :grey_question: | :grey_question: | :grey_question: | :grey_question: | :grey_question: |
Fedora latest | :no_entry: | :x: | :x: | :x: | :x: | :x: | :x: |
- :white_check_mark: - testé, fonctionne bien
- :warning: - Ne pas utiliser en production
- :grey_question: - fonctionnera à l'avenir (aidez si vous le pouvez)
- :interrobang: - peut-être fonctionne, pas testé
- :no_entry: - PostgreSQL a atteint la fin de son cycle de vie
Variables
# Paramètres de base
postgresql_version: 11
postgresql_encoding: "UTF-8"
postgresql_locale: "en_US.UTF-8"
postgresql_ctype: "en_US.UTF-8"
postgresql_admin_user: "postgres"
postgresql_default_auth_method: "peer"
postgresql_service_enabled: false # le service doit-il être activé, la valeur par défaut est true
postgresql_cluster_name: "main"
postgresql_cluster_reset: false
# Liste des bases de données à créer (optionnel)
# Remarque : pour plus de flexibilité avec les extensions, utilisez le paramètre postgresql_database_extensions.
postgresql_databases:
- name: foobar
owner: baz # optionnel ; spécifiez le propriétaire de la base de données
hstore: yes # drapeau pour installer l'extension hstore sur cette base de données (yes/no)
uuid_ossp: yes # drapeau pour installer l'extension uuid-ossp sur cette base de données (yes/no)
citext: yes # drapeau pour installer l'extension citext sur cette base de données (yes/no)
encoding: "UTF-8" # remplacer la variable globale {{ postgresql_encoding }} par base de données
lc_collate: "en_GB.UTF-8" # remplacer la variable globale {{ postgresql_locale }} par base de données
lc_ctype: "en_GB.UTF-8" # remplacer la variable globale {{ postgresql_ctype }} par base de données
# Liste des extensions de base de données à créer (optionnel)
postgresql_database_extensions:
- db: foobar
extensions:
- hstore
- citext
# Liste des utilisateurs à créer (optionnel)
postgresql_users:
- name: baz
pass: pass
encrypted: yes # si le mot de passe doit être chiffré, postgresql >= 10 n'accepte que les mots de passe chiffrés
# Liste des schémas à créer (optionnel)
postgresql_database_schemas:
- database: foobar # nom de la base de données
schema: acme # nom du schéma
state: present
- database: foobar # nom de la base de données
schema: acme_baz # nom du schéma
owner: baz # nom du propriétaire
state: present
# Liste des privilèges des utilisateurs à appliquer (optionnel)
postgresql_user_privileges:
- name: baz # nom d'utilisateur
db: foobar # base de données
priv: "ALL" # format de chaîne de privilège : exemple : INSERT,UPDATE/table:SELECT/anothertable:ALL
role_attr_flags: "CREATEDB" # drapeaux d'attributs de rôle
Il y a beaucoup d'autres réglages possibles, que vous pouvez trouver dans le fichier defaults/main.yml
Tests
Ce projet comprend un Vagrantfile, c'est un moyen rapide et facile de tester les modifications apportées au rôle, lancez-le avec vagrant up
Voir la documentation vagrant pour la configuration de vagrant
Une fois votre VM lancée, vous pouvez la reprovisionner en utilisant soit vagrant provision
, soit ansible-playbook tests/playbook.yml -i vagrant-inventory
Si vous voulez expérimenter avec le play test, voir tests/playbook.yml, et changer les variables dans tests/vars.yml
Si vous contribuez, veuillez d'abord tester vos modifications dans l'environnement vagrant (en utilisant la distribution ciblée), et si possible, assurez-vous que votre changement est couvert dans les tests trouvés dans .travis.yml
Licence
Sous licence MIT. Voir le fichier LICENSE pour les détails.
Remerciements
Créateur :
Mainteneurs :
Principaux contributeurs :
Commentaires, rapports de bugs, demandes, ...
Sont bienvenus!
"Install and configure PostgreSQL, dependencies, extensions, databases and users." "Forked from https://github.com/ANXS/postgresql"
ansible-galaxy install nephosolutions.postgresql